gpt4 book ai didi

python - 将 fsolve 与 scipy 函数一起使用

转载 作者:行者123 更新时间:2023-12-01 04:57:05 28 4
gpt4 key购买 nike

我在使用 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

如何解决这个问题?

最佳答案

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是一个函数定义。类似于这样写:

def f(x):
return 2*x

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.)

关于python - 将 fsolve 与 scipy 函数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27150687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com