厄米特矩阵的logm函数返回非厄米特矩阵

时间:2013-04-13 15:52:39

标签: python numpy scipy linear-algebra

当我在scipy中使用线性代数模块来计算埃尔米特矩阵的矩阵对数时,它输出的矩阵不是埃尔米特。我首先使用:

定义一个向量
n = np.random.uniform(size = 3) + 1j*np.random.uniform(size = 3)

然后我定义了相应的厄米特矩阵:

N = np.outer(n,n.conj())

但是,linalg.logm(N)不会返回埃尔米特矩阵。为什么会这样?

1 个答案:

答案 0 :(得分:2)

随机矩阵的除一个特征值之外的所有特征值均为零。由于矩阵上的函数可以作为函数写在矩阵的特征值上,我看到为什么对数在那里有问题,因为没有定义log(0)。也许该函数没有看到这个问题,只是返回垃圾。

我想你只需要确保你的随机Hermitian矩阵具有非零特征值。