2nd Order ODE by ode45
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
David Lee
el 19 de Feb. de 2020
Comentada: David Lee
el 22 de Feb. de 2020
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 comentarios
Respuesta aceptada
Per Hyldahl
el 19 de Feb. de 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 comentarios
Per Hyldahl
el 20 de Feb. de 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
Más respuestas (1)
Hiro Yoshino
el 19 de Feb. de 2020
You can walk through this:
I guess this is what you work on - read, understand and apply to your homework.
0 comentarios
Ver también
Categorías
Más información sobre Ordinary Differential Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!