Warning!篇幅真的很长,注意你的用脑程度!
话接上回,我们聊完了极限,那么这次我们就来讲讲极限的应用之一——导数
本次我们将围绕以下话题展开:
· 导数的定义
· 导数的线性性和运算法则
· 幂函数求导(基础版本)
1. 什么是导数
什么是导数?你现在不必要考虑这个问题,而是想想一辆正在笔直的公路上行驶的汽车它的速度的变化。
1.1. 匀速直线运动的汽车(理想模型)
假设现在有一辆汽车在笔直的公路上作匀速直线运动,已知它行驶的路程以及行驶的时间,求他每时每刻的 瞬时速度。
你一定会认为这道题很简单:设行驶的路程为 s,时间为 t,速度为 v,则:
v=ts
没错,这很简单。但可惜的是上述计算依赖于匀速直线运动的特性,生活中并没有这样子的理想模型。
1.2. 更一般的情况 - 速度求解
为什么匀速直线运动像是在开玩笑?因为你无法保证小车在相等时间内通过的路程永远相等。
举个例子,已知小车在 1s 内行驶了 3m,这个小车的平均速度必然是 3m/s,但是你无法保证它每时每刻的速度都是 3m/s,有可能它前 0.5s 行驶了 2m,此时平均速度是 4m/s,但是后 0.5s 只行驶了 1m,此时平均速度是 2m/s。
那么我告诉你它在某一个 0.01s 的时间内行驶了 0.4m 呢?也不行,它不一定是匀速直线运动,有可能它前 0.005s 行驶了 0.32m,但是后 0.005s 只行驶了 0.08m。你只要这个时间足够长,就能够继续分成更细小的时间长。
换言之,你无法保证小车上的驾驶员每个 时刻 所看到的仪表盘上的数都相等,在更小的时长内汽车都可能发生速度上的变化。你所要求的就是每时每刻仪表盘上所显示的数。
1.3. 如何求解
想要求解实际上也不是很难,只需要用路程 s 除以时间 t,得到的 瞬时速度 即可。
因为我们要求瞬时速度,所以我们必须保证选择的 t 是一个很小的量,它十分靠近 0,但是依然不等于 0。用数学语言来说就是 t→ϵ 无穷小,记作 Δt。此时你会发现 s 的变化也很小,我们称之为 位移,表示物体移动的距离长,它也趋向于 0,记作 Δs。我们所需要的 v 其实就是 ΔtΔs。
你可能会问:为什么这里可以直接用位移比上时间得到速度?这很明显不是匀速直线运动。
但是,别忘了这里取得是极限,当位移和时间越来越趋向于 0 的时候,我们得到的是 s−t 图像上的一条割线,甚至于切线,而这就是取极限后的运动,根据匀速直线运动 s−t 图像是一条倾斜的直线知此处可以近似地看成是匀速直线运动,故可以这样计算。
1.4. 导数的真正定义
现在通过这辆小车,我们已经感受过了导数的含义了。来看看导数的正式定义:
令 y 表示小车的位移,x 表示小车的运动时间,k 表示瞬时速度,则:
k=ΔxΔy
这就是导数的莱布尼茨表示法。
注意:这里的 Δy 以及 Δx 表示微元,可以参与运算(检测到体育老师魏尔斯特拉斯已经被作者气死),也可以写成 dy 和 dx。
当然,根据小车的说法,我们取极限的时候将它的运动近似成了匀速直线运动,而匀速直线运动的图像是一条过函数图像上某一个点的 切线(割线的话继续取极限也可以变成切线),则可以将导数看做是函数图像上的某一点的切线的斜率。
你可能会更习惯于另一种写法:对于函数 f(x) 而言,其导数为:
f′(x)=h→0limhf(x+h)−f(x)
注意到我们这里写作了 f′(x),可以知道导数也是一个关于 x 的函数!
一个函数在一点上的 可导性 是指这个函数是否存在唯一的过当前点的切线。根据连续性的定义,我们知道:可导函数必然连续,但连续函数不一定可导。
最简单的例子:
f(x)=∣x∣={x,−x,x≥0x≤0
可以计算出:
f′(x)={1,−1,x≥0x≤0
此时你会发现,f′(0) 既是 1 又是 −1,很明显违反了函数的定义,因此 f(x) 在 x=0 处不可导
1.5. 匀加速直线运动的汽车(理想模型)
还是那辆汽车,假设它现在作匀加速直线运动,求它瞬时加速度 a 的结果。
一样的,在匀加速运动中,带入公式可以得到:
a=tv
这也很简单,但是这也只不过是理想模型罢了。
1.6. 导函数的导函数 - 加速度求解
跟上面一样,我们所知道的只不过是匀加速运动中的情况而已,那么我们也可以通过极限思想求出任意时刻的加速度 a(跟上面过程相同,在此不多赘述):
a=ΔtΔv
很明显,这里的 v 在只知道 s 以及 t 的情况下也是需要求导才知道的,因此我们可以写成这个形式:
a=ΔtΔ(ΔtΔs)=Δt2Δ2s
写成函数形式:
f′′(x)=h→0limhf′(x+h)−f′(x)
注意到我们这里给 f 右上角带了两撇,代表它是 二阶导,对于 a 的表达式的分子中的 Δ 符号的幂数一样,含义也一样。
1.7. 高阶导数
我们已经知道了什么是导数——你可以理解成是微小的变化率。那么,关于函数 f(x) 求导一次就得到了导函数 f′(x),其定义在上面已经展示过。
那如果再对导函数 f′(x) 求导呢?就得到了二阶导 f′′(x)。
类似的,继续对二阶导求导,就得到了三阶导 f′′′(x) ——等一会儿?你确定这里要写三撇吗?岂不是一百阶导你要写 100 个撇?实际上完全没有必要,你可以写成 f(3)(x) 表示函数 f(x) 的三阶导数。同样的道理,我们知道 f(n)(x) 就表示函数 f(x) 的 n 阶导数,这样你就不用写那么多撇了。
换种写法:如果用导数的莱布尼茨表示法,关于 x 的表达式 y 对 x 进行 n 阶求导,得到的结果记作 ΔxnΔny。
注意:你不可以写作 ΔxnΔyn,这个式子表示导函数的 n 次方而非 n 阶导。
2. 导数的线性性
2.1. 函数的加减法
考虑函数 h(x)=f(x)+g(x),是否满足 h′(x)=f′(x)+g′(x) 呢?
简单证明一下:
h′(x)=Δx→0limΔxh(x+Δx)−h(x)=Δx→0limΔxf(x+Δx)+g(x+Δx)−f(x)−g(x)=Δx→0limΔxf(x+Δx)−f(x)+Δxg(x+Δx)−g(x)=Δx→0limΔxf(x+Δx)−f(x)+Δx→0limΔxg(x+Δx)−g(x)=f′(x)+g′(x)
于是我们证明了原命题为真。
我们也可以用同样的方式得到 h(x)=f(x)−g(x),则 h′(x)=f′(x)−g′(x),就留给屏幕前的你来证明吧。
2.2. 函数的常数倍
考虑函数 h(x)=c⋅f(x),且 c 为常数,是否满足 h′(x)=c⋅f′(x) 呢?直觉告诉你这是成立的。
依旧进行简单的证明:
h′(x)=Δx→0limΔxh(x+Δx)−h(x)=Δx→0limΔxc⋅f(x+Δx)−c⋅f(x)=Δx→0limc⋅Δxf(x+Δx)−f(x)=c⋅Δx→0limΔxf(x+Δx)−f(x)=c⋅f′(x)
得证,联合上面函数的加减法,可知导数具有线性性。
3. 函数的乘法、除法、复合
注意这里开始有一点烧脑!如果对证明不感兴趣的朋友可以直接跳过。
3.1. 乘积法则
考虑函数 h(x)=f(x)⋅g(x),求 h′(x)。你可能会天真的以为 h′(x)=f′(x)⋅g′(x),但是这是错误的,正确的方式应当是用乘积法则:
h′(x)=f(x)⋅g′(x)+g(x)⋅f′(x)
即:左函乘右导 加 右函乘左导。
用莱布尼茨表示法:若 y=f(x)=u⋅v 且 u 和 v 都是关于 x 的表达式,则:
ΔxΔy=uΔxΔv+vΔxΔu
我们可以略作证明:
h′(x)=Δx→0limΔxh(x+Δx)−h(x)=Δx→0limΔxf(x+Δx)⋅g(x+Δx)−f(x)⋅g(x)=Δx→0limΔxf(x+Δx)⋅g(x+Δx)−f(x+Δx)⋅g(x)+f(x+Δx)⋅g(x)−f(x)⋅g(x)=Δx→0limΔxf(x+Δx)⋅g(x+Δx)−f(x+Δx)⋅g(x)+Δx→0limΔxf(x+Δx)⋅g(x)−f(x)⋅g(x)=Δx→0limf(x+Δx)⋅Δxg(x+Δx)−g(x)+Δx→0limg(x)⋅Δxf(x+Δx)−f(x)=Δx→0limf(x)⋅Δxg(x+Δx)−g(x)+Δx→0limg(x)⋅Δxf(x+Δx)−f(x)=f(x)⋅g′(x)+g(x)⋅f′(x)
在整个过程中,我们利用了拆添项的方法,进行配凑,最终化简了该式子,完成了证明。
当然,你也可以将这个表达式扩展到三元甚至更多元。此处以三元为例:
若 y=f(x)=uvw 且 u、v、w 都是关于 x 的表达式,则:
ΔxΔy=uvΔxΔw+vwΔxΔu+wuΔxΔv
3.2. 商法则
考虑函数 h(x)=g(x)f(x),求 h′(x)。和上面一样,正确的求解方式应当使用商法则:
h′(x)=g2(x)g(x)f′(x)−f(x)g′(x)
用莱布尼茨表示法:若 y=f(x)=u⋅v 且 u 和 v 都是关于 x 的表达式,则:
ΔxΔy=v2vΔxΔu−uΔxΔv
我们也可以证明:
h′(x)=Δx→0limΔxh(x+Δx)−h(x)=Δx→0limΔxg(x+Δx)f(x+Δx)−g(x)f(x)=Δx→0limΔxg(x+Δx)f(x+Δx)−g(x)f(x+Δx)+g(x)f(x+Δx)−g(x)f(x)=Δx→0limΔxg(x+Δx)f(x+Δx)−g(x)f(x+Δx)+Δx→0limΔxg(x)f(x+Δx)−g(x)f(x)=Δx→0limf(x+Δx)⋅Δxg(x+Δx)1−g(x)1+Δx→0limg(x)1⋅Δxf(x+Δx)−f(x)=Δx→0limf(x)⋅g2(x)Δxg(x)−g(x+Δx)+Δx→0limg(x)1⋅Δxf(x+Δx)−f(x)=g2(x)−f(x)g′(x)+g(x)f′(x)=g2(x)g(x)f′(x)−f(x)g′(x)
在整个过程中,我们依旧用拆添项进行配凑,最终化简该式,完成了证明,和乘积法则的证明有异曲同工之妙;当然,你也可以先证明下面的链式求导法则,再把 g(x) 看做是 G(x)1 去套用乘积法则,来证明商法则(可以试试看!)。
3.3. 链式求导法则
假设函数 h(x)=f(g(x)),求解 h′(x),即函数复合的情况下求导,它将会得到一个漂亮的式子:
h′(x)=f′(g(x))g′(x)
为什么说它漂亮?换成莱布尼茨表示法,假设 y=f(u) 且 u=g(x),则我们有:
ΔxΔy=ΔuΔyΔxΔu
一个实用且有效的记忆办法是记住莱布尼茨表示法下的链式求导法则。
因为 Δy、Δu、Δx 三者都是可以参与计算的微元,所以可以理解成:
ba=cabc
再代入:
⎩⎨⎧a=Δyb=Δxc=Δu
就得到了莱布尼茨表示法下的链式求导法则。(检测到体育老师魏尔斯特拉斯已经再次被作者气死)
但是这样子是有缺陷的——万一 Δu=0 该怎么办?所以证明的时候我们还是采用函数表示法:
h′(x)=Δx→0limΔxh(x+Δx)−h(x)=Δx→0limΔxf(g(x+Δx))−f(g(x))=Δx→0limg(x+Δx)−g(x)f(g(x+Δx))−f(g(x))⋅Δxg(x+Δx)−g(x)=Δx→0limg(x+Δx)−g(x)f(g(x+Δx))−f(g(x))⋅g′(x)
此时,我们令 t=g(x)
因为 Δx→0,又因为函数 g(x) 可导
所以在微小范围内函数 g(x) 连续
则 Δx→0limg(x+Δx)=g(x),
因此,令 Δx→0limg(x+Δx)−g(x)=ϵ,
则 ϵ→0。
将等式进行恒等变换,则ϵ→0limg(x)+ϵ=g(x+Δx)
带入原式:
h′(x)=g′(x)Δx→0limΔxf(g(x+Δx))−f(g(x))=g′(x)ϵ→0limϵf(t+ϵ)−f(t)=f′(t)g′(x)=f′(g(x))g′(x)
依然是熟悉的拆添项和配凑,依然证明求导法则,你会发现链式求导法则好记但难证,思维难度大大提升。
对于多元链式求导法则(以后简称链求导)我们可以写出:
f′(x)=f1′(f2(f3(⋯(fn(x))⋯)))⋅f2′(f3(⋯(fn(x))⋯))⋅f3′(⋯(fn(x))⋯)⋯fn′(x)
或者:
ΔxΔy=Δa1ΔyΔa2Δa1⋯ΔxΔan
嗯,还是第二个式子长得好看一些,也更好记。
往期话题:
详解函数#1 幂函数、指数函数和对数函数
详解函数#2 三角函数
详解函数#3 极限
参考文献:《普林斯顿微积分》
有帮助,赞一个