雅可比迭代法python代码
时间: 2023-12-01 13:41:33 浏览: 37
以下是雅可比迭代法的Python代码:
```python
import numpy as np
def jacobi_iter(A, b, x0, N, p):
"""
:param A: 原系数矩阵
:param b: 原值矩阵
:param x0: 初始解向量
:param N: 最大迭代次数
:param p: 精度要求
:return: 迭代结果向量,迭代历史向量,迭代次数
"""
n = len(A)
x = x0.copy()
h = np.zeros((N, n))
k = 0
while k < N:
for i in range(n):
s = 0
for j in range(n):
if j != i:
s += A[i][j] * x[j]
x[i] = (b[i] - s) / A[i][i]
h[k] = x
if np.linalg.norm(np.dot(A, x) - b) < p:
break
k += 1
return x, h[:k], k
# 使用范例
A = np.array([[10, 3, 1], [2, -10, 3], [1, 3, 10]])
b = np.array([14, -5, 14])
x0 = np.array([0, 0, 0])
N = 100
p = 0.00000001
x, h, k = jacobi_iter(A, b, x0, N, p)
print("迭代结果向量:", x)
print("迭代历史向量:", h)
print("迭代次数:", k)
```