Task

Solve   Ax=b   using Gaussian elimination then backwards substitution.

A   being an   n by n   matrix.

Also,   x and b   are   n by 1   vectors.

To improve accuracy, please use partial pivoting and scaling.



See also

   the Wikipedia entry:   Gaussian elimination


var [const] GSL=Import("zklGSL");	// libGSL (GNU Scientific Library)
a:=GSL.Matrix(6,6).set(
   1.00, 0.00, 0.00,  0.00,  0.00,   0.00,
   1.00, 0.63, 0.39,  0.25,  0.16,   0.10,
   1.00, 1.26, 1.58,  1.98,  2.49,   3.13,
   1.00, 1.88, 3.55,  6.70, 12.62,  23.80,
   1.00, 2.51, 6.32, 15.88, 39.90, 100.28,
   1.00, 3.14, 9.87, 31.01, 97.41, 306.02);
b:=GSL.VectorFromData(-0.01, 0.61, 0.91,  0.99,  0.60,   0.02);
x:=a.AxEQb(b);
x.format(8,5).println();