本文内容对应我的博客中微积分笔记总目录下的第二章,导数和微分的应用。
2. 导数和微分的应用(Applications)
本章主要总结一些导数的应用和一条与导数有关的定理(中值定理)
2.1 线性和二次近似(Linear and Quadratic Approximation)
2.1.1 线性近似
什么是线性近似?
如果已知函数
f
(
x
)
f(x)
f(x) 的某一点坐标
(
x
0
,
f
(
x
0
)
)
(x_0,\ f(x_0))
(x0, f(x0)) 和这一点的导数
f
′
(
x
0
)
f'(x_0)
f′(x0),我们就可以该点的切线来估计
f
(
x
)
f(x)
f(x) 在点
x
0
x_0
x0 附近的数值,即:
f
(
x
)
≈
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
f(x)\approx f(x_0)+f'(x_0)(x-x_0)
f(x)≈f(x0)+f′(x0)(x−x0)
从图像上理解的话参考下图。
如何理解线性近似?
从导数的定义中我们知道:
f
′
(
x
0
)
=
lim
Δ
x
→
0
Δ
f
Δ
x
f'(x_0)=\lim_{\Delta x\to 0}\frac{\Delta f}{\Delta x}
f′(x0)=Δx→0limΔxΔf
这时候我们从右往左思考这个方程,会发现,
Δ
f
Δ
x
=
f
(
x
)
−
f
(
x
0
)
x
−
x
0
≈
f
′
(
x
0
)
\frac{\Delta f}{\Delta x}=\frac{f(x)-f(x_0)}{x-x_0}\approx f'(x_0)
ΔxΔf=x−x0f(x)−f(x0)≈f′(x0)
化简之后很显然:
f
(
x
)
≈
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
f(x)\approx f(x_0)+f'(x_0)(x-x_0)
f(x)≈f(x0)+f′(x0)(x−x0)
需要注意线性近似的前提一定是
Δ
x
\Delta x
Δx 足够小才可以。如果超出这个范围,参考上图可以发现,结果是非常非常不准确的。
另外,为了再简化整个求解过程,通常我们会让
x
0
=
0
x_0=0
x0=0,显然函数得在零点有导数。公式就简化成:
f
(
x
)
≈
f
(
0
)
+
f
′
(
0
)
x
f(x)\approx f(0)+f'(0)x
f(x)≈f(0)+f′(0)x
例如,正余弦函数在零点附近的的线性近似:
无穷小量与线性近似
与上文的公式相比,用无穷小量来表示线性近似更简单,由于我们要求解的点几乎紧挨着点
(
x
,
y
)
(x,\ y)
(x, y),所以此点可以表示成
(
x
0
+
d
x
,
y
0
+
d
y
)
(x_0+dx,\ y_0+dy)
(x0+dx, y0+dy),那么
f
(
x
0
+
d
x
)
≈
y
+
d
y
f(x_0+dx)\approx y+dy
f(x0+dx)≈y+dy
其中
d
y
=
dy=
dy=,最后的公式为:
f
(
x
0
+
d
x
)
≈
y
+
f
′
(
x
0
)
d
x
f(x_0+dx)\approx y+f'(x_0)dx
f(x0+dx)≈y+f′(x0)dx
常用函数在零点的线性近似总结:
- sin x ≈ x cos x ≈ 1 ( if x ≈ 0 ) \sin x\approx x\quad \cos x\approx1\quad(\text{if} \quad x\approx 0) sinx≈xcosx≈1(ifx≈0)
- ln ( 1 + x ) ≈ x o r ln x ≈ x − 1 ( if x ≈ 0 ) \ln(1+x)\approx x\quad or \quad\ln x\approx x-1\quad(\text{if} \quad x\approx 0) ln(1+x)≈xorlnx≈x−1(ifx≈0)
- ( 1 + x ) r ≈ 1 + r x ( if x ≈ 0 ) (1+x)^r\approx 1+rx\quad(\text{if} \quad x\approx 0) (1+x)r≈1+rx(ifx≈0)
- e x ≈ 1 + x ( if x ≈ 0 ) e^x\approx 1+x\quad(\text{if} \quad x\approx 0) ex≈1+x(ifx≈0)
对于比较复杂的函数,比如 P ( x ) / Q ( x ) P(x)/Q(x) P(x)/Q(x) 这种形式的函数,我们可以直接带入 P ( x ) , Q ( x ) P(x),\ Q(x) P(x), Q(x) 的线性近似再相除即可。
2.1.2 二次近似
相关公式
二次近似的公式只是在线性近似的基础上加了一个二次项,即:
f
(
x
)
≈
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
⎵
Linear Part
+
f
′
′
(
x
0
)
2
(
x
−
x
0
)
2
⎵
Quadratic Part
f(x)\approx \underbrace{f(x_0)+f'(x_0)(x-x_0)}_{\text{Linear Part}}+\underbrace{\frac{f''(x_0)}{2}(x-x_0)^2}_\text{Quadratic Part}
f(x)≈Linear Part
f(x0)+f′(x0)(x−x0)+Quadratic Part
2f′′(x0)(x−x0)2
在零点附近的二次近似公式为:
f
(
x
)
≈
f
(
0
)
+
f
′
(
0
)
x
⎵
Linear Part
+
f
′
′
(
0
)
2
x
2
⎵
Quadratic Part
f(x)\approx \underbrace{f(0)+f'(0)x}_{\text{Linear Part}}+\underbrace{\frac{f''(0)}{2}x^2}_\text{Quadratic Part}
f(x)≈Linear Part
f(0)+f′(0)x+Quadratic Part
2f′′(0)x2
如何解释多出来的二次项?
一切都源于二次函数的一般形式,
f
(
x
)
=
a
x
2
+
b
x
+
c
f(x)=ax^2+bx+c
f(x)=ax2+bx+c。
它的一阶和二阶导数为:
f
′
(
x
)
=
2
a
x
+
b
;
f
′
′
(
x
)
=
2
a
f'(x)=2ax+b;\quad f''(x)=2a
f′(x)=2ax+b;f′′(x)=2a
带入点
x
0
x_0
x0,可以算出:
f
′
′
(
x
0
)
=
2
a
→
a
=
f
′
′
(
x
0
)
2
f''(x_0)=2a\quad \to\quad a=\frac{f''(x_0)}{2}
f′′(x0)=2a→a=2f′′(x0)
(二次近似与之后的泰勒级数是一致的)
当要求复杂函数的二次近似的时候,多项式与多项式成绩之后的结果一定包含比二次项更高阶的项,但是不需要考虑这些高阶项,直接删掉即可。
2.2 画草图(Curve Sketching)
粗略地画出一个给定函数的图像有助于我们理解函数的一些性质。在画图的过程中,导数有着非同小可的作用。
步骤
画草图的一般思路是从一些特殊的点着手,之后看一阶二阶导数,最后整合信息画图。
具体步骤为:
- 画出以下的点:
- 函数的终止点,即 x → ± ∞ x\to\pm\infty x→±∞
- 不连续的点(没有定义的点,如分母为0的情况)
- 其他容易求的点(option)
- 找出临界点(Critical Point)和拐点(Inflection Point),即 f ′ ( x ) = 0 f'(x)=0 f′(x)=0 的点 ( x 0 , f ( x 0 ) ) (x_0, f(x_0)) (x0,f(x0)),并找到自变量 x x x 的区间。
- 判断 f ′ ( x ) > 0 f'(x)>0 f′(x)>0 或者 f ′ ( x ) < 0 f'(x)<0 f′(x)<0 的区间,并判断其增减性(在某一区间内, f ′ ( x ) > 0 f'(x)>0 f′(x)>0 函数递增, f ′ ( x ) < 0 f'(x)<0 f′(x)<0 函数递减,增减性的证明请参考‘中值定理’部分)
- 判断 f ′ ′ ( x ) > 0 f''(x)>0 f′′(x)>0 或者 f ′ ′ ( x ) < 0 f''(x)<0 f′′(x)<0 的区间,并判断其凹凸性(在某一区间内, f ′ ′ ( x ) > 0 f''(x)>0 f′′(x)>0 函数concave up, f ′ ′ ( x ) < 0 f''(x)<0 f′′(x)<0 函数concave down;这里,Concave的朗文字典解释是:a concave surface is curved inwards in the middle,意思是有一条水平直线,concave up就是直线两端向上弯曲,反之向下,请自行理解)
- 整合以上信息,开始做图。
最值
由以上步骤,求函数的最大值和最小值也就非常明显了。
最大值的地方:
f
′
(
x
0
)
=
0
,
f
′
′
(
x
0
)
<
0
f'(x_0)=0,\ f''(x_0)<0
f′(x0)=0, f′′(x0)<0
最小值的地方:
f
′
(
x
0
)
=
0
,
f
′
′
(
x
0
)
>
0
f'(x_0)=0,\ f''(x_0)>0
f′(x0)=0, f′′(x0)>0
(通过隐式函数微分的方法求出来的最值点,其表达式可以写成
x
,
y
x,\ y
x, y 的比例,因此也被称为相对率,Related Rates)
举例
画出函数
f
(
x
)
=
x
/
ln
x
f(x)=x/\ln x
f(x)=x/lnx的大致曲线。
中间步骤我就不写了,结果如下
2.3 牛顿法求根(Newton’s Method)
在听到牛顿法求根这一段的时候,我突然想到大二在学《MATLAB与数值计算》这门课程时详细介绍了牛顿法,这是一个比较好理解的计算机处理函数根的方法之一。
基本思路
牛顿法的基本思路是先猜一个可能的点(最好靠近根,如果离函数的根太远就会找错根甚至找不到),然后通过做该点的切线找到与 x x x轴的交点,再以此类推,直到找到准确的根或者满足人为设定的准确度即可。
定义及表达式
每一次迭代的代数表达式为:
x
n
+
1
=
x
n
−
f
(
x
n
)
f
′
(
x
n
)
x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}
xn+1=xn−f′(xn)f(xn)
简单验证(Double Check!)
如上图所示,红线代表在点
x
0
x_0
x0 处的切线,通过几何关系我们可以得到:
f
′
(
x
0
)
=
0
−
f
(
x
0
)
x
1
−
x
0
→
x
1
=
x
0
−
f
(
x
0
)
f
′
(
x
0
)
f'(x_0)=\frac{0-f(x_0)}{x_1-x_0}\quad \to \quad x_1=x_0-\frac{f(x_0)}{f'(x_0)}
f′(x0)=x1−x00−f(x0)→x1=x0−f′(x0)f(x0)
之后的迭代也同理。
每次迭代准确率的变化
为了衡量牛顿法的准确率,我们需要在每次迭代后计算误差 E n = ∣ x − x n ∣ E_n=|x-x_n| En=∣x−xn∣,公式中的 x x x 代表函数准确的零点, x n x_n xn 是估算值。经过实验发现,每次迭代之后的误差数量级是以二次方的速度下降的。如下表,
E 0 E_0 E0 | E 1 E_1 E1 | E 2 E_2 E2 | E 3 E_3 E3 | E 4 E_4 E4 |
---|---|---|---|---|
1 0 − 1 10^{-1} 10−1 | 1 0 − 2 10^{-2} 10−2 | 1 0 − 4 10^{-4} 10−4 | 1 0 − 8 10^{-8} 10−8 | 1 0 − 16 10^{-16} 10−16 |
如果initial guess比较合理,那么只需要几次迭代,牛顿法就能找到比较准确的零点了。
但要注意的是,牛顿法在
∣
f
′
(
x
)
∣
|f'(x)|
∣f′(x)∣ 的值特别小(如
ln
x
\ln x
lnx),
∣
f
′
′
(
x
)
∣
|f''(x)|
∣f′′(x)∣ 特别大的时候(如非常陡的抛物线)会失去效力;除此之外,第一个数猜错了会导致牛顿法的结果并不是我们想要的零点,甚至会不断震荡(震荡原理如下图)。
2.4 中值定理(Mean Value Theorem)
中值定理也涉及到了导数,所以我把中值定理归类到了导数的应用当中。
2.4.1 中值定理的内容
如果函数
f
(
x
)
f(x)
f(x) 在区间
x
∈
(
a
,
b
)
x\in(a,b)
x∈(a,b) 是可导的,在区间
x
∈
[
a
,
b
]
x\in[a,b]
x∈[a,b] 上是连续的,那么
f
(
b
)
−
f
(
a
)
b
−
a
=
f
′
(
c
)
(
for
a
≤
c
≤
b
)
\frac{f(b)-f(a)}{b-a}=f'(c)\quad (\text{for}\ \ a\leq c\leq b)
b−af(b)−f(a)=f′(c)(for a≤c≤b)
min
a
≤
x
≤
b
f
′
(
c
)
≤
f
(
b
)
−
f
(
a
)
b
−
a
=
f
′
(
c
)
≤
max
a
≤
x
≤
b
f
′
(
c
)
\min_{a\leq x\leq b}f'(c)\leq\frac{f(b)-f(a)}{b-a}=f'(c)\leq \max_{a\leq x\leq b}f'(c)\quad
a≤x≤bminf′(c)≤b−af(b)−f(a)=f′(c)≤a≤x≤bmaxf′(c)
(
for
a
≤
c
≤
b
)
(\text{for}\ \ a\leq c\leq b)
(for a≤c≤b)
2.4.2 中值定理的几何解释
用几何图形来解释中值定理的过程如下图所示,
(注意,与
a
,
b
a,\ b
a, b 两点割线斜率相同的点在给定区间
(
a
,
b
)
(a,b)
(a,b) 可以有很多,并不是惟一的)
2.4.3 中值定理的应用
A. 用中值定理证明函数增减行和其导数的关系
早在高中时候我们就学到,在某一区间内,如果
f
′
>
0
f'>0
f′>0,函数递增;如果
f
′
<
0
f'<0
f′<0,函数递减。中值定理为我们提供了证明方法。
中值定理的内容是:
f
(
b
)
−
f
(
a
)
b
−
a
=
f
′
(
c
)
(
for
a
≤
c
≤
b
)
\frac{f(b)-f(a)}{b-a}=f'(c)\quad (\text{for}\ \ a\leq c\leq b)
b−af(b)−f(a)=f′(c)(for a≤c≤b)
可以得到,
f
(
b
)
−
f
(
a
)
=
f
′
(
c
)
(
b
−
a
)
f(b)-f(a)=f'(c)(b-a)
f(b)−f(a)=f′(c)(b−a)
在区间
x
∈
[
a
,
b
]
x\in[a,b]
x∈[a,b] 上
b
>
a
b>a
b>a,那么如果函数的一阶导数
f
′
(
c
)
>
0
f'(c)>0
f′(c)>0,则
f
(
b
)
>
f
(
a
)
f(b)>f(a)
f(b)>f(a),函数单调递增;反之,
f
(
b
)
<
f
(
a
)
f(b)<f(a)
f(b)<f(a)
B. 证明不等式
例:
求证当
x
>
0
x>0
x>0 时,
e
x
>
1
+
x
e^x>1+x
ex>1+x
令
f
(
x
)
=
e
x
−
(
1
+
x
)
f(x)=e^x-(1+x)
f(x)=ex−(1+x),
f
(
0
)
=
0
f(0)=0
f(0)=0,
f
′
(
x
)
=
e
x
−
1
f'(x)=e^x-1
f′(x)=ex−1。当
x
>
0
x>0
x>0 时,
f
′
(
x
)
>
0
f'(x)>0
f′(x)>0,函数递增,所以
f
(
x
)
=
e
x
−
(
1
+
x
)
>
f
(
0
)
f(x)=e^x-(1+x)>f(0)
f(x)=ex−(1+x)>f(0),即
e
x
>
1
+
x
e^x>1+x
ex>1+x