|
D.15.3.17 fouriersystem
Procedure from library finitediff.lib (see finitediff_lib).
- Usage:
- fouriersystem(M,A); M a list of matrices, A a list of approximations;
- Return:
- type list; each entry is some matrix obtained by performing the substitution of the single approximations into the system of pde's, partitioning the equation into the several timesteps and fouriertransforming these parts
Example:
| LIB "finitediff.lib";
list D="Ut","Ux","Uy","U";
list V="t","x","y";
list P="a","b";
setinitials(V,D,P);
matrix M[2][2]=0,-a,-a,0;
list Mat=unitmat(2),M;
list Appr=forward(Ut,U,t),trapezoid(Ux,U,x);
def s=fouriersystem(Mat,Appr);s;
==> [1]:
==> [1]:
==> [1]:
==> _[1,1]=(I*T*Sx+T*Cx)
==> _[1,2]=0
==> _[2,1]=0
==> _[2,2]=(I*T*Sx+T*Cx)
==> [2]:
==> _[1,1]=(I*Sx+Cx)
==> _[1,2]=(2*I*Sx*a*dt+2*Cx*a*dt-2*a*dt)/(dx)
==> _[2,1]=(2*I*Sx*a*dt+2*Cx*a*dt-2*a*dt)/(dx)
==> _[2,2]=(I*Sx+Cx)
==> [2]:
==> [1]:
==> _[1]=(I*T*Sx+T*Cx)
==> [2]:
==> _[1]=(-2*I*Sx*a*dt+I*Sx*dx-2*Cx*a*dt+Cx*dx+2*a*dt)/(dx)
==> _[2]=(2*I*Sx*a*dt+I*Sx*dx+2*Cx*a*dt+Cx*dx-2*a*dt)/(dx)
==> [2]:
==> [1]:
==> [1]:
==> (T^2)
==> [2]:
==> [1]:
==> (-8*Cx*a^2*dt^2+4*Cx*a*dt*dx+8*a^2*dt^2-4*a*dt*dx+dx^2)/(dx^2)
==> [2]:
==> (-8*Cx*a^2*dt^2-4*Cx*a*dt*dx+8*a^2*dt^2+4*a*dt*dx+dx^2)/(dx^2)
|
|