gpt4 book ai didi

python - Scipy 数值积分

转载 作者:行者123 更新时间:2023-11-30 22:25:33 25 4
gpt4 key购买 nike

我正在使用Scipy库的quad方法,我想评估用户输入的函数的数值积分。该函数存储为字符串。然而,quad 方法不排除字符串输入。那么,如何将这个字符串表达式转换为数值呢?

Assume that, the string expression is:

s1 = "5*x**2 - 4*x + 2" and lower_bound = 0 , upper_bound = 5

quad(s1, lower_bound, upper_bound)

我尝试将此字符串拆分为关于算术符号的标记,然后调用四元组方法,但自变量(在本例中为 x)仍然保留为字符串。

如何解决这个问题?

最佳答案

您可以像这样使用 eval() :

>>> eval( "lambda x:x+1" )
<function <lambda> at 0x7f1b80d8ef28>

如果您在表达式的开头添加“lambda x:”字符串,然后对结果使用 eval(),eval 将返回一个执行您想要的操作的函数。然后您可以将此函数传递给您的 Scipy 集成函数。

注意:eval 将执行传递给它的任何代码,因此不要在会产生安全问题的上下文中使用它。如果这是一个在线应用程序,那么 eval() 是错误的选择。如果这是一个桌面应用程序,那么用户已经可以用计算机做任何他们想做的事情,在这种情况下 eval() 就可以了。

关于python - Scipy 数值积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501343/

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