Mercurial > repos > public > sbplib
diff +time/+cdiff/cdiff.m @ 0:48b6fb693025
Initial commit.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 17 Sep 2015 10:12:50 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+time/+cdiff/cdiff.m Thu Sep 17 10:12:50 2015 +0200 @@ -0,0 +1,16 @@ +% Takes a step of +% v_tt = Dv+Ev_t+S +% +% 1/k^2 * (v_next - 2v + v_prev) = Dv + E 1/(2k)(v_next - v_prev) + S +% +function [v_next, v] = cdiff(v, v_prev, k, D, E, S) + % 1/k^2 * (v_next - 2v + v_prev) = Dv + E 1/(2k)(v_next - v_prev) + S + % ekv to + % A v_next = B v + C v_prev + S + I = speye(size(D)); + A = 1/k^2 * I - 1/(2*k)*E; + B = 2/k^2 * I + D; + C = -1/k^2 * I - 1/(2*k)*E; + + v_next = A\(B*v + C*v_prev + S); +end \ No newline at end of file