ode45 for Higher Order Differential Equations

3 次查看(过去 30 天)
I'm learning Matlab and as an exercise I have following:
+ 6 = 1 -
on the time interval [0 20]and with integration step < 0.01. Initial conditions are x(0) = 0.44; = 0.13; = 0.42; = -1.29
To solve it I wrote the code:
f = @(t, y) [y(4); y(3); y(2); 1 - y(1)^2 - 6*y(3)];
t = [0 100];
f0 = [-0.44; 0.13; 0.42; -1.29];
[x, y] = ode45(f, t, f0);
plot(x,y, '-');
grid on
However I'm not really sure that it's correct even it launches and gives some output. Could someone please have a look and correct it if it's wrong. Also where is integration step here?
  1 个评论
Star Strider
Star Strider 2022-6-18
编辑:Star Strider 2022-6-18
The integration is performed within the ode45 function. To understand how it works to do the integration, see Algorithms and the Wikipedia article on Runge-Kutta methods.

请先登录,再进行评论。

采纳的回答

Sam Chak
Sam Chak 2022-6-18
编辑:Sam Chak 2022-6-18
Hi @d
A little fix on the system of 1st-order ODEs.
f = @(t, x) [x(2); x(3); x(4); 1 - x(1)^2 - 6*x(3)];
tspan = 0:0.01:20;
x0 = [0.44; 0.13; 0.42; -1.29];
[t, x] = ode45(f, tspan, x0);
plot(t, x, 'linewidth', 1.5)
grid on, xlabel('t'), ylabel('\bf{x}'), legend('x_{1}', 'x_{2}', 'x_{3}', 'x_{4}', 'location', 'best')

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by