小编tre*_*rog的帖子

python中参数化的厄米矩阵的特征系统

假设我们对依赖于参数 t 的厄密矩阵 h(t) 的特征值和特征向量感兴趣。我的矩阵又大又稀疏,因此需要进行数值处理。

一种简单的方法是在离散化参数值 t_k 处评估矩阵 h(t_k)。是否可以根据“特征向量的特征”对特征向量和特征值进行排序?

让我用下面的简单例子来说明我所说的“特征向量的特征”是什么意思(i 表示虚数单位)。

h(t) = {{1, i t}, {-i t, 1}}

特征值为 1-t 和 1+t,具有相应的特征向量 {-i, 1} 和 {i, 1}。因此,根据“特征向量特征”进行排序,特征值应该在 t = 0 处交叉。然而,大多数特征求解器通过增加特征值来对它们进行排序,将特征向量从负交换为正 t(参见代码和输出图)。

import numpy as np
import scipy.sparse.linalg as sla
import matplotlib.pyplot as plt

def h(t):
    # parametrized hermitian matrix
    return np.array([[1, t*1j], [-t*1j, 1]])


def eigenvalues(t):
    # convert to tuple for np.vectorize to work
    return tuple(sla.eigsh(h(t), k=2, return_eigenvectors=False))

eigenvalues = np.vectorize(eigenvalues)

t = np.linspace(-1, 1, num=200) …
Run Code Online (Sandbox Code Playgroud)

python scipy eigenvalue sparse-matrix lapack

5
推荐指数
0
解决办法
190
查看次数

标签 统计

eigenvalue ×1

lapack ×1

python ×1

scipy ×1

sparse-matrix ×1