程序部分
gauss.m
function [x]=gauss(A,b)
n=size(A,1);
for k=1:n-1
m=A(k+1:n,k)/A(k,k);
A(k+1:n,k+1:n)-=m*A(k,k+1:n);
A(k+1:n,k)=zeros(n-k,1);
b(k+1:n)-=m*b(k);
endfor
x=zeros(n,1);
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
endfor
endfunction
参数: A 输入系数矩阵
b 右端项
程序原理就是利用基础行列式变换构造一个三角形矩阵,然后三角形矩阵按照逆序分别求出x4 x3 x2 x1得到原始解。
示例
输入
A =
1 1 1 1
-1 2 -3 1
3 -3 6 -2
-4 5 2 -3
b =
10
-2
7
0
输出
ans =
1
2
3
4
局限性是 :高斯消去法无法处理输入矩阵A(i,i)=0的情况,而且使用过程中不稳定因素也比较大,属于基本的求值法。另外一种改进版的高斯消元方法是将主元进行排序然后再消元,可以解决传统方法的弊端。 列主元高斯消元法
来源:oschina
链接:https://my.oschina.net/u/870108/blog/501278