用LU分解求A的逆矩阵



任务要求我生成一个50列50行的矩阵,其中种子1007092020的随机库在[0,1]范围内。

import numpy as np
np.random.seed(1007092020)
A = np.random.randint(2, size=(3,3))

那么我必须用LU分解找到A的逆矩阵。我不知道该怎么做。

如果您需要矩阵A是带有随机浮点数的50 x 50矩阵,那么您可以使用以下代码:

import numpy as np
np.random.seed(1007092020)
A = np.random.random((50,50))

相反,如果你想要0,1范围内的整数(包括1),你可以这样做

A = np.random.randint(0,2,(50,50))

如果您想使用LU分解计算逆,您可以使用SciPy。应该注意的是,由于您生成的是随机矩阵,因此您的矩阵可能没有逆矩阵。在这种情况下,你不能找到逆。

这里有一些代码可以在A有逆矩阵的情况下工作。

from scipy.linalg import lu
p,l,u = lu(A, permute_l = False)

现在我们有了下(l)和上(u)三角矩阵,我们可以通过下面的方程找到A的逆矩阵:A^-1 = u ^-1 l ^-1

l = np.dot(p,l) 
l_inv = np.linalg.inv(l)
u_inv = np.linalg.inv(u)
A_inv = np.dot(u_inv,l_inv)

相关内容

  • 没有找到相关文章

最新更新