如何在Python中编写forward_difference函数?

时间:2014-03-17 22:19:36

标签: python

写一个函数 forward_difference ,它取一个函数f:R→R并返回由 forward_difference(f)定义的另一个实值函数( X)= F(X + 1)-f(x)的

我想用Python编写一些代码。我该怎么做?也许第一行是

def forward_difference(f):

谢谢!

2 个答案:

答案 0 :(得分:2)

关键的观察是在Python中你可以在另一个函数中定义一个函数。每次调用forward_difference时都会创建一个新的函数对象。

此外,内部函数可以从创建它的外部函数的调用中访问变量(在这种情况下,重要的是参数f)。

def forward_difference(f):
    def difference_func(x):
        return f(x+1) - f(x)
return difference_func

每个单独的difference_func都有自己的f版本。

举个简单的例子,你甚至可以使用lambda而不是命名的内部函数:

def forward_difference(f):
    return lambda x : f(x+1) - f(x)

答案 1 :(得分:0)

非常简单,从问题的英​​文描述到代码的翻译与您希望的一样直接:

def forward_difference(f):
    def new_func(x):
        val = f(x + 1) - f(x)
        return val
    return new_func

使用它:

g = lambda x: x ** 2
g_fd = forward_difference(g)
g_fd(1)
Out[5]: 3