我正在阅读Joel Grus的《从头开始的数据科学》,并且一直在理解一个简单的差商函数如何使用python工作。
代码如下:
f
是一个单变量函数的函数,依赖于x
,因为h
接近0。在
def difference_quotient(f, x, h):
return (f(x + h) - f(x)) / h
我知道这只是求极限的方程,在这个例子中是导数,但是我不明白脚本是如何工作的。你会在函数中加入什么参数来允许返回语句f(something)
而不是{}。到目前为止,我一直收到诸如“float”/“dict”对象不可调用之类的错误。在
Tags:
“某人”已经回答了您的问题,但您(以及未来的读者)可能会发现这些补充信息很有用。在
要获得导数的精确近似值,需要使} ,尽管如果您确实使用
h
相当小。但是,如果将其设置得太小,那么实际上会由于Python浮点的精度有限而失去准确性。使用decimal
模块可以获得更高的精度。但是,该模块只支持简单的算术运算符和平方根函数。如果您需要三角函数或指数函数之类的函数,那么您可以使用第三方软件包任意精度的数学软件包,例如优秀的^{mpmath
,那么您可能会使用它的numerical derivative functions。在FWIW,您可以通过使
x
作为区间的中间,使导数近似更精确(对于给定的h
)。下面是一个简短的演示:输出
^{pr2}$这是指数函数的结果。在
输出
注意}是负数,而{}是正数。在
dfb
并不是万无一失的:如果您试图寻找一个靠近极点或间断点的x
值的导数,那么改变区间以包含极点或间断可能会产生错误的结果。当然,dfa
也会遇到同样的问题,例如如果f(x) = 1/x
和{f是你试图求x的导数/差商的函数
尝试以下代码:(python3)
相关问题 更多 >
编程相关推荐