高斯赛德尔迭代代码
时间: 2023-07-02 16:10:31 浏览: 87
高斯赛德尔迭代是一种用于解线性方程组的迭代方法,其基本思想是将方程组的每个未知数的解逐一更新,直到达到一定的精度或迭代次数。以下是高斯赛德尔迭代的 Python 代码示例:
```python
import numpy as np
# 定义系数矩阵 A 和常数向量 b
A = np.array([[4, 1, 1],
[2, 7, 1],
[1, 2, 8]])
b = np.array([4, 3, 7])
# 定义初始解向量 x 和迭代次数
x = np.zeros_like(b)
max_iter = 100
tol = 1e-6
# 高斯赛德尔迭代主体循环
for k in range(max_iter):
for i in range(len(b)):
x[i] = (b[i] - np.dot(A[i, :i], x[:i]) - np.dot(A[i, i+1:], x[i+1:])) / A[i, i]
# 判断是否达到精度要求
if np.linalg.norm(np.dot(A, x) - b) < tol:
break
# 输出迭代结果和迭代次数
print("Solution: ", x)
print("Iterations: ", k+1)
```
在上述代码中,我们首先定义了一个 $3 \times 3$ 的系数矩阵 $A$ 和一个长度为 $3$ 的常数向量 $b$,然后将解向量 $x$ 初始化为全零向量,并设置最大迭代次数和精度要求。随后,我们进入高斯赛德尔迭代主体循环,其中第一个嵌套循环用于逐一更新解向量中的每个元素,而第二个判断语句用于检查是否达到精度要求。最后,我们输出迭代结果和迭代次数。
阅读全文