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

问题描述 投票:1回答:1

我想求以下2 X 2复数矩阵的第6次幂:A = 1 X 2

([[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.

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

python matrix-multiplication
1个回答
2
投票

如果你使用常规的 ** 运算符,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]

对于正整数n,通过反复的矩阵平方和矩阵乘法计算功率。

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

这就是我们所期望的结果。[2]


[1] Numpy文档

[2] 用Wolfram Alpha计算

© www.soinside.com 2019 - 2024. All rights reserved.