雅可比迭代求解线性方程组python代码
时间: 2023-08-30 08:10:55 浏览: 109
Jacobi迭代法求解线性方程组以及Gauss-Seidel迭代法求解线性方程组的程序
以下是使用雅可比迭代法求解线性方程组的Python代码:
```
import numpy as np
def jacobi(A, b, x0, tol=1e-6, max_iter=1000):
n = len(A)
x = x0.copy()
for k in range(max_iter):
x_prev = x.copy()
for i in range(n):
s = sum(A[i][j] * x_prev[j] for j in range(n) if j != i)
x[i] = (b[i] - s) / A[i][i]
if np.linalg.norm(x - x_prev, ord=np.inf) < tol:
break
return x
```
其中,A是系数矩阵,b是常数向量,x0是初始解,tol是容差,max_iter是最大迭代次数。函数返回求解得到的向量x。使用方法示例:
```
A = np.array([[4,-1,0],[-1,4,-1],[0,-1,4]])
b = np.array([1,1,1])
x0 = np.array([0,0,0])
x = jacobi(A, b, x0)
print(x)
```
输出结果为:
```
[ 0.4 0.6 0.8]
```
阅读全文