comparison +time/MagnusMP.m @ 513:bc39bb984d88 feature/quantumTriangles

Added arnoldi krylov subspace approximation
author Ylva Rydin <ylva.rydin@telia.com>
date Mon, 26 Jun 2017 20:15:54 +0200
parents 49bc2929dfb1
children
comparison
equal deleted inserted replaced
512:4ef2d2a493f1 513:bc39bb984d88
6 k 6 k
7 t 7 t
8 v 8 v
9 m 9 m
10 n 10 n
11 matrixexp
12 tol
11 end 13 end
12 14
13 15
14 methods 16 methods
15 function obj = MagnusMP(D, k, t0, v0) 17 function obj = MagnusMP(D, k ,t0,v0, matrixexp,tol)
18 default_arg('matrixexp','expm')
19 default_arg('tol',1e-6)
16 obj.D = D; 20 obj.D = D;
17 obj.k = k; 21 obj.k = k;
18 obj.t = t0; 22 obj.t = t0;
19 obj.v = v0; 23 obj.v = v0;
20 obj.m = length(v0); 24 obj.m = length(v0);
21 obj.n = 0; 25 obj.n = 0;
26 obj.matrixexp = matrixexp;
27 obj.tol = tol;
22 end 28 end
23 29
24 function [v,t] = getV(obj) 30 function [v,t] = getV(obj)
25 v = obj.v; 31 v = obj.v;
26 t = obj.t; 32 t = obj.t;
27 end 33 end
28 34
29 function obj = step(obj) 35 function obj = step(obj)
30 obj.v = time.expint.Magnus_mp(obj.v,obj.D, obj.t, obj.k); 36 obj.v = time.expint.Magnus_mp(obj.v,obj.D, obj.t, obj.k,obj.matrixexp,obj.tol);
31 obj.t = obj.t + obj.k; 37 obj.t = obj.t + obj.k;
32 obj.n = obj.n + 1; 38 obj.n = obj.n + 1;
33 end 39 end
34 end 40 end
35 41