将fsolve与scipy函数一起使用

2024-05-29 02:03:50 发布

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

我遇到了scipy.fsolve的以下问题,但我不知道该怎么做:

U = 0.00043
ThC =1.19
Dist = 7   
IncT = 0.2  
pcw = 1180000          
k = 1.19                    
B = U * pcw / (2 * k)

fugato = fsolve((((Ql/(2*math.pi* k))*math.exp(B * x)*special.kv(0, B * x))-IncT),0.01)

print fugato

我在fsolve中得到错误TypeError: 'numpy.float64' object is not callable。在

我如何解决这个问题?在


Tags: dist错误pimathscipyspecialprintql
1条回答
网友
1楼 · 发布于 2024-05-29 02:03:50

fsolve的参数必须是函数。在

我想你想解x的方程?如果是,请写下:

fugato = fsolve(lambda x: Ql/(2*math.pi* k)*math.exp(B * x)*special.kv(0, B * x)-IncT,
                0.01)

有效。在


为了解释这里发生了什么,构造lambda x: 2*x是一个函数定义。它类似于写作:

^{pr2}$

lambda构造通常用于定义只需要一次的函数。注册回调或表示数学表达式时通常会出现这种情况。例如,如果您想集成f(x) = 2*x,您可以编写:

from scipy.integrate import quad
integral = quad(lambda x: 2*x, 0., 3.)

同样,如果要求解2*x=1,可以写下:

from scipy.optimize import fsolve
fsolve(lambda x: 2*x-1, 0.)

相关问题 更多 >

    热门问题