我正在尝试计算非标准内积空间中10 000 x 10 000稀疏矩阵的伴随。
(对于那里的物理学家:矩阵是Fokker-Planck operator的表示,在这种情况下不是自伴的。)
我想计算伴随的内积空间是由对应于矩阵的第一个特征值的特征向量加权(对应于平衡概率密度)。
scipy函数scipy.sparse.linalg.LinearOperator
或numpy.matrix.H
似乎没有针对不同内部产品空间的选项。
答案 0 :(得分:0)
计算矩阵的伴随 A 结果非常简单。
如果你的内积空间用矩阵 M 加权,你只需要计算 M ^ -1 A ^ TM 其中T是(共轭)转置和第一项是矩阵的逆 M 。
在稀疏矩阵 A 的代码中,这将是:
import scipy.sparse as sparse
def computeAdjoint(A,measure):
"""Compute the adjoint matrix our inner product space by multiplying
with the kernel of integration/weighting function inverse on the left
and weighting function itself on the right"""
Minv=sparse.diags(1./measure)
M=sparse.diags(measure)
return Minv*A.transpose()*M
(另请注意,*表示矩阵乘法,而A.multiply(M)表示分量乘法)