如果我有一個矩陣
A=array([[ 0.59484625, 0. , 0. , 0. ] 。
[0. , 0.58563893, 0. , 0.] 。
[0. , 0. , 0.58280472, 0. ] 。
[0. , 0. , 0. , 0.58216725]])
如何得到A^(-1/2)?
似乎linalg.matrix_power(D,-1/2)在Python中不起作用。
在我看來,A^(-1/2)只是
A=array([[ 0. 59484625**(-1/2), 0. , 0. , 0. ],
[0. , 0. 58563893**(-1/2), 0. , 0. ],
[0. , 0. , 0. 58280472**(-1/2), 0. ] 。
[0. , 0. , 0. , 0.58216725**(-1/2) ]] )
但是,對于一個更大的矩陣,如何做到這一點呢?
uj5u.com熱心網友回復:
執行以下操作:
import numpy as np
A=np.array([[0.59484625, 0. , 0. , 0. ] 。
[0. , 0.58563893, 0. , 0.] 。
[0. , 0. , 0.58280472, 0.] 。
[0. , 0. , 0. , 0.58216725]])
d = np.diag(A)
D = np.array(d)
diagonal = np.diag(D**(-1/2)
print(diagonal)
注意:因為,當你試圖直接計算時,0^(-1/2)是一個未確定的形式。所以,我首先計算對角線的冪,然后將其轉換成矩陣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/331584.html
標籤:
