利用python实现平方根法求解线性方程组了
时间: 2023-10-10 09:04:45 浏览: 472
平方根法是一种求解线性方程组的方法,适用于系数矩阵是对称正定的情况。下面是利用Python实现平方根法求解线性方程组的代码:
```python
import numpy as np
def cholesky(A, b):
n = len(A)
L = np.zeros((n, n))
for i in range(n):
for j in range(i+1):
if j == i:
L[i][j] = np.sqrt(A[i][i] - np.sum(L[i][j]**2 for j in range(i)))
else:
L[i][j] = (A[i][j] - np.sum(L[i][k]*L[j][k] for k in range(j))) / L[j][j]
y = np.zeros(n)
for i in range(n):
y[i] = (b[i] - np.sum(L[i][j]*y[j] for j in range(i))) / L[i][i]
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = (y[i] - np.sum(L[j][i]*x[j] for j in range(i+1, n))) / L[i][i]
return x
# 示例
A = np.array([[4, 1], [1, 3]])
b = np.array([1, 2])
x = cholesky(A, b)
print(x) # [ 0.09090909 0.63636364]
```
在代码中,函数`cholesky`接受两个参数,分别是系数矩阵`A`和常数向量`b`,返回解向量`x`。函数内部首先计算出系数矩阵的Cholesky分解的下三角矩阵`L`,然后利用前代和回代求解方程组。
值得注意的是,该代码实现的平方根法只适用于系数矩阵是对称正定的情况。在实际应用中,需要先判断系数矩阵是否符合这个条件。
阅读全文