使用时I/O形状不匹配scipy.optimize.fsolve关于二维匿名函数数组变量

2024-09-26 22:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是源代码:

def lambdatest():
    F=lambda y: y-np.array([[1,2],[3,4]])
    y0=np.array([[3,4],[8,7]])    
    Y=scipy.optimize.fsolve(F,y0)
    return Y

我得到的错误是:

^{pr2}$

我环顾了一下,但似乎搞不懂。在


Tags: lambdareturn源代码def错误npscipyarray
1条回答
网友
1楼 · 发布于 2024-09-26 22:54:10

F^{}func参数)必须返回标量或一维数组。fsolve不处理高维数组。在

您可以使用^{}方法将二维数组展平为一维数组,然后将fsolve返回的解决方案重塑为二维数组:

def lambdatest():
    F = lambda y: y - np.array([[1,2],[3,4]]).ravel()
    y0 = np.array([[3,4],[8,7]])            
    Y = scipy.optimize.fsolve(F, y0.ravel()).reshape(y0.shape)
    return Y

结果如下:

^{pr2}$

相关问题 更多 >

    热门问题