annotate +time/+cdiff/cdiff.m @ 888:8732d6bd9890
feature/timesteppers
Add general Runge-Kutta class
- Add a general Runge-Kutta class which time integrates the solution based on coefficients obtained from a Butcher tableau
- Add butcher tableau which returns coefficents for the specified Runge-Kutta method
- Remove RungKutta4proper, since obsolete
author |
Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
date |
Thu, 15 Nov 2018 17:10:01 -0800 |
parents |
48b6fb693025 |
children |
|
rev |
line source |
0
|
1 % Takes a step of
|
|
2 % v_tt = Dv+Ev_t+S
|
|
3 %
|
|
4 % 1/k^2 * (v_next - 2v + v_prev) = Dv + E 1/(2k)(v_next - v_prev) + S
|
|
5 %
|
|
6 function [v_next, v] = cdiff(v, v_prev, k, D, E, S)
|
|
7 % 1/k^2 * (v_next - 2v + v_prev) = Dv + E 1/(2k)(v_next - v_prev) + S
|
|
8 % ekv to
|
|
9 % A v_next = B v + C v_prev + S
|
|
10 I = speye(size(D));
|
|
11 A = 1/k^2 * I - 1/(2*k)*E;
|
|
12 B = 2/k^2 * I + D;
|
|
13 C = -1/k^2 * I - 1/(2*k)*E;
|
|
14
|
|
15 v_next = A\(B*v + C*v_prev + S);
|
|
16 end |