Solving 2nd order ODE with various methods
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Okay the problem is of a free swinging pendulum with dampening which is modelled using the following equation:
Damping coefficient: c=1 s−1 Mass: m=1 kg Gravity: g=9.81 ms−1 Link length: l=0.5 m
We know θ(0)=90° and θ′(0)=0, solve this equation from t = 0 to t = 10 with a time interval of 0.01s
The equation is:
d2θ/dt2+(c/m)*(dθ/dt)+(g/l)*sin (θ)=0
So we need to use Euler,Heun and 4th order Runge-Kutta method
2. Relevant equations
3. The attempt at a solution
Okay so my idea was to create a function as so:
function xdot=pendemo(t,x)
% PENDEMO Pendulum ODE derivative evaluation
xdot(1,1) = x(2,1);
xdot(2,1) = -1/(1*1)*x(2,1) - 9.81/1*sin(x(1,1));
% End of pendemo.m
and than an m.file giving the above information:
xphi = [pi/2;0];
tphi = 0; 5 %start time
tfin = 10; %end time
[t,x] = ode45('pendemo',[tphi tfin],xphi);
plot(t,x(:,1))
The only thing is how do I implement a euler/heun method? What is a 4th order Runga Kata??
thanks
0 Kommentare
Antworten (1)
@Johannes
am 2 Okt. 2015
Hello,
in your example you are using ODE45 to solve your ode. ODE45 is a solver which is using the method of Runge Kutta (RKF45) to solve ode's. This means you are using already a Runge Kutta solver of the order 4. Explicit Euler and Heun are to be implemented by you as functions. For example use the equations form wikipedia.
https://en.wikipedia.org/wiki/Euler_method
https://en.wikipedia.org/wiki/Heun%27s_method
Regards, John
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differential Equations finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!