solve IVP with ode45
20 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dawid Andrasik
am 28 Jul. 2020
Beantwortet: sawera
am 6 Aug. 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 Kommentare
Akzeptierte Antwort
Alan Stevens
am 28 Jul. 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
Weitere Antworten (1)
sawera
am 6 Aug. 2025
find exact solution of IVPs, then compute using approximate solution at x=0:0.2.2:2 using ode45 command
0 Kommentare
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!