我想要一种 numpy-sh 向量化特征值计算的方法,这样我就可以给它一个矩阵矩阵,它会返回一个各自特征值的矩阵。
例如,在下面的代码中,B 是由 3x3 矩阵 A 的 4 个副本组成的块 6x6 矩阵。C 是我希望看到的输出,即维度为 (2,2,3) 的数组(因为 A有 3 个特征值)。
这当然是一个非常简化的例子,一般情况下矩阵 A 可以有任意大小(尽管它们仍然是正方形),而矩阵 B 不一定由 A 的副本组成,而是由不同的 A1、A2 等组成(所有大小相同但包含不同元素)。
import numpy as np
A = np.array([[0, 1, 0],
[0, 2, 0],
[0, 0, 3]])
B = np.bmat([[A, A], [A,A]])
C = np.array([[np.linalg.eigvals(B[0:3,0:3]),np.linalg.eigvals(B[0:3,3:6])],
[np.linalg.eigvals(B[3:6,0:3]),np.linalg.eigvals(B[3:6,3:6])]])