|
D.15.6.15 matrixsystem
Procedure from library finitediff.lib (see finitediff_lib).
- Usage:
- matrixsytem(M,A); where the M=Mt,M1,..,Mn is a list with square matrices of the same dimension as entries, and A=At,A1,..,An gives the corresponding approximations for the several variables (t,x1,..,xn) as vector. Intended to solve Mt*U_t + M1*U_x1+..+Mn*U_xn=0 as a linear sytem of partial differential equations numerically by a finite difference scheme;
- Return:
- type matrix; gives back the matrices B1,B2 that represent the finite difference scheme, partitioned into different time levels in the form: B1*U(t=N)=B2*U(t<N), where N is the maximal occurring degree (timelevel) of t.
Example:
| LIB "finitediff.lib";
list D="Ut","Ux","Uy","U";
list V="t","x","y";
list P="a","b";
setinitials(V,D,P);
list Mat=unitmat(2),unitmat(2);
list Appr=forward(Ut,U,t),forward(Ux,U,x);
matrixsystem(Mat,Appr);
==> _[1,1]=-1/(dt)*t-1/(dx)*x+(dt+dx)/(dt*dx)
==> _[1,2]=0
==> _[2,1]=0
==> _[2,2]=-1/(dt)*t-1/(dx)*x+(dt+dx)/(dt*dx)
|
|