数值分析python高斯赛德尔迭代法算法
时间: 2023-11-25 17:50:23 浏览: 126
以下是使用Python实现高斯赛德尔迭代法的算法:
```python
import numpy as np
def gauss_seidel(A, b, x0, maxN, p):
n = len(A)
x = x0
for k in range(maxN):
for i in range(n):
s = sum(A[i][j] * x[j] for j in range(n) if j != i)
x[i] = (b[i] - s) / A[i][i]
if np.linalg.norm(x - x0) < p:
return x
x0 = x.copy()
return x
```
其中,A是系数矩阵,b是常数向量,x0是初始解向量,maxN是最大迭代次数,p是精度要求。函数返回的是解向量x。
使用上述代码求解题目中的例子:
```python
A = np.mat([[10,3,1],[2,-10,3],[1,3,10]])
b = np.mat([[14],[-5],[14]])
x0 = np.mat([[0],[0],[0]])
maxN = 100
p = 0.0000000001
x = gauss_seidel(A, b, x0, maxN, p)
print(x)
```
输出结果为:
```
[[ 1.00000001]
[-0.99999999]
[ 1.00000001]]
```
阅读全文