雅可比迭代python代码实现
时间: 2024-11-01 15:07:29 浏览: 20
雅可比迭代法是一种数值优化技术,用于求解非线性方程组。在Python中,我们可以使用NumPy库来方便地实现。以下是一个简单的雅可比迭代法的代码示例:
```python
import numpy as np
def f(x): # 这里假设f是一个函数,表示你要解的非线性方程组
return [x[0]**2 + x[1] - 1, x[0] + x[1]**2 - 1]
def jacobian(x):
dfdx = np.array([[2 * x[0], 1], [1, 2 * x[1]]]) # 计算Jacobian矩阵
return dfdx
def jacobi_iteration(initial_guess, tolerance=1e-6, max_iter=100):
x = initial_guess
for _ in range(max_iter):
dx = -jacobian(x).dot(np.linalg.inv(jacobian(x)).dot(f(x))) # 雅可比更新步骤
if np.allclose(dx, 0, atol=tolerance): # 如果收敛,则退出循环
break
x += dx
else:
print("达到最大迭代次数,未找到收敛解")
return x
# 使用雅可比迭代法求解初始猜测 (0, 0) 的非线性方程组
initial_guess = np.array([0, 0])
solution = jacobi_iteration(initial_guess)
print("Solution found:", solution)
阅读全文