任意功能

时间:2014-05-04 19:31:11

标签: python function

我正在尝试自学编程,目前正在努力学习“使用Python进行科学编程入门”。作者:Hans Petter Langtangen。 现在我参加练习3.20。不幸的是,我没有解决问题的方法..

我知道我可以在方法的定义中使用任意(数学)函数f:

def diff(f,x,h=0.001):  
    return (f(x+h)-f(x-h))/2*h

当我打电话给它时,我可以使用我想要的任何功能:

print diff(math.exp,0)
print diff(math.cos,2*math.pi)

所以这是我的问题: 有没有办法以这种方式容纳更复杂的功能?
比方说,我想近似函数的衍生物,如
x(t)= e ^( - (t-4)^ 2)
就像我上面提到的cos(x)和e ^(x)。

编辑:也许我应该更清楚。我并没有特别试图区分这一个函数e ^( - (t-4)^ 2),而是希望定义一个方法,它将x的任何函数作为参数并近似于x点的导数。登记/> 当我了解到你可以为cos(x),sin(x)和exp(x)之类的简单函数做到这一点时,我印象深刻。所以我认为如果有效,必须有办法让它更通用..

2 个答案:

答案 0 :(得分:2)

当然,首先要定义它:

def x(t):
    return math.exp(-(t-4)**2)

print diff(x, 0)

如果函数由返回的单个表达式组成,则通常可以使用def,而不是使用lambda

print diff(lambda t: math.exp(-(t-4)**2), 0)

答案 1 :(得分:0)

确定:

def x(t):
    return diff(math.exp(-(t-4)**2))