2nd Order ODE by ode45
3 ビュー (過去 30 日間)
古いコメントを表示
Hi community, i request assistance in getting the code for this particular question.
I tried watching yotube and looking around matlab answer but i still don't understand the approach in solving it.
Please advice, thanks.
0 件のコメント
採用された回答
Per Hyldahl
2020 年 2 月 19 日
Hi,
You need to treat your 2nd order differential equation as a system of two 1st order equations and arrange them in a vector, like:
f = [y; y']
such that
f' = [y'; y'']
Then you can obtain the solution using the following code
clc; clear; close all
[t,y] = ode45(@deriv, [0, 25], [0, 0]);
plot(t, y(:,1), t, y(:,2))
legend('y(t)', 'y''(t)')
function f_prime = deriv(t,f)
f_prime = zeros(2,1);
f_prime(1) = f(2);
f_prime(2) = 3*cos(t) -1.5*sin(t) - 3*f(2) - 3.25*f(1);
end
I myself also had problems to wrap my head around this approach when i learned it :)
// Per
5 件のコメント
Per Hyldahl
2020 年 2 月 20 日
Hi,
The sub-routine 'deriv' is a function which evaluates the differential equation, and is given to the ode45 as an input argument.
As Hiro-San suggested in a different answer, you should read the documentation of the ODE-solver suite; e.g. for ODE45: https://www.mathworks.com/help/matlab/ref/ode45.html.
Especially, the section regarding input arguments.
/ Per
その他の回答 (1 件)
Hiro Yoshino
2020 年 2 月 19 日
You can walk through this:
I guess this is what you work on - read, understand and apply to your homework.
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!