|
%简单的GAUSS消去法
%a为系数方阵,b为右端向量
function x = gauss(a,b)
[n,m] = size(b);
if size(a) == [n,n]
for i = 1 : (n - 1)
if a(i,i) == 0 error('Divide by zero');end
b((i + 1):n, = b((i + 1):n, - a((i + 1):n,i)*b(i,/a(i,i);
a((i + 1):n,i:n) = a((i + 1):n,i:n) - ...
a((i + 1):n,i)*a(i,i:n)/a(i,i);
[a,b]
end
if a(n,n) == 0,error('Divide by zero');end
x(n,:) = b(n,:)/a(n,n);
for i = n-1:-1:1
x(i,:) = b(i,:) - a(i,(i + 1):n)*x((i + 1):n,:)/a(i,i);
end
else,error('Divede of matrix must agree');
end
%请大家赐教其他的好方法 |
|