共轭迭代法python线性方程组
时间: 2023-11-08 17:01:15 浏览: 127
共轭迭代法(Conjugate Gradient Method)是一种用于解决线性方程组的迭代算法。它特别适用于对称正定矩阵的方程组求解。下面是一个使用Python实现共轭迭代法求解线性方程组的示例代码:
```python
import numpy as np
def conjugate_gradient(A, b, x0, max_iter=100, tol=1e-6):
r = b - np.dot(A, x0)
p = r
x = x0
for i in range(max_iter):
Ap = np.dot(A, p)
alpha = np.dot(r, r) / np.dot(p, Ap)
x = x + alpha * p
r_new = r - alpha * Ap
if np.linalg.norm(r_new) < tol:
break
beta = np.dot(r_new, r_new) / np.dot(r, r)
p = r_new + beta * p
r = r_new
return x
# 示例用法
A = np.array([[4, 1], [1, 3]]) # 系数矩阵
b = np.array([1, 2]) # 右侧常数向量
x0 = np.array([0, 0]) # 初始向量
x = conjugate_gradient(A, b, x0)
print("解 x =", x)
```
阅读全文