矩陣的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']
線性代數資料推薦
武漢大學黃正華老師的線性代數資料很不錯。還包括:線性代數 ( 同濟五版 ) 習題參考答案,也可以在語雀下載來自黃志華老師的資料 · 語雀