python 矩阵的(-1/2)次方?

运算

已知方阵 AAA,求 A−12A^{-\frac{1}{2}}A21
从以下思路入手,假设存在对角矩阵 Λ\LambdaΛ 使得下式成立:
P−1AP=ΛΛ=diag[μ1,μ2,⋯ ,μn] P^{-1}AP = \Lambda \\ \Lambda = \text{diag}[\mu_1, \mu_2, \cdots, \mu_n] P1AP=ΛΛ=diag[μ1,μ2,,μn]

则:
A−12=PP−1A−12PP−1=PΛ−12P−1A^{-\frac{1}{2}} = PP^{-1}A^{-\frac{1}{2}}PP^{-1} =P \Lambda^{-\frac{1}{2}} P^{-1}A21=PP1A21PP1=PΛ21P1
Λ−12=diag[μ1−12,μ2−12,⋯ ,μn−12]\Lambda^{-\frac{1}{2}} = \text{diag}[\mu_1^{-\frac{1}{2}}, \mu_2^{-\frac{1}{2}}, \cdots, \mu_n^{-\frac{1}{2}}]Λ21=diag[μ121,μ221,,μn21]


代码

import numpy as np
from numpy import linalg as la

# v 为特征值    Q 为特征向量
v, Q = la.eig(A)
# print(v)
V = np.diag(v**(-0.5))
# print(V)
T = Q * V * la.inv(Q)

之前写错了矩阵求逆的代码,已更正。不过有没有人试过下面这两种效果是不是一样的

T = Q * V * la.inv(Q)


T = Q * V * (Q**(-1))
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