Не пойму, в чём ошибка?

Я не могу понять, почему программа ругается и как это исправить.
Вот код .m файла
function y = Snegovik(t, x1, x2)
global m1 k1 B k2 u m2 w
y = zeros(4,1);
y(1) = y(2);
y(2) = (-k1 * (x1 - x2) -B * (y(2) - y(4))) / m1;
y(3) = y(4);
y(4) = (u*sin(w*t)+k1*(x1-x2)+B*(y(2)-y(4))-k2*x2)/m2;
end

Вот консольные команды
>> global m1 k1 B k2 u m2 w
>> m1 = 1500;
>> m2 = 100;
>> k1 = 200;
>> k2 = 300;
>> B = 0.3;
>> u = 150;
>> w = 2*pi;
>> [t, X1, X2] = ode45('Snegovik', [0:0.01:50], [0, 0])

И в конце появляется такая ошибка:
Error using  - 
Matrix dimensions must agree.

Error in Snegovik (line 5)
y(2) = (-k1 * (x1 - x2) -B * (y(2) - y(4))) / m1;

Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

Error in ode45 (line 115)
    odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options,
    varargin);
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 2
Что у вас за система уравнений?
Ответ написан
@Ustas4
Y(2)=y(3);
Y(3)=y(4);
Не имеют смысла после zeros. Значения массива y равны 0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы