matlab之列主元素高斯消去法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liyangxueit/article/details/50830471

技术小白的我第一次接触MATLAB这个软件,今早上课学习了高斯列主元素高斯消去法,不是很熟练,决定用matlab写一个可以完成这个算法的小程序以加深自己对这个算法的印象。借鉴了网上给的各种代码,基本大致地照搬别人的代码,自己写了一个:%高斯消去法
disp('方程AX=b为')
A
b
disp('----------------')
n=length(b);
eps=10^-9;
for i=1:n
[c,index]=max(abs(A(i:n,i)));
if c<eps
disp('列主元素太小');
break;
elseif index>i
temp=A(:,i);
A(:,i)=A(:,index);
A(:,index)=temp;
end
for j=i+1:n
m=A(j,i)/A(i,i);
A(j,i:n)=A(j,i:n)-m*A(j,i:n);
b(i)=b(i)-m*b(i);
end
end
%回代
b(n)=b(n)/A(n,n);
for k=n-1:-1:1
b(k)=(b(k)-sum(A(k,k+1:n).*b(k+1:n)'))/A(k,k)
end
clear x;
x=b;
disp('方程的解为')
x

(记录学习的每一步,所借鉴的代码作学习用,不涉及侵权)

猜你喜欢

转载自blog.csdn.net/liyangxueit/article/details/50830471