一、问题描述
利用迭代方法求解线性方程组。
二、实验目的
掌握Jacobi 方法和Gauss-Seidel 方法的原理,能够编写代码实现两种迭代方法;能够利用代码分析线性方程组求解中的误差情况。
三、实验内容及要求
-
用代码实现:对下列方程中重新组织,并用Jacobi 方法和Gauss-Seidel 方法求解。(注意重新组织的过程也需要利用代码实现,每次迭代都输出产生的近似解)
u − 8v − 2w = 1
u + v + 5w = 4
3u − v + w =− 2 -
对于元素为 Aij = 5/(i + 2j − 1) 的n × n 矩阵, 令x* = [1, . . . , 1]^T, b = Ax* . 使用MATLAB 中的反斜线命令计算双精度解Xc。代码计算 Ax=b 的误差放大因子并与A 的条件数进行比较,观察Xc与误差放大因子之间的关系。
(a) n = 6 (b) n = 10
四、算法原理
-
给出Jacobi 方法和Gauss-Seidel 方法的原理:
当使用迭代方法求解线性方程组时,Jacobi方法和Gauss-Seidel方法是两种常见的迭代方法。
Jacobi 方法:
Jacobi方法是一种迭代法,用于求解线性方程组 Ax = b,其中A是系数矩阵,x是未知向量,b是右侧常数向量。迭代过程如下