算法步骤
例题
程序代码
function x=liezhuyuan(A,b)
k=1;
n=length(b);
m=zeros(n,n);
X=A
Y=b
for k=1:n-1
[ark,rk]=max(abs(A(k:n,k)));
rk=k-1+rk;
if rk>k
link=A(k,:);
A(k,:)=A(rk,:);
A(rk,:)=link;
link=b(k);
b(k)=b(rk);
b(rk)=link;
end
%消元(向量形式)
m=A(k+1:n,k)/A(k,k);
A(k+1:n,k)=0;
A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n);
b(k+1:n)=b(k+1:n)-m*b(k);
end
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);
end
X=A
Y=b
end
运行结果
>> liezhuyuan([2,-1,4,-3,1;-1,1,2,1,3;4,2,3,3,-1;-3,1,3,2,4;1,3,-1,4,4],[11;14;4;16;18])