写一个函数 forward_difference ,它取一个函数f:R→R并返回由 forward_difference(f)定义的另一个实值函数( X)= F(X + 1)-f(x)的 的
我想用Python编写一些代码。我该怎么做?也许第一行是
def forward_difference(f):
谢谢!
答案 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