刚开始学习python,被要求定义一个集成数学函数的python函数。
我们被告知 python 函数必须采用以下形式:(例如,计算 y = 2x + 3
在 x=1
和x=2
)
integrate( 2 * x + 3, 1, 2 )
(它应该返回下面的区域)
并且我们不允许使用/导入
除math
(和内置的也不允许使用集成工具)。
知道我应该怎么做吗?当我编写程序时,我总是得到 x
is undefined,但是如果我将 x
定义为一个值(假设为 0),那么 2*x+3
参数中的部分总是作为一个值而不是数学方程式,所以我真的不能在里面使用它吗?
如果我知道 python 函数如何将数学方程式作为参数,这将非常有帮助,不仅对这个作业,而且对 future 的许多人都有帮助,非常感谢。
假设您的集成函数如下所示:
def integrate(func, lo_x, hi_x):
#... Stuff to perform the integral, which will need to evaluate
# the passed function for various values of x, like this
y = func(x)
#... more stuff
return value
然后你可以这样调用它:
value = integrate(lambda x: 2 * x + 3, 1, 2)
编辑
但是,如果对集成函数的调用必须看起来完全
积分(2 * x + 3, 1, 2)
然后事情就有点棘手了。如果您知道该函数仅将使用多项式函数调用,您可以通过使 x 成为多项式类的实例来实现,正如 M. Arthur Vaïsse 在他的回答中所建议的那样。
或者,如果 integrate( 2 * x + 3, 1, 2 )
来自字符串,例如来自命令行参数或 raw_input()
调用,然后您可以使用标准 Python 字符串方法从字符串中提取 2 * x + 3
(或其他),然后使用 exec 从中构建一个 lambda
函数
。
我是一名优秀的程序员,十分优秀!