如何实现签名为def derivative(f, x)的对称差商导数近似函数?
用对称差商实现单变量函数的导数近似函数
嘿,这事儿不难!你要实现的是用对称差商来近似单变量函数在某点的导数,这个方法比单侧差商精度更高,公式就是你提到的(f(x+h)-f(x-h))/(2h)。
首先,我们需要选一个合适的小步长h——不能太大(否则近似误差大),也不能太小(会引入浮点数精度问题),通常1e-5(也就是0.00001)是个不错的选择。
接下来就是代码实现了,完全符合你要求的def derivative(f, x):开头:
def derivative(f, x): h = 1e-5 # 选择合适的小步长 return (f(x + h) - f(x - h)) / (2 * h)
测试示例
比如我们用这个函数来测试f(x) = x²在x=2处的导数(理论值是4):
def f(x): return x ** 2 print(derivative(f, 2)) # 输出会非常接近4,比如3.999999999986347
这个结果已经很接近真实导数了,完全能满足一般的数值近似需求。如果需要更高精度,你可以微调h的取值,但1e-5在大多数场景下都够用啦。
内容的提问来源于stack exchange,提问作者Alexander West
相关产品推荐
相关产品推荐

