返回介绍

导数

发布于 2025-02-19 23:54:15 字数 4363 浏览 0 评论 0 收藏 0

切线(Tangent line)

中学介绍导数的时候,通常会举两个例子,其一是几何意上的例子:对函数关于某一点进行求导,得到的是函数该点处切线的斜率。
选中函数图像中某一点,然后不断地将函数图放大,当我们将镜头拉至足够近后便会发现函数图看上去像一条直线,这条直线就是切线。

from sympy.abc import x
# 函数
f = x**3-2*x-6
# 在 x=6 处正切于函数的切线
line = 106*x-438

d1 = np.linspace(2,10,1000)
d2 = np.linspace(4,8,1000)
d3 = np.linspace(5,7,1000)
d4 = np.linspace(5.8,6.2,100)
domains = [d1,d2,d3,d4]

# 画图的函数
def makeplot(f,l,d):
  plt.plot(d,[f.evalf(subs={x:xval}) for xval in d],'b',\
       d,[l.evalf(subs={x:xval}) for xval in d],'r')

for i in range(len(domains)):
  # 绘制包含多个子图的图表
  plt.subplot(2, 2, i+1)
  makeplot(f,line,domains[i])

plt.show()

07-01 tangentline

另一个是物理中的例子:对路程的时间函数求导可以得到速度的时间函数,再进一步求导可以得到加速度的时间函数这个理解较好,因为导数真正关心的事是:当我们稍微改变一点函数的输入值时,函数的输出值会有怎样变化。在单元时,导数看上去是曲线的切线斜率,但是到更多元时,就很难有“斜率”这样的直观感受了,但是输出值随着输入值的极小变化而产生的相应变化这样的理解还是成立的。

导数(Derivative)

导数的定义如下:
定义 1:

若该极限不存在,则函数在处的导数不存在。

定义 2:

若该极限不存在,则函数在处的导函数不存在。

以上两个定义都是耳熟能详的定义了,就不多说了。

定义 3:
函数处的导数是满足如下条件的常数:
对于在附近输入值的微小变化有,始终成立。 也就是说导数是输出值变化中一阶项的系数。

如果难以理解的话,对上式稍加变化,两边同时除以并同时取极限可以得到:

便于上面定义 2 相一致了。

下面举一例,求处的导数:



因此,

各位读者可以自行回顾一下求导的规则和技巧,本书中便不进行展开了。
我们可以如下定义自己的求导数的函数:

f = lambda x: x**3-2*x-6
# 我们设定参数 h 的默认值,如果调用函数时没有指明参数 h 的值,便会使用默认值
def derivative(f,h=0.00001):
  return lambda x: float(f(x+h)-f(x))/h
fprime = derivative(f)
print fprime(6)
# result is : 106.000179994

Sympy 也提供求导的方法:

from sympy.abc import x
f = x**3-2*x-6
print f.diff()
# result is :3*x**2-2
print f.diff().evalf(subs={x:6})
# result is : 106.0000000000

线性近似(Linear approximation)

依据导数的定义 3,我们有:

如果将高阶项丢掉,就获得了的线性近似式子:

举个例子,用线性近似的方法估算

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文