Page 69 - 数学建模算法与应用
P. 69
第三章 MATLAB 编程基础
在 MATLAB 中编写列主元 Gauss 消去法程序如下:
function s = LZYgauss(A,b)
n = length(A(:,1));
for k=1:n-1
[a,t] = max(abs(A(k:n,k)));
p = t+k-1;
if a == 0
error(‘A is a bizarre matrix’);
else
t1 = A(k,:);
A(k,:) = A(p,:);
A(p,:) = t1;
t2 = b(k);
b(k) = b(p);
b(p) = t2;
end
for j=k+1:n
m = A(j,k)/A(k,k);
A(j,:) = A(j,:) - m.*A(k,:);
b(j) = b(j) - m*b(k);
end
end
b(n) = b(n)/A(n,n);
for i=n-1:-1:1
q = (b(n-i)-sum(A(n-i,n-i+1:n).*b(n-i+1:n)))/A(n-i,n-i);
b(n-i) = q;
end
s = b;
解方程组的程序编写如下所示:
clear all
59

