# Singular

#### D.15.15.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) ```