微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

算了函数调用不适用于浮点数或输入和输出之间的不匹配

如何解决算了函数调用不适用于浮点数或输入和输出之间的不匹配

我已经查看了此处提供的多个答案以及scipy文档,但无法解决我的问题。

我试图找到方程式的根,每次出现不同的错误

def func(x):

    return [sgr*(np.exp(-q*(x/p1)**(1/p2))+np.exp(-alpha*(x/p1)**(1/p2))
        -np.exp(-(q+alpha)*(x/p1)**(1/p2)))
        +sveg*(1-np.exp(-q*(x/p1)**(1/p2)))-sfor]
initialGuess=[0]
root = fsolve(func,initialGuess)

给出“函数调用结果不是正确的浮点数组”

def func(arguments):
    x1 = arguments[0]
    x2 = arguments[1] 
    x3 = arguments[0]
    x4 = arguments[1]     

    return [sgr*(np.exp(-q*(x1/p1)**(1/p2))+np.exp(-alpha*(x2/p1)**(1/p2))
        -np.exp(-(q+alpha)*(x3/p1)**(1/p2)))
        +sveg*(1-np.exp(-q*(x4/p1)**(1/p2)))-sfor]
initialGuess=np.array([0,0])
root = fsolve(func,initialGuess) 

给出“形状应为(4,),但应为(1,)”

def func(arguments):
    x1 = arguments[0]
    x2 = arguments[1] 
    x3 = arguments[0]
    x4 = arguments[1]     

    return [sgr*(np.exp(-q*(x1/p1)**(1/p2))+np.exp(-alpha*(x2/p1)**(1/p2))
        -np.exp(-(q+alpha)*(x3/p1)**(1/p2)))
        +sveg*(1-np.exp(-q*(x4/p1)**(1/p2)))-sfor]
initialGuess=np.array([0,0])
root = root(func,initialGuess,method='lm') 

给出“输入错误:N = 4不能超过M = 1”

有人可以协助吗?

所有其他变量都已定义。

解决方法

对于其他为此苦苦挣扎的人,一位同事提议将所有变量包含在要求解的方程式中,并且奏效了。

[
  {
    "id": "5fa1bad3d054121ce66727c7","seriesId": "1","buildingName": "testBuilding","value": 3,"timestamp": "2020-01-01T01:00:00+01:00"
  },{
    "id": "5fa1bad3d054121ce66727c8","value": 2,"timestamp": "2020-01-01T02:00:00+01:00"
  },{
    "id": "5fa1bad3d054121ce66727c9","value": 1,"timestamp": "2020-01-01T03:00:00+01:00"
  },{
    "id": "5fa1bad3d054121ce66727ca","value": 0,"timestamp": "2020-01-01T04:00:00+01:00"
  }
]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。