首页 > 解决方案 > 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)

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

标签: python-3.xnumpy

解决方案


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

  • 你还没有初始化a

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

  • 然后在你没有使用的功能中a(因为它不是回报)

  • 最重要的是你不能使用**n太多的矩阵指数。相反,您可以尝试在scipy库中找到正确的功能。可能expm()功能可能适合这个研究。


推荐阅读