numpy 定义一个可逆矩阵

ddarikpa  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(165)

我想定义一个矩阵$Q_hat$。这个矩阵应该是可逆的。但除此之外,所有的元素都应该是变量,所以我可以自由选择矩阵的元素。然而,$Q_hat$必须是可逆的,正如我所说的,并且它应该分别有$s-1$行和列。数字$s$也应该是一个变量-所以行/列的数量也还不清楚。
我该怎么办?
我尝试了以下方法:

s = 5
Q_hat = np.array([[None]*(s-1)]*(s-1))
P1 = np.array([[None]*(s-1)]*(s-1))
E1 = P1*Q_hat
E1 = np.identity(s)
print(Q_hat)

以及

s = 5
Q_hat = np.array([[random.randint(1,10)]*(s-1)]*(s-1))
P1 = np.array([[random.randint(1,10)]*(s-1)]*(s-1))
E1 = P1*Q_hat
E1 = np.identity(s-1)
print(Q_hat)

我的目标是定义另一个矩阵$P1$,使得$Q_hat * P1 = np.identity(s-1)$.我希望通过这样做,我将显示可逆矩阵存在摆在首位.但我认为,我的麻烦是,我将不得不这样做“事先”-我不认为这是可能的,只是定义另一个矩阵和索赔后,它是逆.我应该怎么做呢?记住,它可以是任何类型的(s-1)x(s-1)-矩阵,它的系数我可以自由选择-除非矩阵必须是可逆的。
在Stackoverflow上,我只是发现了关于如何逆矩阵的问题,而不是如何首先定义可逆矩阵。

yks3o0rb

yks3o0rb1#

你的问题不清楚。
你只需要创建任何可逆矩阵吗?创建保证可逆的单位矩阵。
或者你需要创建一个“随机”可逆矩阵?在这种情况下,我只需要创建一个具有随机元素的适当大小的矩阵,如果它的确定值为零,则将其抛出并重试。随机选择的矩阵不可逆的几率非常小。

相关问题