为什么在计算具有复数的矩阵的幂时存在差异?
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]
我正在尝试求出以下具有复数的 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]