本文主要介绍一下列主元高斯消去法的应用,用实例说明
工具/原料
电脑、Fortran软件
题目:
1、题目:
2、解法:程序A=[2,1,-3,-1;补朱锚卦3,1,0,7;-1,2,4,-2;1,0,-1,5]b=[1;婷钠痢灵2;-1;5]n=4;A1=[A,b];fori=1:n-1[XX,r]=max(abs(A1(i:n,i)));r=r+i-1;ifr>itemp=A1(i,:);A1(i,:)=A1(r,:);A1(r,:)=temp;endifA1(i,i)==0endforp=i+1:nA1(p,:)=A1(p,:)-A1(i,:)*A1(p,i)/A1(i,i);endendA=A1(:,1:n);b=A1(:,n+1);x(n)=b(n)/A(n,n);fori=n-1:-1:1x(i)=b(i);forp=n:-1:i+1x(i)=x(i)-A(i,p)*x(p);endx(i)=x(i)/A(i,i);endx
3、运行结果:X=-3.305882352941183.02352941176471-1.952941176470591.27058823529412
4、程碌食撞搁序a=input('请输入线性方程组的系数矩阵a=');b=input('请输入b=');缪梨痤刻[m,n]=size(a);ifm~=nerror('此矩阵非方阵,运行截止')endfort=1:n-1i=t;h=a(t,t);fors=t+1:nifabs(h)<abs(a(s,t))h=a(s,t);i=s;endendifi~=tforj=1:nc=a(i,j);a(i,j)=a(t,j);a(t,j)=c;endc=b(i);b(i)=b(t);b(t)=c;endfori=t+1:nk=a(i,t)/a(t,t);forj=1:na(i,j)=a(i,j)-k*a(t,j);endb(i)=b(i)-k*b(t);endendfprintf('经%1d次消元后的增广矩阵为\n',(n-1));disp([a,b])x(n)=b(n)/a(n,n);fori=n-1:-1:1x(i)=b(i);forj=i+1:nx(i)=x(i)-x(j)*a(i,j);endx(i)=x(i)/a(i,i);endfprintf('线性方程组的解向量是');x
5、运行结果:经3次消元后的增广矩阵为3.00001.000007.00002.000002.33334.00000.3333-0.33330-0.0000-3.5714-5.7143-0.285700.000003.40004.3200线性方程组的解向量是x=-3.30593.0235-1.95291.2706