矩阵的1/2次方_人工智能_creator123123的博客-CSDN博客
python 矩阵的(-1/2)次方?_Python_ICAOYS的搬砖日常-CSDN博客
我发觉这个求矩阵的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分解等等。
import numpy as np
from numpy import linalg as la
"""Lite version of scipy.linalg.
Notes
-----
This module is a lite version of the linalg.py module in SciPy which
contains high-level Python interface to the LAPACK library. The lite
version only accesses the following LAPACK functions: dgesv, zgesv,
dgeev, zgeev, dgesdd, zgesdd, dgelsd, zgelsd, dsyevd, zheevd, dgetrf,
zgetrf, dpotrf, zpotrf, dgeqrf, zgeqrf, zungqr, dorgqr.
"""
from __future__ import division, absolute_import, print_function
__all__ = ['matrix_power', 'solve', 'tensorsolve', 'tensorinv', 'inv',
'cholesky', 'eigvals', 'eigvalsh', 'pinv', 'slogdet', 'det',
'svd', 'eig', 'eigh', 'lstsq', 'norm', 'qr', 'cond', 'matrix_rank',
'LinAlgError', 'multi_dot']
线性代数资料推荐
武汉大学黄正华老师的线性代数资料很不错。还包括:线性代数 ( 同济五版 ) 习题参考答案,也可以在语雀下载来自黄志华老师的资料 · 语雀