实验一
列主元消去法
【实验内容】
1. 理解高斯顺序消去法;
2. 理解主元高斯消去法在求解精度上的优点;
3. 完成列主元消去法的程序;
4. 会用系统内置命令求解有唯一解的线性方程组;
【试验方法与步骤】
一
、 回答下面的问题
1. 什么是线性方程组直接解法和迭代解法,各自的特点和使用问题类型是什么?
2. LU 分解是直接解法还是迭代解法, L 、 U 矩阵的特点是什么,应用在哪些问题
中,请举例说明。
3. 给出一个舍入误差严重影响计算结果精度的例子,试着能否从多个角度说明产
生该问题的原因。
4. 迭代解法的收敛性有什么意义,收敛条件用什么判定?
5. 给出例子,并说 明迭代收敛的速度。
二
、 完成下列计算,写出代码
1. 用 crame 法则、用 LU 分解函数、逆矩阵函数分别完成 P35 例 3.2.1
2. 编写列主元消去法程序,完成 P35 例 3.2.1 和习题 3 第 2 题
3. 用雅克比、高斯 塞德尔和 SOR 迭代完成习题 3 第 13 题,进行收敛速度的比较
分析
第 2 页 共 13
页
【实验结果】
一、第一大题
1.线性方程组的解法
2.LU 分解法
1. LU 分解属于直接解法
2. L 矩阵特点:一个对角线上的元素全为1 的下三角矩阵(即单位下三角矩阵)。
3. U 矩阵特点:上三角矩阵
4. 应用:LU 分解主要应用在数值分析中,用来解线性方程、求反矩阵或计算行列式
解法 直接解法 迭代解法
定义
经过有限步算数运算,可求得方程组
的精确解的方法
用某种极限过程逐步逼近线性
方程组精确解的方法
特点 运算步骤有限、可得精确解 极限逼近思想
适用问
题类型
计算过程中没有舍入误差
向量值序列收敛于向量* x
即
*) ( limx x k
k
=
→
举例
− =
+ =
3 20 26
5 2 8
x y
x y
= −
=
= = = −
− =
+ =
* 1
* 2
53 106 2, 1
3 20 26
50 20 80
y
x
x x y
x y
x y
即有精确解
,所以
两式相加,得
− =
+ =
3 20 26
5 2 8
x y
x y
, 0,1,2,...
0.15 1.3
0.4 1.6
( 1) ( )
( 1) ( )
=
= −
= − +
+
+
k
y x
x y
k k
k k
改写为迭代公式
其结果不断逼近精确解
然后不断迭代,
取 0,得 1.6, -1.3, (0) (0) (1) (1) x = y = x = y =
第 3 页 共 13
页
3.舍入误差严重影响计算结果精度的例子
建立 dx的递推公式
x
x
I
n
n +
=
1
0 5
(教材第二页)
法1:
− =
− =
− 1
0
5
1
5 ln 6 ln
n In
n
I
I
法2: 由0 In In − 1,得5In − 1 In +5In − 1 6In − 1
= − +
=
+
+ =
−
− −
n
I I
I
I
n
I
n n
I I
n n
n n n
5
1
5
1
0.0087301587
0.0087301587
2
1
)
5 21
1
6 21
1
(
5
1
6
1
0
1
5
1
20
20
将 1 带入上式,得 1
由于计算机只能存储有限位小数,所以在法1 中,随着n 的增大,其误差就会越来
越大,最后很大程度的偏向精确解;但是在法2 中尽管20 I 取得比较粗略,但是随着n
的增大,其误差随传播逐步缩小,所以其最后计算得到的结果是可靠的。
4.迭代解法的收敛性
迭代解法
的收敛性
意义 无线逼近精确解,便于在计算机上实现编程
收敛条件的
判定
向量值序列收敛于向量x *
即
* ( ) limx x k
k
=
→
第 4 页 共 13
页
5.举例说明迭代收敛的速度
分别用雅可比迭代法(J)、高斯—塞德尔迭代法(G-S)、超松弛迭代法(SOR)计算方组
=
−
− −
−
0 1 4
1 4 1
4 1 0
3
2
1
x
x
x
=
10
8
10
雅可比迭代 高斯—塞德尔迭代
次
数
X1 X2 X3 误差 次数 X1 X2 X3 误差
1 2.5000 2.0000 2.5000 2.1594954 1 2.5000 2.6250 3.1563 1.4570586
2 3.0000 3.2500 3.0000