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