Home Online Manual
Top
Back: findifs_lib
Forward: decoef
FastBack:
FastForward:
Up: findifs_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.11.4.1 findifs_example

Procedure from library findifs.lib (see findifs_lib).

Usage:
findifs_example();

Return:
nothing (demo)

Purpose:
demonstration of our approach and this library

Example:
 
LIB "findifs.lib";
findifs_example();
==> * Equation: u_tt - A^2 u_xx -B^2 u_yy = 0; A,B are constants
==> * we employ three central differences
==> * the vector we act on is (u_xx, u_yy, u_tt, u)^T
==> * Set up the ring: 
==> ring r = (0,A,B,dt,dx,dy),(Tx,Ty,Tt),(c,dp);
==> * Set up the matrix with equation and approximations: 
==> matrix M[4][4] =
==>     // direct equation:
==>     -A^2, -B^2, 1, 0,
==>     // central difference u_tt
==>     0, 0,  -dt^2*Tt, (Tt-1)^2,
==>     // central difference u_xx
==>     -dx^2*Tx, 0, 0, (Tx-1)^2,
==>     // central difference u_yy
==>     0, -dy^2*Ty, 0, (Ty-1)^2;
==> * Print the differential form of equations: 
==> (-A^2)*Uxx+(-B^2)*Uyy+Utt,     
==> (-dt^2*Tt)*Utt+(Tt^2-2*Tt+1)*U,
==> (-dx^2*Tx)*Uxx+(Tx^2-2*Tx+1)*U,
==> (-dy^2*Ty)*Uyy+(Ty^2-2*Ty+1)*U 
==> * Perform the elimination of module components:
==>  module R = transpose(M);
==>  module S = std(R);
==>  * See the result of Groebner bases: generators are columns
==>  print(S);
==> 0,     0,           0,     0,           0,         (A^2),
==> 0,     0,           0,     (dy^2)*Ty,   S[2,5],    (B^2),
==> 0,     (dt^2)*Tt,   S[3,3],0,           (-dx^2)*Tx,-1,   
==> S[4,1],-Tt^2+2*Tt-1,S[4,3],-Ty^2+2*Ty-1,S[4,5],    0     
==>  * So, only the first column has its nonzero element in the last componen\
   t
==>  * Hence, this polynomial is the scheme
==>  poly   p = S[4,1];
==>  print(p); 
==> (A^2*dt^2*dy^2)*Tx^2*Ty*Tt+(B^2*dt^2*dx^2)*Tx*Ty^2*Tt+(-dx^2*dy^2)*Tx*Ty*\
   Tt^2+(-2*A^2*dt^2*dy^2-2*B^2*dt^2*dx^2+2*dx^2*dy^2)*Tx*Ty*Tt+(-dx^2*dy^2)\
   *Tx*Ty+(B^2*dt^2*dx^2)*Tx*Tt+(A^2*dt^2*dy^2)*Ty*Tt
==> * Create the nodal of the scheme in TeX format: 
==>  ideal I = decoef(p,dt);
==>  difpoly2tex(I,L);
==> \frac{1}{\tri t^{2}}\cdot (u^{n+2}_{j+1,k+1}+(-2) u^{n+1}_{j+1,k+1}+u^{n}\
   _{j+1,k+1})+ \frac{-\lambda^{2}}{\tri x^{2}}\cdot (u^{n+1}_{j+2,k+1}+\fra\
   c{B^{2}\tri x^{2}}{\lambda^{2}\tri y^{2}} u^{n+1}_{j+1,k+2}+\frac{-(2\lam\
   bda^{2}\tri y^{2}+2B^{2}\tri x^{2}}{\lambda^{2}\tri y^{2}} u^{n+1}_{j+1,k\
   +1}+\frac{B^{2}\tri x^{2}}{\lambda^{2}\tri y^{2}} u^{n+1}_{j+1}+u^{n+1}_{\
   j,k+1})
==> * Preparations for the semi-factorized form: 
==>  poly pi1 = subst(I[2],B,0);
==>  poly pi2 = I[2] - pi1;
==> * Show the semi-factorized form of the scheme: 1st summand
==>  factorize(I[1]); 
==> [1]:
==>    _[1]=(-dx^2*dy^2)
==>    _[2]=Tx
==>    _[3]=Ty
==>    _[4]=Tt-1
==> [2]:
==>    1,1,1,2
==> * Show the semi-factorized form of the scheme: 2nd summand
==>  factorize(pi1);
==> [1]:
==>    _[1]=(A^2*dt^2*dy^2)
==>    _[2]=Ty
==>    _[3]=Tt
==>    _[4]=Tx-1
==> [2]:
==>    1,1,1,2
==> * Show the semi-factorized form of the scheme: 3rd summand
==>  factorize(pi1);
==> [1]:
==>    _[1]=(B^2*dt^2*dx^2)
==>    _[2]=Tx
==>    _[3]=Tt
==>    _[4]=Ty-1
==> [2]:
==>    1,1,1,2