高斯列主元消去法(matlab两种实现方法)
function x=LGauss(A,b) %高斯列主元消去法 %A:系数矩阵 %b:非齐次项 [n,m]=size(A); x=zeros(n,1); for k=1:n-1%选定列主元 max=0; for i=k:n if abs(A(i,k))>max max=abs(A(i,k)); r=i; end end if maxk%交换两行位置 for j=k:n z=A(k,j); A(k,j)=A(r,j); A(r,j)=z; end z=b(k); b(k)=b(r); b(r)=z; end %消元 for i=k+1:n m1=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m1*A(k,j); end b(i)=b(i)-m1*b(k); end end for k=n:-1:1 for j=k+1:n b(k)=b(k)-A(k,j)*x(j); end x(k)=b(k)/A(k,k); end end
function [X,det]=LGauss_new(A,b) %input %A:nxn非奇异系数矩阵,b是列向量 %output: %X:AX=b的解 %det:A的行列式 [n,n]=size(A); det=1; for k=1:n-1 %寻找列主元 [T,i]=max(abs(A(k:n,k)));ik=i+k-1; %判断矩阵的奇异性 if T
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。