算法:
1、输入方程组维数n,矩阵A,右端项b和控制精度eps
2、对于k = 1 : n-1 :
(1)、| A( u , k ) | = max( A( i , k ) , k <= i <= n );
(2)、如果| A( u , k ) | < eps 则停止;
(3)、如果 u = k 则转 (4) ,否则 A( k , k : n+1) <--> A( u , k : n+1 ) ;
(4)、A( k+1 : n , k ) := A( k+1 : n , k ) / A( k , k ),
A( k+1 : n , k+1 : n ) := A( k+1 : n , k+1 : n ) - A( k+1 : n , k ) · A( k , k+1 : n ),
b( k+1 : n ) := b( k+1 : n ) - A( k+1 : n , k ) · b( k )
3、如果 A( n , n ) = 0 则停止
4、b( n ) := b( n ) / A( n , n ) ,
对于 i = n-1 : -1 : 1 ,
b( i ) := [ b(i) - A( i , i+1 : n ) · b( i+1 : n ) ] / A( i , i )
5、输出解b(1:n)
C语言代码(未考虑无解情况):