Plotting third order differential equation using ode45

2 ビュー (過去 30 日間)
vaibhav gupta
vaibhav gupta 2020 年 12 月 6 日
コメント済み: Ameer Hamza 2020 年 12 月 7 日
Hello
Could you please how to plot below third order differential equation using ODE45.
d3x/dt3 = +-1

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 12 月 6 日
編集済み: Ameer Hamza 2020 年 12 月 6 日
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 件のコメント
vaibhav gupta
vaibhav gupta 2020 年 12 月 6 日
編集済み: vaibhav gupta 2020 年 12 月 6 日
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 2020 年 12 月 7 日
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')

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by