Mercurial > repos > public > sbplib
comparison +time/Rungekutta4.m @ 0:48b6fb693025
Initial commit.
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Thu, 17 Sep 2015 10:12:50 +0200 |
| parents | |
| children | b18d3d201a71 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:48b6fb693025 |
|---|---|
| 1 classdef Rungekutta4 < time.Timestepper | |
| 2 properties | |
| 3 D | |
| 4 S | |
| 5 F | |
| 6 k | |
| 7 t | |
| 8 v | |
| 9 m | |
| 10 n | |
| 11 end | |
| 12 | |
| 13 | |
| 14 methods | |
| 15 function obj = Rungekutta4(D, S, k, t0, v0) | |
| 16 obj.D = D; | |
| 17 obj.k = k; | |
| 18 obj.t = t0; | |
| 19 obj.v = v0; | |
| 20 obj.m = length(v0); | |
| 21 | |
| 22 if S == 0 | |
| 23 obj.S = zeros(obj.m,1); | |
| 24 else | |
| 25 obj.S = S; | |
| 26 end | |
| 27 | |
| 28 obj.F = @(v,t)(obj.D*v + obj.S); | |
| 29 end | |
| 30 | |
| 31 function [v,t] = getV(obj) | |
| 32 v = obj.v; | |
| 33 t = obj.t; | |
| 34 end | |
| 35 | |
| 36 function obj = step(obj) | |
| 37 obj.v = time.rk4.rungekutta_4(obj.v, obj.t, obj.k, obj.F); | |
| 38 obj.t = obj.t + obj.k; | |
| 39 obj.n = obj.n + 1; | |
| 40 end | |
| 41 end | |
| 42 | |
| 43 | |
| 44 methods (Static) | |
| 45 function k = getTimeStep(lambda) | |
| 46 k = rk4.get_rk4_time_step(lambda); | |
| 47 end | |
| 48 end | |
| 49 | |
| 50 end |
