GS迭代 python
时间: 2023-10-14 22:05:09 浏览: 88
Python库 | gs_quant-0.8.134-py3-none-any.whl
GS迭代(Gauss-Seidel iteration)是一种用于求解线性方程组的迭代方法。在Python中,可以使用以下代码实现GS迭代:
```python
import numpy as np
def gauss_seidel(A, b, x0, max_iter=100, tol=1e-6):
n = len(A)
x = np.copy(x0)
for k in range(max_iter):
for i in range(n):
sigma = 0.0
for j in range(n):
if j != i:
sigma += A[i][j] * x[j]
x[i] = (b[i] - sigma) / A[i][i]
if np.linalg.norm(A @ x - b) < tol:
break
return x
# 示例用法
A = np.array([[4, -1, 0], [-1, 4, -1], [0, -1, 4]])
b = np.array([5, 5, 10])
x0 = np.zeros_like(b)
solution = gauss_seidel(A, b, x0)
print("Solution:", solution)
```
上述代码中,`A`表示系数矩阵,`b`表示右侧常数向量,`x0`表示初始解向量,`max_iter`表示最大迭代次数,`tol`表示停止迭代的容差。函数`gauss_seidel`使用了嵌套循环来更新解向量,直到满足停止条件(即残差小于容差)或达到最大迭代次数为止。最后将得到的解向量打印出来。
这是一个简单的示例,你可以根据实际情况对代码进行调整和扩展。
阅读全文