1. 程式人生 > >計算方法B_列主元高斯消去

計算方法B_列主元高斯消去

atl abs 過程 light pre n-1 pen ros true

%列主元高斯消去法
%by wu penghao
A=rand(10,10);
b=rand(10,1);
x_c=A\b; %真實值
x=zeros(10,1);
n=length(A);
%消去過程
for k=1:1:n-1
   max=abs(A(k,k));
   m=k;
   for i=k:1:n
       if max<abs(A(i,k))
           max = abs(A(i,k));%每列的最大值
           m=i;%每一列最大值索引
       end       
   end
   A([k,m],:)=A([m,k],:);%交換行
   b([k,m])=b([m,k]);%交換系數
   for i= k+1:1:n
       a=A(i,k)/A(k,k);
       b(i)=b(i)-a*b(k);
       for j=k:1:n
           A(i,j)=A(i,j)-a*A(k,j);
       end
   end
end
%回代
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
    for j=k+1:1:n
    b(k)=b(k)-A(k,j)*x(j);
    end
    x(k)=b(k)/A(k,k);
end

  

計算方法B_列主元高斯消去