您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 高斯法和列主元高斯消去法解线性方程组(MATLAB版)
clear;clc;%Gauss消去法解线性方程组A=[3-564-2-38;11-9151-92;2-175-1611;-11327-1-2;431-7211;29-811-1-4-1;72-127-19];%系数矩阵b=[1122995825]';%n维向量y=inv(A)*b%matlab的计算结果n=length(b);%方程个数nx=zeros(n,1);%未知向量%-------------消去-----------fork=1:n-1%ifA(k,k)==0;%error('Error');%endfori=k+1:n%A(i,k)=A(i,k)/A(k,k);Aik=A(i,k)/A(k,k)forj=k:nA(i,j)=A(i,j)-Aik*A(k,j);endAb(i)=b(i)-Aik*b(k)endend%-------------回代-----------x(n)=b(n)/A(n,n)fork=n-1:-1:1S=b(k);forj=k+1:nS=S-A(k,j)*x(j);endx(k)=S/A(k,k)endx%程序的计算结果error=abs(x-ones(n,1))%误差clear;clc;%列主元Gauss校区法解线性方程组A=[3-564-2-38;11-9151-92;2-175-1611;-11327-1-2;431-7211;29-811-1-4-1;72-127-19];%系数矩阵b=[1122995825]';%n维向量y=inv(A)*b%matlab的计算结果n=length(b);%方程个数nx=zeros(n,1);%未知向量%-------------消去-----------fork=1:n-1Auk=A(k:n,k);[m,u]=max(abs(Auk));u=u+k-1%u为最大元所在的列%------交换最大的行和当前行的值-------forj=k:ntemp=A(u,j);A(u,j)=A(k,j);A(k,j)=temp;endtemp=b(k);b(k)=b(u);b(u)=temp;%ifA(k,k)==0;%error('Error');%endfori=k+1:n%A(i,k)=A(i,k)/A(k,k);Aik=A(i,k)/A(k,k)forj=k:nA(i,j)=A(i,j)-Aik*A(k,j);endAb(i)=b(i)-Aik*b(k)endend%-------------回代-----------x(n)=b(n)/A(n,n)fork=n-1:-1:1S=b(k);forj=k+1:nS=S-A(k,j)*x(j);endx(k)=S/A(k,k)endx%程序的计算结果error=abs(x-ones(n,1))%误差%误差小于直接进行高斯消去的计算误差
本文标题:高斯法和列主元高斯消去法解线性方程组(MATLAB版)
链接地址:https://www.777doc.com/doc-5679849 .html