生成导数的函数

2024-05-16 15:02:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图构造一个函数来返回f的派生,一个一个变量的函数。在

返回值应该是一个近似于f'的导数的函数 使用对称差商,这样返回的函数将计算(f(x+h) -f(x-h))/2h.

函数应该这样开始:

def derivative(f, x):

它应该近似于函数f在点x的导数。 有人知道我可以用什么类型的代码来构造这种类型的函数吗?在

/亚历克斯


Tags: 函数代码类型def导数返回值derivative差商
3条回答

你最好的选择可能是使用SymPy,它可以进行符号积分和微分等功能:

>>> from sympy import *
>>> x, y, z = symbols('x y z')
>>> diff(x**2, x)
2*x

您希望函数返回什么? 如果需要某个x中导数的值,则可能需要三个参数:

def derivative(f, h, x):
    return (f(x+h) - f(x-h))/2h

如果您想得到一个函数,它可以计算上述任何x,您可以使用:

^{pr2}$

对于一般函数f(x),可以通过标准(二阶)近似(f(x+h)-f(x-h))/2h,直接得到对其一阶导数的数值近似。主要的挑战是,与f(x)呈现非二次变化的长度尺度相比,选择h较小,但足够大,以避免在减去f(x)的附近值时出现舍入误差。在

然而,如果你想用代数的方法来区分你的函数,那么事情就更具挑战性了。最简单的情况是f(x)是多项式,因此可以用x的幂系数向量来表示,在这种情况下,numpy.polyder()可以用来计算n'阶导数的系数。在

对于更复杂的函数,可以查看SymPy。在

两个纽比·波利德()和SymPy选项要求您以专用于这些特定工具的方式表示函数。我不知道有什么方法可以接受一个普通的Python函数并构造另一个实现精确导数的函数。在

相关问题 更多 >