已知一个方阵A,现在我想要A乘上一个方阵L之后可以得到一个三角矩阵U,并且要求出L和U,如何用python写出这样的功能
时间: 2024-02-24 07:00:45 浏览: 106
你可以使用Python中的numpy库来实现这个功能,具体实现方法如下:
```python
import numpy as np
def lu_decomposition(A):
n = A.shape[0]
L = np.eye(n)
U = A.copy()
for i in range(n-1):
for j in range(i+1, n):
L[j][i] = U[j][i] / U[i][i]
U[j][i:] = U[j][i:] - L[j][i] * U[i][i:]
return L, U
```
其中,`A`表示输入的方阵,`n`表示矩阵的大小,`L`和`U`表示输出的下三角矩阵和上三角矩阵,`np.eye(n)`表示大小为n的单位矩阵,`U.copy()`表示复制一个A的副本,避免直接改变原始矩阵。
在函数中,我们使用两层循环来实现高斯消元法的过程,最终得到L和U。
你可以使用以下代码来测试该函数:
```python
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
L, U = lu_decomposition(A)
print("L: ", L)
print("U: ", U)
```
输出结果为:
```
L: [[1. 0. 0.]
[4. 1. 0.]
[7. 2. 1.]]
U: [[ 1 2 3]
[ 0 -3 -6]
[ 0 0 0]]
```
其中,L为下三角矩阵,U为上三角矩阵。
阅读全文