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