2.1 实验目的
① 掌握列主元高斯消去法的基本思路和迭代步骤; ② 培养编程与上机调试能力。
2.2 算法描述
2.2.1 高斯(列主元)消去法基本思路
设有方程组Axb,设A是可逆矩阵。高斯消去法的基本思想就是将矩阵的初等行变换作用于方程组的增广矩阵BAb,将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组。列主元高斯消去法的基本思想是每次在系数矩阵A中依次按列在主对角线及以下的元素中,挑选绝对值最大的元素作为主元,将它调至主对角线上,然后用它消去主对角线以下的元素,最后变为同解的上三角形方程组去求解。
2.2.2 列主元高斯消去法计算步骤 将方程组用增广矩阵BAbaij表示。
n(n1)步骤1:消元过程,对k1,2,,n1 (1) 选主元,找ikk,k1,,n使得
aik,kmaxaik
kin(2) 如果aik,k0,则矩阵A奇异,程序结束;否则执行(3)。
kakjaij,jk,,n1。(3) 如果ikk,则交换第k行与第ik行对应元素位置,
(4) 消元,对ik,,n,计算likaik/akk,对jk1,,n1,计算
aijaijlikakj.
步骤 2:回代过程:
(1) 若ann0,则矩阵奇异,程序结束;否则执行(2)。 (2) xnan,n1/ann;对in1,,2,1,计算xiai,n1axijj/aii ji1n2.3 实验内容
解方程组
0.04x10.04x20.12x330.56x11.56x20.32x31 0.24x1.24x0.28x01232.4实验要求:
用列主元高斯消去法和选用其它解方程组的直接方法进行求解比较,并分析其结果。
2.5实验分析
高斯列主元代码:
function [x,XA,c]=GaussXQLineMain(A,b) N=size(A); n=N(1); for i=1:(n-1)
me=max(abs(A(1:n,i))); for k=i:n
if(abs(A(k,i))==me) break; end end
index=k;
temp=A(i,1:n);
A(i,1:n)=A(index,1:n); A(index,1:n)=temp; bb=b(index); b(index)=b(i); b(i)=bb; for j=(i+1):n if(A(i,i)==0)
dis('对角元素为0!'); return; end l=A(j,i); m=A(i,i);
A(j,1:n)=A(j,1:n)-l*A(i,1:n)/m; b(j)=b(j)-1*b(i)/m; end end
x=SolveUpTriangle(A,b); XA=A; c=b;
function x=SolveUpTriangle(A,b) N=size(A); n=N(1); for i=n:-1:1 if(i< n)
s=A(i,(i+1):n)*x((i+1):n,1); else
s=0; end
x(i,1)=(b(i)-s)/A(i,i); end
输出结果:
A=[-0.04 0.04 0.12;0.56 -1.56 0.32;-0.24 1.24 -0.28]; b=[3 1 0] ;
[x,XA,c]=GaussXQLineMain(A,b) x =
7.0000 7.0000 25.0000
XA =
0.5600 0.0000 0.0000 c =
1.0000 -1.5600 0.5714 0 0.4286 0.3200 -0.1429 0.1250 3.1250
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务