为什么在计算具有复数的矩阵的幂时存在差异?

Why there is a discrepancy in calculating power of a Matrix having complex numbers?

我正在尝试求出以下具有复数的 2 X 2 矩阵的 6 次方: A =

([[j, 0],   
  [1, -j]])

当我手动和使用 Python 3.7

结果不同

当我手动执行时,我得到 -I (2 X 2),而使用 Python,我得到

[[-1.+0.j  0.+0.j]  
 [ 1.+0.j -1.-0.j]] , which are obviously not the same.

谁能解释一下,为什么会出现这种差异?

如果您使用常规 ** 运算符,numpy 将按元素计算幂:

import numpy as np

A = np.array([[1j, 0],
              [1, -1j]])

print(A**6)
[[-1.+0.j  0.+0.j]
 [ 1.+0.j -1.+0.j]]

我们要找的是np.linalg.matrix_power[1]

For positive integers n, the power is computed by repeated matrix squarings and matrix multiplications.

print(np.linalg.matrix_power(A, 6))
[[-1.+0.j  0.+0.j]
 [ 0.+0.j -1.+0.j]]

这是预期的结果。 [2]


[1] Numpy Documentation

[2]Calculation with Wolfram Alpha