numpy矩阵求幂给出负结果

时间:2019-09-07 20:20:01

标签: python-3.x numpy

我正在尝试通过使用矩阵指数创建具有高n的斐波那契数,但这给了我负面的结果。我试图更改整数对象,但失败了。

import numpy as np
def matrixmul(a,n):
    a=np.array([[1,1],[1,0]])
    return ((np.array([1,1],[1,0], dtype=np.object))**n)
matrixMul(a,100)

我的输出是 数组([[-1869596475,-980107325],        [-980107325,-889489150]]) 但这是错误的。不应有任何负数。

1 个答案:

答案 0 :(得分:1)

很难回答您的问题。您的代码有一些错误:

  • 您尚未初始化a

  • 已定义函数的名称也与使用的名称不同(python区分大小写)

  • 然后在您未使用a的函数中(因为它没有返回值)

  • 最重要的是,您不能使用**n来获得矩阵的指数。相反,您可以尝试在scipy库中找到合适的功能。 expm()函数可能适合此建议。