MATLAB: 2nd order systems of differential equation

2nd order system of differential equations

  • d2y1/dt2+5*dy1/dt+y2^2-y1=0;
  • d2y2/dt2+5*dy2/dt+y3^2-y2=0;
  • d2y3/dt2+5*dy3/dt-y3=0;
I tried my level best, however i could not able to solve it. my errors are undefined function of x and double. running errors.
% code

function dydt=hi(t,y) %#ok<INUSL>
dydt=zeros(6,1);
n=3;
dydt(1:n) = y(n+1:2*n);
for i=n+1
dy(i)=x(i);
if i<2*n
dydt(i)=-5*x(i)-y(i+1)^2+y(i);
else
dydt(i)=-5*x(i)+y(i);
end
end
% code

Best Answer

By adding 3 variables y4,y5 and y6 your system becomes a first order differential equations system.
%y4=dy1/dt, thus d2y1/dt2=dy4/dt
%y5=dy2/dt, thus d2y2/dt2=dy5/dt
%y6=dy3/dt, thus d2y3/dt2=dy6/dt
%The system of equation becomes
%dy1/dt=y11;
%dy2/dt=y22;
%dy3/dt=y33;
%dy4/dt+5*y4+y2^2-y1=0;
%dy5/dt+5*y5+y3^2-y2=0;
%dy6/dt+5*y6-y3=0;
% which can be programmed
function dy=myequ(t,y)
dy(1)=y(4)
dy(2)=y(5)
dy(3)=y(6)
dy(4)=-5*y4-y2^2+y1
dy(5)=-5*y5-y3^2+y2
dy(6)=-5*y6+y3
% you can call myequ
tspan=[0 10];
y0=[1 0 1 0 1 1]; % Initial conditions
[t,y]=ode45(@myequ,tspan,y0)