我发觉这个求矩阵的1/2次方,本质上是在求相似对角化时的可逆矩阵。
给出代码
#求出一个满足B^2==A(A为实对称矩阵)的B,近似代替matlab中一行 B=A^(1/2) 求B的效果 import numpy as np from numpy import linalg as la # v 为特征值 P为特征向量 v, P = la.eig(A) V = np.diag(v**(0.5)) B = P @ V @ la.inv(P)
成功案例
matlab
transfer_mat = cov^(1/2);
python
v, P = la.eig(cov) V = np.diag(v**(0.5)) transfer_mat = P @ V @ la.inv(P)
一些相关又无关的概念
相关关键词:实对称矩阵的相似正交化,施密特正交化,矩阵奇异值分解。(奇异值分解的形式和这个形式也是非常的相像的)
python/sympy计算施密特正交化向量_Python_ouening的博客-CSDN博客
线性代数,矩阵论,离散数学的资料推荐黄正华的教学信息页面
强大的scipy.linalg包,用如下的方法引入,包含奇异值分解,QR分解,cholesky分解等等。