计算方法上机作业 下载本文

题2-3

为了节省篇幅,这里不再列出L和U矩阵,只将解列出。 x =

-4.4554 1.9109 -4.3663 1.8218 -4.2772 1.7327 -4.1881 1.6436 -4.0990

1.5545 -4.0099 1.4653 -3.9208 1.3762 -3.8317 1.2871 -3.7426 1.1980 -3.6535 1.1089 -3.5644 1.0198 -3.4752 0.9307 -3.3861 0.8416 -3.2970 0.7525 -3.2079 0.6634 -3.1188 0.5743 -3.0297 0.4851 -2.9406 0.3960 -2.8515 0.3069 -2.7624 0.2178 -2.6733 0.1287 -2.5842 0.0396 -2.4950 -0.0495 -2.4059 -0.1386 -2.3168 -0.2277 -2.2277 -0.3168 -2.1386

-0.4059 -2.0495 -0.4950 -1.9604 -0.5842 -1.8713 -0.6733 -1.7822 -0.7624 -1.6931 -0.8515 -1.6040 -0.9406 -1.5149 -1.0297 -1.4257 -1.1188 -1.3366 -1.2079 -1.2475 -1.2970 -1.1584 -1.3861 -1.0693 -1.4752 -0.9802 -1.5644 -0.8911 -1.6535 -0.8020 -1.7426 -0.7129 -1.8317 -0.6238 -1.9208 -0.5347 -2.0099 -0.4455 -2.0990 -0.3564 -2.1881 -0.2673 -2.2772 -0.1782

-2.3663 -0.0891 -2.4554

3.讨论

LU分解在本质上是高斯消元法的一种表达形式。实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵。这正是所谓的杜尔里特算法(Doolittle algorithm):从下至上地对矩阵A做初等行变换,将对角线左下方的元素变成零,然后再证明这些行变换的效果等同于左乘一系列单位下三角矩阵,这一系列单位下三角矩阵的乘积的逆就是L矩阵,它也是一个单位下三角矩阵。这类算法的复杂度一般在(三分之二的n三次方) 左右。

在计算第2题的过程中,当把n=5的情况算完之后,将n改为10继续进行计算,发现matlab会报错。经过反复思考发现,因为程序只修改了n的值,其他参数(如矩阵)的名称并未进行修改,matlab也会将这些矩阵的值存起来,所以在计算时候会报错。因此,当运行完一次计算会,应该在matlab主界面的命令行输入clear指令,把前面计算的值都清楚掉,这样就不会影响到之后的计算了。

线性方程组的迭代解法

一、目的和意义

直接法对求解中小型方程组很有效,但当线性方程组的变量个数较多时,直接解法由于存储量和计算量太大就不是用来。此外,直接法也不适用于求解非线性方程组。

求解线性方程组的迭代法的基本思想是将“复杂”化归“简单”的重复。具体来讲,迭代法是一种逐次逼近的方法,从线性方程组的一个假设解向量开始,通过来自线性方程组的迭代格式,产生一系列近似解向量,最后求出满足精度要求的近似解。