python 雅可比迭代法
时间: 2024-01-06 16:25:51 浏览: 130
雅可比迭代法是一种用于求解线性方程组的迭代方法。它通过将方程组的每个未知数的解逐步逼近真实解来进行计算。下面是一个使用Python实现雅可比迭代法的示例:
```python
import numpy as np
def Jacobi(A, b, x0, tol=1e-6, maxiter=100):
n = len(b)
x = x0.copy()
for k in range(maxiter):
x_new = np.zeros_like(x)
for i in range(n):
x_new[i] = (b[i] - np.dot(A[i, :i], x[:i]) - np.dot(A[i, i+1:], x[i+1:])) / A[i, i]
if np.linalg.norm(x_new - x) < tol:
break
x = x_new
return x
# 示例
A = np.array([[2.0, 1.0], [5.0, 7.0]])
b = np.array([11.0, 13.0])
x0 = np.array([0.0, 0.0])
x = Jacobi(A, b, x0, tol=1e-6, maxiter=100)
print("解:", x)
print("残差:", np.linalg.norm(A @ x - b))
```
这段代码中,首先定义了一个`Jacobi`函数,该函数接受系数矩阵`A`、右端常数列`b`、初始解向量`x0`、容差`tol`和最大迭代次数`maxiter`作为输入。在每次迭代中,根据雅可比迭代公式更新解向量`x`,直到满足容差要求或达到最大迭代次数。最后,打印出求解得到的解向量`x`和残差。
阅读全文