数值分析实验报告
学院:信息学院
班级:计算机 0706 班
姓名:杨佳学
学号:20073069
课题一 线性方程组的迭代法
一、问题提出
1、设线性方程组
3
5
2
1
6
8
1
11
2
1
-1,
0,
2
6
2
2
2
6
2
10
6
0
x * = ( 1,
4
8
4
0
4
8
0
16
4
0
1
3
1
5
1
5
3
9
7
8
1,
2
6
3
1
6
7
4
17
13
3
2,
0,
1
5
2
3
7
17
2
34
9
24
3,
0
0
1
1
3
2
5
2
2
8
-1,
0
0
3
9
2
3
0
2
12
3
0
1
0
1
3
6
3
1
0
6
2 ) T
1,
0
0
1
4
3
5
1
2
4
1
2
3
4
5
x
1
x
x
x
x
x
x
x
x
x
10
9
8
7
6
=
5
12
3
2
3
46
13
38
19
21
2、设对称正定阵系数阵线方程组
4
3
3
4
4
11
1
4
0,
-1,
2
2
1
2
1
3
2
0
x * = ( 1,
2
1
8
1
22
4
10
3
1,
4
1
14
1
8
3
5
6
-1,
0
2
1
6
1
4
3
3
4
2
4
0
2
4
0
0
0,
2,
0
0
6
3
3
4
2
19
0
2
5
3
10
1
14
2
2 ) T
2
3
4
x
1
x
x
x
x
x
x
x
7
6
5
8
=
0
6
20
23
9
22
15
45
2
3
4
4
1
0
0
0
0
0
0
0
0
3、三对角形线性方程组
0
0
1
4
1
0
0
0
0
0
-3,
1
4
1
0
0
0
0
0
0
0
x * = ( 2,
试分别选用 Jacobi 迭代法,Gauss-Seidol 迭代法和 SOR 方法计算其解。
0
0
0
0
0
0
0
0
1
4
-1 ) T
7
5
13
2
6
12
14
4
5
5
0
1
4
1
0
0
0
0
0
0
1,
0
0
0
0
0
0
0
1
4
1
1,
0
0
0
0
0
0
1
4
1
0
0
0
0
0
0
1
4
1
0
0
0
0
0
0
1
4
1
0
0
0
0
0
0
1
4
1
0
0
0
0
x
1
x
x
x
x
x
x
x
x
x
10
-2,
1,
0,
3,
0,
=
9
8
7
5
6
- 1 -
二、要求
1、 体会迭代法求解线性方程组,并能与消去法做以比较;
2、 分别对不同精度要求,如
5
3
4
10,
10
10,
由迭代次数体会该迭代法的
收敛快慢;
3、对方程组 2,3 使用 SOR 方法时,选取松弛因子=0.8,0.9,1,1.1,
1.2 等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;
4、给出各种算法的设计程序和计算结果。
三、目的和意义
1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;
答:
gauss 消去法是一种规则化的加减消元法。它的基本思想是:通过逐次消
元计算把需要求求解的线性方程转化成上三角形方程组,也就是把线性方程
组的系数矩阵转化为上三角矩阵,从而使一般线性方程组求解转化为等价(同
解)的上三角方程组的求解。消去法是直接方法的一种。
优点:对于简单的方程组可以很快得出结果,计算中如果没有舍入误差,
在稳定的方程组中容易得到精确解,理论上可以求解任何可以求出解得方程
组。
缺点:数值有的时候不稳定(可采用列主元 gauss 消去法),既要消去,又
要回代,算法实现起来比较复杂,不适用于大规模方程组。
迭代法是从某一取定的初始向量 x(0)出发,按照一个适当的迭代公式,逐
次计算出向量 x(1),x(2),......,使得向量序列{ x(k)}收敛于方程组的精确解,
这样,对于适当大的 k,可取 x(k)作为方程组的近似解。
优点:算法简单,程序易于实现,特别适用求解大型稀疏线性方程组。
缺点:与直接方法不同,即使在计算过程中无舍入误差,迭代法也难获得
精确解。而且并不是所有方程组都适用我们学过的迭代法,对于这样的方程
组,我们还必须自己构造一个收敛的迭代矩阵。
2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;
- 2 -
Jacobi 迭代:
输 入 矩 阵 A= ( aij ), 右 端 项
b=(b1,…,bn ),维数 n,初始向量
x(0),精度要求 e,最大迭代次数 N,
当前迭代次数 k=1。
对于 i=1,2,…,n,计算 xi=xi
(0)+(bi-
∑aijxj
(0))/aii j=1,…,n
置 R=max{xi-xi(0)},1 ≤i≤n。
k=k+1
R≤e
N
xi
(0)=xi ,i=1,2,…n
超过迭代次数
Y
Y
输出 迭代解 x1,…xn,
和迭代次数 k
- 3 -
Gauss-Seidel 迭代
输 入 矩 阵 A= ( aij ), 右 端 项
b=(b1,…,bn ),维数 n,初始向量
x(0),精度要求 e,最大迭代次数 N,
当前迭代次数 k=1。
k=k+1
对于 i=1,2,…,n,计算 xi=xi
(0)+(bi-∑aijxj
-∑aijxj
(0))/aii j=1,…i-1,j=i+1,…n
置 R=max{xi-xi(0)},1 ≤i≤n。
R≤e
N
xi
(0)=xi ,i=1,2,…n
超过迭代次数
Y
Y
输出 迭代解 x1,…xn,
和迭代次数 k
- 4 -
SOR 迭代
输 入 矩 阵 A= ( aij ), 右 端 项
b=(b1,…,bn ),维数 n,初始向量
x(0),精度要求 e,最大迭代次数 N,
当前迭代次数 k=1,松弛因子 w。
对于 i=1,2,…,n,计算 xi=xi
(0)+
w*(bi-∑aijxj
(0))/aii j=1,…,n
置 R=max{xi-xi(0)},1 ≤i≤n。
k=k+1
R≤e
N
xi
(0)=xi ,i=1,2,…n
超过迭代次数
Y
Y
输出 迭代解 x1,…xn,
和迭代次数 k
- 5 -
3、体会上机计算时,终止步骤
对迭代法敛散性的意义;
x
(
k
)1
x
)(
k
< 或 k >(予给的迭代次数),
选择用以后的矩阵初始化,选择矩阵 3。
精度为 0.001。初始向量为(0,0,0,0,0,0,0,0,0,0)T
- 6 -
用 Jacobi 迭代,验证精度问题。
迭代次数为 11。
精度为 0.0001。初始向量为(0,0,0,0,0,0,0,0,0,0)T
- 7 -