Решаем систему ОД MATLAB с од45
У меня есть 4 переменные y1, y2,y3,y4, и я знаю их вторичные производные как функции от y1, y2, y3, y4:
y1"= y1(y1,y2,y3,y4)
y2"= y1(y1,y2,y3,y4)
y3"= y1(y1,y2,y3,y4)
y4"= y1(y1,y2,y3,y4)
Я пытаюсь использовать ode45, чтобы получить y1, y2,y3,y4
Я попытался сделать первый порядок ODE, используя еще 4 переменные так:
y5= y1', y6= y2', y7= y3', y8= y4'
так
y5'= y1", y6'= y2", y7'=y3", y8'= y4"
Итак, для моего кода MATLAB:
function dydt=myequ(t,y)
g = 9.81; m=0.5 ; k = 1000; l0 = 0.02;
dydt(1)=y(5);
dydt(2)=y(6);
dydt(3)=y(7);
dydt(4)=y(8);
A = (y(2)-y(1)).*(1-(l0./(sqrt((y(2)-y(1)).^2+(y(3)-y(4)).^2))));
B = (y(4)-y(3)).*(1-(l0./(sqrt((y(2)-y(1)).^2+(y(3)-y(4)).^2))));
dydt(5)= [y(5); (k.*A)./m];
dydt(6)= [y(6);-(k.*A)./m] ;
dydt(7)= [y(7);(k.*B - m*g)./m] ;
dydt(8)= [y(8);(-k.*B - m*g)./m] ;
А также
function stuffff
l0 = 0.02; v0=1;
tspan=[0 .144];
y0=[-0.5*l0 0 0 0 0.5*l0 v0/sqrt(2) 0 v0/sqrt(2)]; % Initial conditions
[t,y]=ode45(@myequ,tspan,y0)
Я получаю ошибку:
In an assignment A(:) = B, the number of elements in A and B must be the same.
Я использовал это в качестве ссылки https://www.mathworks.com/matlabcentral/answers/87482-2nd-order-systems-of-differential-equation но я изменил его на dydt вместо dy, я получал ошибки как пути.