Clear Filters
Clear Filters

Plotting third order differential equation using ode45

1 view (last 30 days)
Hello
Could you please how to plot below third order differential equation using ODE45.
d3x/dt3 = +-1

Accepted Answer

Ameer Hamza
Ameer Hamza on 6 Dec 2020
Edited: Ameer Hamza on 6 Dec 2020
You need to convert this 3-rd order ODE to 3 first order ODEs. Also due to +-1, you have two systems of ODEs. Try following code
odeFun = @(t,x,a) [x(2);
x(3);
a];
tspan = [0 10];
IC = [1; 0; 0];
ode45(@(t,x) odeFun(t,x,1), tspan, IC)
hold on
ode45(@(t,x) odeFun(t,x,-1), tspan, IC)
legend({'$x$', '$\dot{x}$', '$\ddot{x}$'}, 'Interpreter', 'latex', 'FontSize', 16, ...
'Location', 'best')
  2 Comments
vaibhav gupta
vaibhav gupta on 6 Dec 2020
Edited: vaibhav gupta on 6 Dec 2020
Thank you! I just wanted to plot result of first ode. How can i supress rest? Also, i see that plot is continuing and not stopping at all. Shoudln't it be stopped rendering at some point of time?
Ameer Hamza
Ameer Hamza on 7 Dec 2020
Try this
odeFun = @(t,x,a) [x(2);
x(3);
a];
tspan = [0 10];
IC = [1; 0; 0];
[t, y] = ode45(@(t,x) odeFun(t,x,1), tspan, IC);
plot(t, y(:,1))
hold on
[t, y] = ode45(@(t,x) odeFun(t,x,-1), tspan, IC);
plot(t, y(:,1))
legend({'$+1$', '$-1$'}, ...
'Interpreter', 'latex', ...
'FontSize', 16, ...
'Location', 'best')

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!