Mil*_*ell 3 python numpy orthogonal
我试图正交化 a2d-numpy array并失败了。我使用了这种方法并将其转换为以下代码:
def sym(w):
return w.dot((w.T.dot(w))**(-.5))
Run Code Online (Sandbox Code Playgroud)
但
In [1]: a
Out[2]:
array([[ 1.1, 0.1],
[ 0.1, 1.1]])
In [3]: a = sym(a)
In [4]: a
Out[5]:
array([[ 1.20909392, 2.43574363],
[ 2.43574363, 1.20909392]])
In [6]: a.dot(a.T)
Out[7]:
array([[ 7.39475513, 5.89008563],
[ 5.89008563, 7.39475513]])
Run Code Online (Sandbox Code Playgroud)
a.dot(a.T) 应该输出身份。
的工作定义sym是:
from scipy.linalg import sqrtm, inv
def sym(w):
return w.dot(inv(sqrtm(w.T.dot(w))))
Run Code Online (Sandbox Code Playgroud)
这是因为将 numpy 矩阵提高到 -.5 的幂并不等同于求矩阵平方根然后将其求逆,这是公式所要求的。
| 归档时间: |
|
| 查看次数: |
5581 次 |
| 最近记录: |