2nd Order ODE by ode45
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Per Hyldahl
il 19 Feb 2020
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 Commenti
Per Hyldahl
il 20 Feb 2020
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
Più risposte (1)
Hiro Yoshino
il 19 Feb 2020
You can walk through this:
I guess this is what you work on - read, understand and apply to your homework.
0 Commenti
Vedere anche
Categorie
Scopri di più su Ordinary Differential Equations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!