Top
Back: findifs_lib
Forward: decoef
FastBack: Miscellaneous libraries
FastForward: finitediff_lib
Up: findifs_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.1.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]=Tx-1
==>    _[3]=Ty
==>    _[4]=Tt
==> [2]:
==>    1,2,1,1
==> * Show the semi-factorized form of the scheme: 3rd summand
==>  factorize(pi1);
==> [1]:
==>    _[1]=(-B^2*dt^2*dx^2)
==>    _[2]=Tx
==>    _[3]=Ty-1
==>    _[4]=Tt
==> [2]:
==>    1,1,2,1


Top Back: findifs_lib Forward: decoef FastBack: Miscellaneous libraries FastForward: finitediff_lib Up: findifs_lib Top: Singular Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 3-1-3, March 2011, generated by texi2html.