列主元高斯消去法

作者:流年 | 创建时间: 2023-07-21
本文主要介绍一下列主元高斯消去法的应用,用实例说明...
列主元高斯消去法

题目:

一、题目:

解法: 1、 程序 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]; for i = 1:n-1 [XX,r] = max(abs(A1(i:n,i))); r = r + i - 1; if r>i temp=A1(i,:); A1(i,:)=A1(r,:); A1(r,:)=temp; end if A1(i,i)==0 end for p = i+1:n A1(p,:)=A1(p,:)-A1(i,:)*A1(p,i)/A1(i,i); end end A = A1(:,1:n); b = A1(:,n+1); x(n) = b(n)/A(n,n); for i = n-1:-1:1 x(i)=b(i); for p=n:-1:i+1 x(i) = x(i)-A(i,p)*x(p); end x(i)=x(i)/A(i,i); end x

运行结果: X= -3.30588235294118  3.02352941176471  -1.95294117647059  1.27058823529412

2、 程序 a=input('请输入线性方程组的系数矩阵a='); b=input('请输入b='); [m,n]=size(a); if m~=n error('此矩阵非方阵,运行截止') end for t=1:n-1 i=t;h=a(t,t); for s=t+1:n if abs(h)<abs(a(s,t)) h=a(s,t);i=s; end end if i~=t for j=1:n c=a(i,j);a(i,j)=a(t,j);a(t,j)=c; end c=b(i);b(i)=b(t);b(t)=c; end for i=t+1:n k=a(i,t)/a(t,t); for j=1:n a(i,j)=a(i,j)-k*a(t,j); end b(i)=b(i)-k*b(t); end end fprintf('经%1d次消元后的增广矩阵为\n',(n-1)); disp([a,b]) x(n)=b(n)/a(n,n); for i=n-1:-1:1 x(i)=b(i); for j=i+1:n x(i)=x(i)-x(j)*a(i,j); end x(i)=x(i)/a(i,i); end fprintf('线性方程组的解向量是'); x

运行结果: 经3次消元后的增广矩阵为 3.0000    1.0000         0    7.0000    2.0000 0    2.3333    4.0000    0.3333   -0.3333 0   -0.0000   -3.5714   -5.7143   -0.2857 0    0.0000         0    3.4000    4.3200 线性方程组的解向量是 x = -3.3059    3.0235   -1.9529    1.2706

温馨提示

个人写作,仅供参考
如若喜欢,望查阅本人下篇
点击展开全文

更多推荐