任务要求我生成一个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)