高斯消元法

来源:互联网 发布:cf老是网络出现异常 编辑:程序博客网 时间:2024/06/07 00:28
function [X]=mygaus(A,b)  B=[A b]; n=length(b); RA=rank(A);  RB=rank(B);zhica=RB-RA;   if zhica>0    return  end  if RA==RB   if RA==n         X=zeros(n,1);         for i=1:n                              %有几行重复执行几次            for k=i:n                         %a11>=ai1 否则换行                if(abs(B(i,i))>abs(B(k,i)))                   C=B(i,:);                   B(i,:)=B(k,:);                   B(k,:)=C;                end            end             B(i,:)=B(i,:)/B(i,i);  %规格化第i行,使Xi的系数为1            for j=i+1:n                B(j,:)=B(j,:)-B(i,:)*B(j,i);    %消元,使第i+1 到第n行Xi的系数为0            end         end          for  k=n:-1:1           X(k)=(B(k,4)-sum(B(k,k+1:n)*X(k+1:n)))/B(k,k);              end    end  endend
原创粉丝点击