一组通勤厄米特 8*8 矩阵的同步对角化

Simultaneous diagonalization of a set of commuting hermitian 8*8 matrices

提问人:TomS 提问时间:9/23/2023 最后编辑:TomS 更新时间:9/27/2023 访问量:75

问:

我有四个通勤厄米特 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
Python 线性代数 特征向量

评论


答: 暂无答案