请帮我写一段 Gauss-Seidel迭代的 python代码
时间: 2023-06-07 17:11:44 浏览: 88
Gauss-Seidel迭代算法的Python实现详解
当然可以帮你写 Gauss-Seidel迭代的 python代码,以下是示例代码:
```python
import numpy as np
def gauss_seidel(A, b, x0, tol=1e-5, max_iter=1000):
"""
Gauss-Seidel迭代算法求解Ax=b,其中A为系数矩阵,b为常数列向量,x0为初始解向量。
"""
n = len(b)
x = x0.copy()
for iter_num in range(max_iter):
for i in range(n):
x[i] = (b[i] - np.dot(A[i, :i], x[:i]) - np.dot(A[i, i+1:], x0[i+1:])) / A[i, i]
if np.linalg.norm(x - x0) < tol:
return x
x0 = x.copy()
raise ValueError("Gauss-Seidel迭代算法没有收敛!")
# 示例
A = np.array([[10, 2, 1], [1, 5, 1], [2, 3, 10]])
b = np.array([7, -8, 6])
x0 = np.zeros_like(b)
x = gauss_seidel(A, b, x0)
print(x)
```
希望能够帮助到你!
阅读全文