Mercurial > repos > public > sbplib
diff +time/Rungekutta4.m @ 984:0585a2ee7ee7 feature/timesteppers
Inline the rk.rungekutta_4 function.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 08 Jan 2019 12:19:33 +0100 |
parents | b89379fb0814 |
children | a99f00896b8e |
line wrap: on
line diff
--- a/+time/Rungekutta4.m Tue Jan 08 12:07:57 2019 +0100 +++ b/+time/Rungekutta4.m Tue Jan 08 12:19:33 2019 +0100 @@ -26,7 +26,15 @@ end function obj = step(obj) - obj.v = time.rk.rungekutta_4(obj.v, obj.t, obj.dt, obj.F); + v = obj.v; + dt = obj.dt; + + k1 = obj.F(t, v); + k2 = obj.F(t + 0.5*dt, v + 0.5*dt*k1); + k3 = obj.F(t + 0.5*dt, v + 0.5*dt*k2); + k4 = obj.F(t + dt, v + dt*k3); + + obj.v = v + dt*(1/6)*(k1+2*(k2+k3)+k4); obj.t = obj.t + obj.dt; obj.n = obj.n + 1; end