1、数值实验报告一、实验名称解线性方程组的列主元素高斯消去法和 LU 分解法二、实验目的通过数值实验,从中体会解线性方程组选主元的必要性和 LU 分解法的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。三、实验内容解下列两个线性方程组(1) 134.981.97.0262.3x(2) 1590.820155.343x四、实验步骤1、用算法语言编写程序用列主元高斯消去法和 LU 分解求解上述两个方程组,输出Ax=b 中矩阵 A 及向量 b, A=LU 分解的 L 及 U,detA 及解向量 x.2、将方程组(1)中系数 3.01 改为 3.00,0.987 改为 0.990,用列主元高斯
2、消去法求解变换后的方程组,输出列主元行交换次序,解向量 x 及 detA,并与(1)中结果比较。3、将方程组(2)中的 2.099999 改为 2.1,5.900001 改为 5.9,用列主元高斯消去法求解变换后的方程组,输出解向量 x 及 detA,并与(1)中的结果比较。4、用 MATLAB 的内部函数 inv(矩阵的逆)求出系数矩阵的逆矩阵,再输入命令 x=inv(A)*b,即可求出上述各个方程组的解,并与列主元高斯消去法和 LU 分解法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。用 MATLAB 的内部函数 det 求出系数行列式的值,并与(1) 、 (2) 、 (3)中输
3、出的系数行列式的值进行比较。五、程序流程图列主元高斯消去法:六、实验结果计算结果如下:1、输出结果为(1)A=3.01 6.03 1.99;1.27 4.16 -1.23;0.987 -4.81 9.34; b=1;1;1X 1=1.0e+003 *1.5926-0.6319-0.4936U = 3.0100 6.0300 1.99000 4.1600 -2.06960 0 5.3107L = 1.0000 0 00.4219 1.0000 00.3279 -1.6316 1.0000X 2= -0.45040.29030.3042det(A) ans =-0.0305(2)A=10 -7 0
4、 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2;b=8;5.900001;5;1; X 1= 0.0000-1.00001.00001.0000U =10.0000 -7.0000 0 1.00000 2.1000 6.0000 2.30000 0 -2.1429 -4.23810 -0.0000 0 12.7333L =1.0000 0 0 0-0.3000 1.0000 0 00.5000 1.1905 1.0000 -0.00000.2000 1.1429 3.2000 1.0000X2 = -0.2749-1.32991.29691.4398det(A) an
5、s = -762.00012、输出结果为X =119.5273-47.1426-36.8403det(A) ans =-0.40703、输出结果为(1)x = 11.03004.20005.5170(2)x =39.700020.390058.100023.90007、实验结果分析有步骤(1)得到的结果比较可知,列主元高斯消去法和 LU 法解得的结果有很大差别,分析其原因。虽然顺序主子式只要不为零就可以消去求解,但是如果求解过程中遇到某个 k,即使 ,但是 很小,从而就会使 的绝对值很大,那么,舍入的累计误差就0/)(ka/)(kaikm会很大,计算出的解相对于精确解就会有很大的差别。因此,列
6、主元高斯消去法的数值稳定性优势就很明显了。由步骤(2)和(3)的结果和(1)比较得知,一旦系数矩阵或者是解矩阵元素发生微小变化,对方程的解都会产生很大的影响,这就引入了矩阵的条件数和病态线性方程组的概念,系数矩阵的条件数越大,相应的方程组病态程度越严重。所以,对于严重病态线性方程组 ,当 A 和 b 有微小变化时,即使求解过程是很精确进行的,所得的解相对于原x方程组的解依然会有很大的相对误差.由递推公式(1)知当 时, 应当为精确解,递推公式的每一步都没有误1.ln0InI差的取舍,但计算结果 , 出现负值。由此看出,当3.5 067.4I6较大时,用递推公式(1)中的 近似 是不正确的。nn
7、I主要原因是初值 不是精确值,设有误差 ,由递推公式(1)知091.I )(0Ie)()(1nnIe则有 )(10)(0)()( 21 IeIIIe nnnn 误差 随 的增大而迅速增加,增加到 的 倍。由此可见,递推公式计算)(nIe e的误差不仅取决于初值的误差,公式的精确性,还依赖于误差的传递即递推计算的稳定性。由递推公式(2)知 , 为估计值,并不精确,有 ,0867.1InI 120)(0Ie而由 得)(0)(*1nneIe)(10*0nIeI误差 随递推公式逐步缩小。综上所述,在递推计算中,数值计算方法是非常重要的,)(*0Ie误差估计、误差传播及递推计算的稳定性都会直接影响递推结果。