提问人:TomS 提问时间:9/23/2023 最后编辑:TomS 更新时间:9/27/2023 访问量:75
一组通勤厄米特 8*8 矩阵的同步对角化
Simultaneous diagonalization of a set of commuting hermitian 8*8 matrices
问:
我有四个通勤厄米特 8*8 矩阵 A、B、C、D。特征值为 +1 和 -1,每个特征值的多重性为 4。我想同时对这些矩阵进行对角化。由于每个特征值的简并性为 4 倍,这并不简单。
第一个问题
- NumPy、SciPy 中是否有 Python 的内置函数......要做到这一点?
似乎有一种算法可以对矩阵进行对角化
X(a,b,c,d) = aD + bB + cC + dD
其中 a、b、c、d 都是非零数,在我们的例子中是实数,因此 X 也是厄米蒂安。X 必须具有最大秩,即 rank(X) = 8,或 det(X) != 0。
其他问题
- 这个算法使用 X 有证据吗?
- 该算法在哪些进一步条件下收敛?
- 我如何选择数字 a、b、c、d?
被截取的代码(适用于我的目的)读取
import numpy as np
import scipy as sci
# generates all simultaneous eigenvectors for a list of matrices:
# condition of mutual commuting matrices is not checked
def simul_eigen_vec_generator(ops):
rands = np.random.randint(1, 100, len(ops))
rnd_lin_ops = np.sum(rands[:, np.newaxis, np.newaxis] * ops, axis=0)
_, e_vecs = sci.linalg.eig(rnd_lin_ops)
for k in range(rnd_lin_ops.shape[0]):
e_vec = e_vecs[:, k:k+1].T[0]
yield e_vec
答: 暂无答案
评论