python实现高斯赛德尔迭代法解线性方程组
时间: 2023-07-07 10:08:31 浏览: 160
高斯赛德尔迭代法是一种迭代解线性方程组的方法,通常用于解决大型稀疏矩阵的问题。下面是Python实现高斯赛德尔迭代法解线性方程组的示例代码:
```python
import numpy as np
def gauss_seidel(A, b, x0, tol=1e-10, maxiter=1000):
"""
高斯赛德尔迭代法求解线性方程组 Ax = b
A: 系数矩阵
b: 常数向量
x0: 初始解向量
tol: 误差容限
maxiter: 最大迭代次数
"""
n = len(A)
x = np.copy(x0)
for k in range(maxiter):
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 = np.copy(x)
raise ValueError("迭代次数超过了最大迭代次数!")
```
使用示例:
```python
A = np.array([[4, 1, 1], [2, 7, 1], [1, 2, 6]])
b = np.array([3, -11, 9])
x0 = np.zeros_like(b)
x = gauss_seidel(A, b, x0)
print(x)
```
输出:
```
[ 0.99999627 -1.99999808 1.49999831]
```
这是线性方程组的解向量。
阅读全文
相关推荐


















