ode45 for Higher Order Differential Equations
조회 수: 3 (최근 30일)
이전 댓글 표시
I'm learning Matlab and as an exercise I have following:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036680/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036685/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036690/image.png)
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036695/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036700/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036705/image.png)
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
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
2022년 6월 18일
편집: Sam Chak
2022년 6월 18일
Hi @d
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1036725/image.png)
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')
댓글 수: 2
Sam Chak
2022년 6월 18일
You are welcome, @d. The link suggested by @Star Strider has many good examples and 'tricks' to learn.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!