gpt4 book ai didi

python - Sympy:从数值上找到符号函数的根

转载 作者:行者123 更新时间:2023-11-28 16:28:40 25 4
gpt4 key购买 nike

我有一个函数,我想找到它的根。到目前为止,即使是 Mathematica 也无法通过分析找到根,所以在数值上很好(但是,我很乐意在这件事上感到惊讶)。

文档中的示例都引用了“真正的”函数、lambda 函数,并没有充分解决这个问题(或者我理解得太慢了)。这是一个简单的用例:

from sympy import *
p, r, c, y, lam, f = symbols('p r c y lambda f')
priceCDF = (c*lam*p + c*r - lam*p*r - p*r + r*(c - p)*LambertW(-exp((-c*lam*p - c*r + lam*p*r + lam*r*(c - p) + p*r)/(r*(c - p))), -1))/(lam*r*(c - p))
priceCDFplot = priceCDF.subs(r, 2).subs(c, 0.5).subs(lam, 1)
mpmath.findroot(priceCDFplot, 0.8)

这给了我 TypeError: 'Mul' object is not callable。我哪里错了,我如何从数值上找到根 - 我如何通过分析找到它?

最佳答案

如果您想使用 mpmath.findroot,您需要将 SymPy 表达式转换为 mpmath 表达式。最简单的方法是使用 lambdify(p, priceCDF, 'mpmath')(我假设 p 是您要求解的变量)。

另一种解决方案是使用 sympy.nsolve,它直接作用于 SymPy 表达式。

关于python - Sympy:从数值上找到符号函数的根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34358454/

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