我正在尝试使用矩阵指数创建一个具有高 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)
我的输出是 array([[-1869596475, -980107325], [ -980107325, -889489150]]) 但这是错误的。不应有任何负数。
你的问题很难回答。您的代码有一些错误:
-
您尚未初始化
a
-
此外,定义的函数的名称与使用的名称不同(python区分大小写(
-
然后在函数中你没有使用
a
(因为它没有回报( -
最重要的是,你不能使用
**n
太得到矩阵的指数。相反,您可以尝试在scipy
库中找到正确的功能。可能expm()
函数都适合这种感觉。