python用lu方法求逆矩阵
时间: 2024-01-29 09:04:29 浏览: 32
使用LU分解法求逆矩阵的步骤如下:
1. 将原矩阵A进行LU分解,得到矩阵L和矩阵U。
2. 对矩阵L和矩阵U分别求逆矩阵,得到矩阵L^-1和矩阵U^-1。
3. 求逆矩阵A^-1 = U^-1 * L^-1。
以下是Python代码实现使用LU分解法求逆矩阵:
```python
import numpy as np
def LU_inverse(A):
n = A.shape[0]
P, L, U = LU_decomposition(A)
L_inv = np.zeros((n,n))
U_inv = np.zeros((n,n))
for i in range(n):
L_inv[i][i] = 1
U_inv[i][i] = 1 / U[i][i]
for j in range(i+1,n):
L_inv[j][i] = -1 * solve_triangular(U, L_inv[:,i], trans='T', lower=False, unit_diagonal=False, overwrite_b=True)[j]
for j in range(i):
U_inv[j][i] = -1 * solve_triangular(L, U_inv[:,i], lower=True, unit_diagonal=False, overwrite_b=True)[j]
A_inv = dot(U_inv, L_inv)
return A_inv
def LU_decomposition(A):
n = A.shape[0]
P = np.eye(n)
L = np.zeros((n,n))
U = np.zeros((n,n))
for k in range(n):
pivot = max(range(k, n), key=lambda i: abs(A[i][k]))
if pivot != k:
P[k], P[pivot] = P[pivot], P[k]
A[k], A[pivot] = A[pivot], A[k]
L[k][k] = 1
for i in range(k+1, n):
L[i][k] = A[i][k] / A[k][k]
for j in range(k+1, n):
A[i][j] -= L[i][k] * A[k][j]
for j in range(k, n):
U[k][j] = A[k][j]
return P, L, U
```
其中,`A`是输入的矩阵,函数返回的是矩阵的逆矩阵。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)