Solving 2nd order ODE with various methods

6 vues (au cours des 30 derniers jours)
Steven
Steven le 2 Oct 2015
Commenté : Steven le 2 Oct 2015
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

Réponses (1)

@Johannes
@Johannes le 2 Oct 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
  1 commentaire
Steven
Steven le 2 Oct 2015
Okay this is my code for euler:
function [t,x] = euler(dydt,tspan,y0,h)
t = (tspan(1):h:tspan(2));
n=length(t);
y = y0*ones(n,1);
for i = 1:n-1
y(i+1)= y(i) + dydt(t(i), y(i))*(t(i+1)-t(i));
end
How can i apply it to my ODE?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Numerical Integration and Differential Equations dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by