【发布时间】:2016-02-07 13:57:10
【问题描述】:
你知道像 numpy 中的 Hermitian 矩阵类这样的东西吗?我想优化矩阵计算,如
B = U * A * U.H
,其中 A(因此,B)是厄米特。如果没有指定,则计算 B 的所有矩阵元素。其实这里应该可以节省2倍左右的系数。我错过了什么吗?
我需要的方法应该取A的上/下三角,U的全矩阵,并返回B的上/下三角。
【问题讨论】:
-
你这样做有什么问题
-
好吧,最后我需要三角矩阵 B[numpy.triu_indices(dim),0]。但是,在计算 (UAU.H)[numpy.triu_indices(dim)] 时,我首先计算 (UAU.H) 的所有元素,然后选择上三角形。只计算上三角不是更合理吗?
-
这里定义的厄米特函数:docs.scipy.org/doc/numpy-dev/user/…
-
对不起,我想我不够清楚。我不需要计算矩阵的厄米特函数。我想利用自伴随矩阵(或实数的对称矩阵)的对称性,以实现更有效的乘积/转换计算。用更简单的话来说:计算 B 的上三角形而不先计算下三角形。我想避免 python 循环。
标签: performance numpy matrix linear-algebra multiplication