我正在尝试通过使用矩阵指数创建具有高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]]) 但这是错误的。不应有任何负数。
答案 0 :(得分:1)
很难回答您的问题。您的代码有一些错误:
您尚未初始化a
已定义函数的名称也与使用的名称不同(python区分大小写)
然后在您未使用a
的函数中(因为它没有返回值)
最重要的是,您不能使用**n
来获得矩阵的指数。相反,您可以尝试在scipy
库中找到合适的功能。 expm()
函数可能适合此建议。