Solving 2nd order ODE with various methods

10 Ansichten (letzte 30 Tage)
Steven
Steven am 2 Okt. 2015
Kommentiert: Steven am 2 Okt. 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

Antworten (1)

@Johannes
@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
  1 Kommentar
Steven
Steven am 2 Okt. 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?

Melden Sie sich an, um zu kommentieren.

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!

Translated by