pivot.gms : Simple Gaussian Elimination

Description

Simple Gaussian Elimination steps are performed on a matrix with
identically labeled rows and columns. The implied pivot sequence
is 1.1, 2.2, etc.

Reference

  • GAMS Development Corporation, Formulation and Language Example.

Small Model of Type : GAMS


Category : GAMS Model library


Main file : pivot.gms

$Title Simple Gaussian Elimination Steps  (PIVOT,SEQ=70)

$Ontext

   Simple Gaussian Elimination steps are performed on a matrix with
   identically labeled rows and columns. The implied pivot sequence
   is 1.1, 2.2, etc.


GAMS Development Corporation, Formulation and Language Example.

$Offtext

Sets  i     matrix labels     / 1*6 /
      r(i)  pivot sequence
      k(i)  non pivot rows
      l(i)  non pivot columns ;     alias (i,j) ;

Parameters a(i,j) original matrix, b(i,j) inverse of a, piv, det;

a(i,j) = uniform(-.3,0); a(i,i) = 1;
r(i) = yes; k(i) = yes; l(j) = yes; b(i,j) = a(i,j); det = 1;

Loop(r,      k(r)=no; l(r)=no;
             piv=1/b(r,r); det=det/piv;

   b(r,l) =  b(r,l)*piv;
   b(k,l) =  b(k,l) - b(r,l)*b(k,r);
   b(k,r) = -b(k,r)*piv;
   b(r,r) =  piv;

             k(r)=yes; l(r)=yes ) ;

Display det,a,b;
Parameter check(i,j); check(i,j)=sum(k, a(i,k)*b(k,j)); Display check;