解线性方程组的列主元素高斯消去法和LU分解法

2025-10-25

数值试验报告分析

一、实验名称:解线性方程组的列主元素高斯消去法和LU分解法 二、实验目的及要求:

通过数值实验,从中体会解线性方程组选主元的必要性和LU分解法的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。

三、算法描述:

本次试验采用的是高斯列主元消去法和LU分解法求解线性方程组的解。

其中,高斯消去法的基本思想是避免接近于零的数作分母;能进行到底的条件:当A可逆时,列主元Gauss(高斯)消去法一定能进行到底。

优点:具有很好的数值稳定性;具有与顺序Gauss消去法相同的计算量。列主元Gauss(高斯)消去法的精度显著高于顺序Gauss(高斯)消去法。 注意:省去换列的步骤,每次仅选一列中最大的元。

矩阵的三角分解法是A=LU,L是下三角阵,U是上三角阵,Doolittle分解:L是单位下三

角阵,U是上三角阵;Crout分解:L是下三角阵,U是单位上三角阵。矩阵三角分解的条件 是矩阵A有唯一的Doolittle分解的充要条件是A的前n-1顺序主子式非零;矩阵A有唯一的Crout分解的充要条件是A的前n-1顺序主子式非零。三角分解的实现是通过

(1)Doolittle分解的实现; (2)Doolittle分解的缺点:条件苛刻,且不具有数值稳定性。 (3)用Doolittle分解求解方程组: AX=b LUX=b LY=b A=LU UX=Y;

四、实验内容:

解下列两个线性方程组

?3.016.031.99??x1??1???????4.16?1.23??x2???1? (1) ?1.27?0.987?4.819.34??x??1????3????7?10???32.099999(2) ?5?1??21?1??x1??8??????62??x2??5.900001??? 5?1??x3??5??????????02??x4??1?0a、用你熟悉的算法语言编写程序用列主元高斯消去法和LU分解求解上述两个方程组,输出Ax=b中矩阵A及向量b, A=LU分解的L及U,detA及解向量x.

b、将方程组(1)中系数3.01改为3.00,0.987改为0.990,用列主元高斯消去法求解变

换后的方程组,输出列主元行交换次序,解向量x及detA,并与(1)中结果比较。 c、将方程组(2)中的2.099999改为2.1,5.900001改为5.9,用列主元高斯消去法求解变换后的方程组,输出解向量x及detA,并与(1)中的结果比较。

d、用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令x=inv(A)*b,即可求出上述各个方程组的解,并与列主元高斯消去法和LU分解法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。用MATLAB的内部函数det求出系数行列式的值,并与(1)、(2)、(3)中输出的系数行列式的值进行比较。

五、实验结果:

a、用你熟悉的算法语言编写程序用列主元高斯消去法和LU分解求解上述两个方程组,输出Ax=b中矩阵A及向量b, A=LU分解的L及U,detA及解向量x. Gauss(高斯)列主元法程序及结果 (1)

>.>A=[3.01 6.03 1.99;1.27 4.16 -1.23;0.987 -4.81 9.34];b=[1;1;1];[RA,RB,n,X]=liezhuY(A,b) D = -0.0305 RA =3 RB =3 n = 3 X =

1.5926 -0.6319 -0.4936 (2). >>A=[10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2];b=[8;5.900001;5;1];[RA,RB,n,X]=liezhuY(A,b) D =-762.0001 RA = 4 RB =4 n =4 X =

0.0000 -1.0000 1.0000 1.0000

LU分解法程序及结果 (1)

>> A=[3.01 6.03 1.99;1.27 4.16 -1.23;0.987 -4.81 9.34];h1=zhjLU(A) D = -0.0305 RA =3 U =

3.0100 6.0300 1.9900 0 4.1600 -2.0696

0 0 5.3107 L =

1.0000 0 0 0.4219 1.0000 0 0.3279 -1.6316 1.0000 h1 =

3.0100 4.8635 -0.0305 (2)

>> A=[10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2];h1=zhjLU(A) D =-762.0001 RA = 4 U =

10.0000 -7.0000 0 1.0000 0 2.1000 6.0000 2.3000 0 0 -2.1429 -4.2381 0 -0.0000 0 12.7333 L =

1.0000 0 0 0 -0.3000 1.0000 0 0 0.5000 1.1905 1.0000 -0.0000 0.2000 1.1429 3.2000 1.0000 h1 =

