Mercurial > repos > public > sbplib
comparison +time/CdiffImplicit.m @ 387:45c69aff2f41 feature/beams
Swtich to using centerd difference for calculating the first derivative
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 05 Jan 2017 18:36:01 +0100 |
parents | b361a04894e3 |
children | 67ca8964f03c |
comparison
equal
deleted
inserted
replaced
386:4f935415700e | 387:45c69aff2f41 |
---|---|
88 v = obj.v; | 88 v = obj.v; |
89 t = obj.t; | 89 t = obj.t; |
90 end | 90 end |
91 | 91 |
92 function [vt,t] = getVt(obj) | 92 function [vt,t] = getVt(obj) |
93 vt = (obj.v-obj.v_prev)/obj.k; | 93 % Calculate next time step to be able to do centered diff. |
94 v_next = zeros(size(obj.v)); | |
95 b = obj.G(obj.t) - obj.BB*obj.v - obj.CC*obj.v_prev; | |
96 | |
97 y = obj.L\b(obj.p); | |
98 z = obj.U\y; | |
99 v_next(obj.q) = z; | |
100 | |
101 | |
102 vt = (v_next-obj.v_prev)/(2*obj.k); | |
94 t = obj.t; | 103 t = obj.t; |
95 end | 104 end |
96 | 105 |
97 function obj = step(obj) | 106 function obj = step(obj) |
98 b = obj.G(obj.t) - obj.BB*obj.v - obj.CC*obj.v_prev; | 107 b = obj.G(obj.t) - obj.BB*obj.v - obj.CC*obj.v_prev; |