solve IVP with ode45
18 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dawid Andrasik
le 28 Juil 2020
Réponse apportée : sawera
le 6 Août 2025

So I am trying to generate an ODE45 graph with the file provided. I made the modification which I believe are correct but the graph generated at the output is not correct. The second function
function dYdt=f(x,Y)
has a modified version of my function and I am wondering if that is causing the ODE function not to generate the proper input. Would anyone be able to advise on a solution or where I am going wrong ?
Thank you
0 commentaires
Réponse acceptée
Alan Stevens
le 28 Juil 2020
Looks like your equation is not correct for non-linear pendulum! Try the following:
% If u = angle from vertical then d^2u/dt^2 = -(g/l)sin(u)
%
% Let v = du/dt; dv/dt = -(g/l)sin(u);
Y0 = [1 2];
tspan = 0:0.1:10;
ge = 32; % Earth
[t, Y] = ode45(@f, tspan, Y0, [], ge);
ue = Y(:,1);
gm = 0.165*ge;
[t, Y] = ode45(@f, tspan, Y0, [], gm);
um = Y(:,1);
plot(t, ue, t, um), grid
xlabel('time'), ylabel('angle')
legend('Earth','Moon')
function dYdt = f(~,Y,g)
l = 3;
u = Y(1);
v = Y(2);
dudt = v;
dvdt = -g/l *sin(u);
dYdt = [dudt; dvdt];
end
Plus de réponses (1)
sawera
le 6 Août 2025
find exact solution of IVPs, then compute using approximate solution at x=0:0.2.2:2 using ode45 command
0 commentaires
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!