10.0000 -0.0000 -150.0001 -762.0001

b、将方程组(1)中系数3.01改为3.00,0.987改为0.990,用列主元高斯消去法求解变换后的方程组,输出列主元行交换次序,解向量x及detA,并与(1)中结果比较。 线性方程组数据改变后程序及结果 >>A=[3.01 6.03 1.99;1.27 4.16 -1.23;0.987 9.34];b=[1;1;1];A(1,1)=3;A(1,3)=0.990;[RA,RB,n,X]=liezhuY(A,b) D = 9.8547 RA = 3 RB =3 n =3 X =

-4.0264 1.9193

1.5210

>> X=[1.5926 -0.6319 -0.4936]';X1=[-4.0264 1.9193 1.5210]';wucha=X1-X wucha =

-5.6190

-4.81

2.5512 2.0146

c、将方程组(2)中的2.099999改为2.1,5.900001改为5.9,用列主元高斯消去法求解变换后的方程组,输出解向量x及detA,并与(1)中的结果比较。 线性方程组数据改变后的程序及结果

>>A=[10 -7 0 1;-3 2.099999 6 2;5 -1 5 2];A(2,2)=2.1;b(2,1)=5.9;b=[8;5.900001;5;1];[RA,RB,n,X]=liezhuY(A,b)

D =-762.0000 RA = 4 RB =4 n = 4 X =

-0.0000 -1.0000 1.0000 1.0000

>> X=[0;-1;1;1]';X1=[0;-1;1;1]';wucha=X1-X wucha =

0 0 0 0

-1;2

1

0

d、用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令x=inv(A)*b,即可求出上述各个方程组的解,并与列主元高斯消去法和LU分解法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。用MATLAB的内部函数det求出系数行列式的值,并与(1)、(2)、(3)中输出的系数行列式的值进行比较。 线性方程组求解的程序及结果 (1)

>> A=[3.01 6.03 1.99;1.27 4.16 -1.23;0.987 -4.81 9.34];B=inv(A) B =

-1.0783 2.1571 0.5138 0.4281 -0.8560 -0.2039 0.3344 -0.6688 -0.1592

>> b=[1;1;1];X=inv(A)*b X =

1.5926 -0.6319 -0.4936

>> A=[3.01 6.03 1.99;1.27 4.16 -1.23;0.987 -4.81 9.34];A(1,1)=3;A(1,3)=0.990;B=inv(A) B =

3.3424 -6.1983 -1.1705

-1.3269 2.7442 0.5020 -1.0365 2.0682 0.4893 >> b=[1;1;1];X=inv(A)*b X =

-4.0264 1.9193 1.5210 (2)

>> A=[10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2];B=inv(A) B =

-0.0223 -0.0984 0.1181 0.1686 -0.1601 -0.1181 0.1417 0.2690 0.0108 0.1063 0.0724 -0.0755 0.1024 0.1575 -0.1890 0.1969

>> b=[8;5.900001;5;1];X=inv(A)*b X =

0 -1.0000 1.0000 1.0000

>> A=[10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2];A(2,2)=2.1;B=inv(A) B =

-0.0223 -0.0984 0.1181 0.1686 -0.1601 -0.1181 0.1417 0.2690 0.0108 0.1063 0.0724 -0.0755 0.1024 0.1575 -0.1890 0.1969 >> b=[8;5.900001;5;1];b(2,1)=5.9;X=inv(A)*b X =

-0.0000 -1.0000 1.0000

1.0000

六、实验结果分析

通过本次的解线性方程组数值分析实验,不仅让我熟悉了Matlab软件的功能和它强大的计算能力,而且大大提高了我解决数值分析实际问题的能力,进一步掌握了列主元高斯消去法解方程组的思想和有效性。通过对以上方程的计算和比较,方程组(1)具有病态性。当系数矩阵有微小的变化时,所得到的解与原方程组的解有很大的相对误差。方程组(2)中当系数矩阵A和b有较小变化时,所得到的解没有相对误差。所以方程组(2)是良性的。采用Matlab内部函数inv求解逆矩阵,然后通过X=inv(a)*b也可以求解方程组的解,但


解线性方程组的列主元素高斯消去法和LU分解法.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2024年闵行区高中结业文化考试化学试题及答案

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219