用python写一段GS迭代的算法
时间: 2023-01-11 10:55:36 浏览: 120
python实现高斯(Gauss)迭代法的例子
好的,这是用 Python 写的 GS 迭代算法的一个例子:
```
def GS(A, b, x0, tol=1e-5, max_iter=100):
"""
解决线性方程组 Ax = b 的 GS 迭代算法
A: 系数矩阵
b: 常数向量
x0: 初始解
tol: 精度
max_iter: 最大迭代次数
"""
n = len(b)
x = x0.copy() # 使用 copy() 防止修改 x0 的值
for i in range(max_iter):
for j in range(n):
s = 0
for k in range(n):
if k != j:
s += A[j, k] * x[k]
x[j] = (b[j] - s) / A[j, j]
if np.linalg.norm(b - np.dot(A, x)) < tol: # 检查是否满足精度要求
return x, i+1
return x, max_iter
```
使用时,可以像这样调用:
```
A = np.array([[2, 1], [1, 2]]) # 系数矩阵
b = np.array([5, 7]) # 常数向量
x0 = np.array([1, 1]) # 初始解
x, n_iter = GS(A, b, x0)
print(f"在 {n_iter} 次迭代后,得到解 x = {x}")
```
希望这个例子能帮助你。
阅读全文