雅可比迭代法python实现
时间: 2024-10-21 15:09:22 浏览: 64
利用Python,实现雅克比(Jacobi)迭代法以及高斯-塞德尔(G-S)迭代法【矩阵形式】
5星 · 资源好评率100%
雅可比迭代法(Jacobi iteration)是一种数值方法,用于求解大型稀疏矩阵的线性方程组。它的核心思想是将原问题分解为一系列简单的子问题,分别求解,适用于对角占主导的矩阵。以下是Python中雅可比迭代法的基本实现:
```python
import numpy as np
def jacobi_iteration(A, b, initial_guess, convergence_threshold=1e-6, max_iterations=100):
n = A.shape[0]
X = np.array(initial_guess)
for _ in range(max_iterations):
old_X = X.copy()
for i in range(n):
# 计算当前行元素的新值
X[i] = (b[i] - np.dot(A[i, :i], old_X[:i]) - np.dot(A[i, i + 1:], old_X[i + 1:])) / A[i, i]
# 检查收敛条件
if np.linalg.norm(X - old_X) < convergence_threshold:
break
return X
# 示例
A = np.array([[4, 1], [2, 5]])
b = np.array([16, 23])
initial_guess = [0, 0]
solution = jacobi_iteration(A, b, initial_guess)
print("Solution using Jacobi Iteration:", solution)
```
在这个例子中,`A`是一个二维数组表示矩阵,`b`是目标列向量,`initial_guess`是初始猜测解,`convergence_threshold`是允许的最大误差,`max_iterations`是最大迭代次数。
阅读全文