MATLAB Answers

ode45 with two 2nd order differential equation

86 views (last 30 days)
Xianlin Su on 11 May 2019
Commented: darova on 19 May 2020
Here I have two differential equations and I want to solve it using ode45
I am asked to convert the two 2nd order equations to 4 first-order equations which are suitable for ode45.

0 Comments

Sign in to comment.

Answers (3)

Stephan on 11 May 2019

0 Comments

Sign in to comment.

Steven Lord on 11 May 2019
See the Higher-Order ODEs example on this documentation page and use the technique it illustrates to turn your system of two second order ODEs into a system of four first order ODEs.

0 Comments

Sign in to comment.

Pulkit Gahlot on 19 May 2020
'first make the function file'
function xval = pulfun(t,y)
%constant
u=0.012277471;
%define dy/dt
xval(1,1)=y(3);
xval(2,1)=y(4);
xval(3,1)=y(1)+2*y(4)-(1-u)*(y(1)+u)/((y(1)+u)^2+y(2)^2)^(1.5)-u*(y(1)-1+u)/((y(1)-1+u)^2+y(2)^2)^(1.5);
xval(4,1)=y(2)-2*y(3)-(1-u)*y(2)/((y(1)+u)^2+y(2)^2)^(1.5)-u*(y(2))/((y(1)-1+u)^2+y(2)^2)^(1.5);
end
'(then write a script file for use of ode45)'
y0=[0.994;0;0;-2.00158];
tspan=[10 40];
[tsol,ysol]=ode45(@(t,y) pulfun(t,y),tspan,y0);
plot(tsol,ysol)
i used my own terms. You can use your.

1 Comment

darova on 19 May 2020
Better be to separate and to make expressions clearer

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by