微积分学习笔记
part 0 写在前面
之前写过一个,感觉很垃圾,就当黑历史看吧。
特别感谢 3b1b 的 视频,对我重新学习微积分提供了很大的帮助,为了构成一个体系,分成了一节一节的形式,一节期望时间 \([5,15]\) 分钟。
建议的学习方法是先速读一遍,然后自己重新推一遍。
part 1 引子
在现实生活中,你是否遇到过这样的问题:
- 一辆小车在行驶,它的瞬时速度是怎么测的?
- 人口不断增长,增长速率如何估计?
在数学问题中,你是否遇到过这样的问题:
- 一次函数斜率很好求,但二次、三次函数呢?
- 给一个曲线画出的图形,面积怎么求?
此时我们需要引入一个重要的数学工具:微积分。
需要提醒的是,微积分并不难,它并不是高等数学的代名词,所谓的什么初中、小学学会微积分没有什么好稀奇的。试试看,你上你也行。
part2 导数
怎么求速度
有一辆汽车在行驶,怎么知道它在一瞬间的速度?
首先,我们可以把汽车的运动轨迹放在坐标轴上。
如果是匀速直线运动,那么速度自然很好求,它的图像长这样:
每个时刻运动速度都一样,那么速度也很好求,就是斜率,也就是 \(2m/s\)。
想想我们这个结果是如何算出来的,比如说我们要求 \(x=1\) 时的速度,我们需要截取一个时间 \(t\),然后计算小车在 \(1\) 后面 \(t\) 时间内运动的距离然后去除以 \(t\) 就可以得到速度了。
如图就是取 \(t=1\),此时运动了 \(2m\),那么速度就是 \(\frac{s}{t}=2m/s\)。
可以发现,上面速度的测量本质上是把一段时间的平均速度当做了我们要求的瞬时速度。
实时上,在物理中测量瞬时速度的方法也是如此。
但是这样的方法在匀速直线运动时很简单,但不是匀速直线运动呢。
比如对于这个曲线,可以发现它的速率显然不相等。
如果我们用相同的方法截取 \([0,1]\) 的运动作为 \(0\) 的运动速率时,这显然就不太符合了。
那么怎么测量其速度呢?
如果我们只截取一个瞬间,比如拍个照,但这样我们无法从照片中获得速度的信息。
我们把这个图像放大。
我们截取的距离由 \(1\) 变成了 \(0.1\),可以发现,这样的直线就比原来精准得多。
因此我们考虑这样一个问题,如果把这个截距变得很小很小,这条曲线就可以看成是一条直线,那么就可以直接计算了。
引入 d
那么此时,我们就需要一个很小很小的截距了。
引入一个字母 \(d\) 来表示这个很小很小,趋近于 \(0\) 的概念,例如 \(dx\) 就表示这个 \(x\) 的很小很小的变化量,但注意,\(dx\) 不等于 \(0\)。
引入这样一个极小量就是微积分的核心思想。
那么之前我们要求的 \(0\) 时刻的速度,就可以用 \(\frac{df}{dx}(0)\) 来表示,它表示在 \(0\) 变化了一个 \(dx\) 后 \(f\) 的变化量为 \(fx\),计算此时的斜率。
对于一个函数 \(f(x)\),求其每个时刻斜率的过程就叫做 求导。
\(f(x)\) 求导后的函数有两种写法,分别是 \(\frac{df}{dx}(x)\) 和 \(f'(x)\),为了更加清楚的理解,我采用前者。
part2 咋求导
幂函数求导
- 代数方法
比如我们现在有一个函数 \(f(x)=x^2\),怎么对其求导。
我们直接进行带入。
也就是取一个很小的 \(x\) 变化量,然后求它的斜率。
直接展开。
此时 \(dx\) 很小,可以直接忽略,因此 \(\frac{df}{dx}(x)=2x\)。
需要注意的是 \(xdx\ne dx^2\),写的时候不要搞错了,事实上,如果你了解了 \(d\) 的本质就不会犯这样的错误。
现在还有这样一个问题,假设就是上面的开车问题,如果运动的曲线是 \(x^2\),那么 \(0\) 时刻运动速度是多少?
如果直接带入 \(2x\) ,可以发现速度为 \(0\),这很奇怪,因为如果 \(0\) 时刻没有速度,那么什么时候开始有速度呢?
这就矛盾了,试试上这个 \(2x\) 的定义不在那么一个瞬间,它是一个区间的概念,尽管这个区间很小,只有 \(dx\),但是它依然存在。
有了这个方法就可以处理很多简单的函数了,比如 \(f(x)=x^3,x^4...\)。但是对于高次的函数,展开就很麻烦。
因此只需要记住一个简单的定理:\(\frac{d(x^n)}{dx}=nx^{n-1}\)。
这个东西咋证明呢,考虑上面那个 \((x+dx)^n\) 展开后,\(x^n\) 抵消了,\(dx\) 指数超过 \(1\) 的也都被忽略了,因此剩下的只有 \(x^{n-1}\) 项,系数就是 \(n\),这样就解决了幂函数的求导问题。
- 几何方法
这个方法有助于我们理解其实质,依然考虑 \(f(x)=x^2\) 这个问题。
\(x^2\) 可视化一下也就是正方形的面积。
如图一个正方形的面积,那么增加一个 \(dx\) 就加了三块面积,显然右下角的小正方形的面积可以直接忽略。
这样我们也可以轻松得到 \(\frac{df}{dx}(x)=2x\)。
三角函数求导
上面的几何方法有什么用呢,可以用来解决三角函数求导问题。
比如对于 \(f(x)=\sin (x)\) 的求导,首先 \(\sin(x)\) 的几何意义就是单位圆上一个点的纵坐标。
任取一个角度 \(\alpha\) 它对应的 \(\sin (\alpha)=CE\)。
考虑此时加一个弧度 \(dx\),那么我们把 \(C\) 点放大。
此时可以发现,圆在 \(C\) 点附近趋近于一条直线。
那么圆弧的变化量 \(dx\) 也就近似于一条直线。
那么此时 \(df\) 的变化量就是纵坐标的变化量也就是 \(GF\)。
此时可以发现,可以看成是 \(CG\) 切这个圆,也就是 \(CG \perp AC\),又 \(CE\perp CF\) 所以两个三角形相似,也就是 \(\angle FGC=\alpha\)。
那么可以得到 \(\frac{dsin(x)}{dx}=\cos(\alpha)\)。
留个小练习:\(\frac{dcos(x)}{dx}\) 等于多少?
三个法则
此时我们已经解决了很多简单的函数了,但事实上的函数没有那么简单,因此我们需要用法则进行转化。
- 加法
考虑现在有两个函数 \(f,g\),有一个函数 \(h\) 满足 \(f+g\) ,那么 \(\frac{dh}{dx}\) 咋求。
其实用定义就可以知道,\(dh\) 的变化量就是 \(df+dg\),因此 \(\frac{d(f+g)}{dx}=\frac{df+dg}{dx}\),也就是两个函数加起来求导等于分别求导再加起来。
同理,对于乘上常数,比如 \(f(x)=ax^n\),求导可以看成拆成 \(a\) 个 \(x^n\) 加起来,那么分别求导再加起来就得到了 \(\frac{d(ax^n)}{dx}=anx^{n-1}\),因此乘上常数求导可以把常数扔到外面。
- 乘法
现在 \(h(x)=f(x)g(x)\),如何求导?
首先需要确定一个东西,就是 \(\frac{d(f(x)g(x))}{dx}\ne \frac{df(x)dg(x)}{dx}\),其实还是蛮显然的,可以看成 \(\frac{df(x)}{dx}dg(x)\),左边的是$ f(x)$ 的求导结果,右边还有一个 \(dg(x)\),结果显然是直接忽略等于 \(0\)。
为了更加理解其本质,我们采用几何方法。
两个相乘可以看成是长和宽求面积,比如现在有一个 \(h(x)=\sin(x)x^2\)。
如图,面积就是 \(h\),那么刚才证明的就是右下角的那一块可以忽略。
那么增加的就是右边和下面的两块,面积很好算,就是
我们就可以得到 \(\frac{d(f(x)g(x))}{dx}=\frac{df(x)}{dx}g(x)+\frac{dg(x)}{dx}f(x)\)。也就是一边求导乘另一边然后加起来。
- 复合
现在变成 \(h(x)=f(g(x))\),如何求导。
假设现在的 \(h(x)=\sin(x^2)\)。
考虑此时 \(x\) 的变化量 \(dx\) 会导致 \(x^2\) 变化 \(dx^2\)。
先把 \(x^2\) 看成一个整体,然后对 \(\sin\) 进行求导。
就是把求导后左边的 \(dx^2\) 移动到右边。
但我们要求的是 \(dx\)。
左边变换一下
就相当于再对 \(x^2\) 求导,这样就可以得到最后的形式
总结一下上面的过程。
也就是
左右分别算就可以得到答案了,关键在于把 \(g(x)\) 这个函数看成是一个自变量去做。
现在已经有了这三个法则,我们可以解决更多函数的求导了。
美妙的常数—— e
接下来来解决指数函数的问题,也就是 \(f(x)=a^x\) 这样的问题。
比如说 \(f(x)=2^x\),我们先用代数方法直接算。
此时我们遇到一个问题,左边是这个函数自己,但 \(\frac{2^{dx}-1}{dx}\) 咋做?
把 \(\frac{2^x-1}{x}\) 图像画出来,可以发现 \(0\) 点是一个趋近于 \(0.6931...\) 的常数。
但我们不知道这个常数到底是多少。
有没有这样一个常数 \(a\),满足 \(\frac{a^x-1}{x}\) 在 \(x=0\) 是趋近于 \(1\) 呢,这样我们的运算就简单很多。
有的!这就是美妙的常数 \(e\),自然对数的定义便是如此。
画出图像 \(\frac{e^x-1}{x}\)
可以发现,在 \(x\) 趋近于 \(0\) 时,\(\frac{e^x-1}{x}=1\)。
也就可以发现一个非常美妙的性质:
求导后等于自己!
定义了 \(e\),也就自然定义了 \(\ln\),因为 \(\ln=\log_e\)。
需要注意的是,\(e\) 只是一个常数,和 \(\pi\) 类似。
指数函数求导
接下来解决 \(a^x\) 的求导,实际上也就是求 \(\frac{a^x-1}{x}\) 在 \(x\) 趋近于 \(0\) 时的取值。
进行推式子前,我们先进行一下探究。
我们把 \(\frac{2^x-1}{x},\frac{4^x-1}{x}\frac{16^x-1}{x}\) 画出来。
可以发现,它似乎满足某种倍数关系。
把第一个函数乘 \(4\) ,第二个乘 \(2\) 试试。
是不是很神奇,它重合了。
也就是 \(\frac{(a^t)^x-1}{x}=t\frac{a^x-1}{x}\),在 \(x\) 趋近于 \(0\) 时成立。
可以试着自己去证明这个结论。
接下来来证明这个结论。
由于我们已知 \(e^x\) 的求导结果,因此我们用 \(e\) 来代替 \(a\),也就是 \(a=e^{\ln a}\),这个是高中数学知识。
此时用一下前面的复合公式。
也就是 \(\frac{a^x-1}{x}\) 在 \(x\) 趋近于 \(0\) 时等于 \(\ln a\),前面的结论当然就成立了。
因此我们掌握了指数函数求导的方法。
隐函数求导
现在考虑这样一个问题,在如果有这样一个函数 \(y^2+x^2=25\),这个怎么求导。
或者说这样一个问题,平面上有一个圆,给定圆上一点,一条直线过这个点切圆,求其斜率。
这种自变量和因变量同时出现在式子中的叫隐函数,其求导的核心思想是两边同时求导。
比如我此时有一个 \((3,4)\),求其斜率,一个做法是暴力移项然后算,但是很麻烦而且很寻宝。
考虑 \(\frac{dx^2}{dx}=2x\),那么 \(dx^2=2xdx\),那么对两边同时求导后就变成了
直接带入 \(x,y\) 的值就可以解出斜率 \(\frac{dy}{dx}\) 了。
接下来,对其意义进行分析。
考虑先把这个圆画出来。
此时横坐标变化了 \(dx\),纵坐标变化了 \(dy\),但是依然满足在这个圆上,也就是变化后满足 \((x+dx)^2+(y+dy)^2=25\)。
这样比较困难,我们考虑把 \(x^2\) 看成一个整体,考虑 \(dx^2\) 的变化量。
那么就可以得到 \(dx^2+dy^2=0\)。
那么怎么在 \(dx\) 和 \(dx^2\) 之间建立关系呢,自然就是求导了,\(\frac{dx^2}{dx}=2x\)。
所以得到了上面那个式子,看似两个东西都是可以忽略的,但在这里我们看成是两个实际的量来进行计算。
因此隐函数求导最直接的方法就是两边直接求导。
对数函数求导
上面隐函数求导方法是两边同时求导,这个方法还有一个很大的应用就是对数函数求导。
比如说 \(f(x)=\log_a x\)。
此时设 \(y=\log_a x\),那么 \(a^y=x\) ,考虑和上面一样,进行两边同时求导。
带入 \(a=e\),可以得到 \(\frac{d\ln(x)}{dx}=\frac{1}{x}\)。
part 3 极限
极限是啥
极限的定义和之前的 \(d\) 类似,就是一个无限趋近但是无法到达的意思。
符号是这样的,例如上面的 \(dx\)
这个就表示无限趋近于 \(0\) 了。
极限可以用来定义我们之前的求导,也就是
一般这样的极限式子中的量设为 \(h\),所以写成后者。
回忆之前的函数 \(\frac{e^x-1}{x}\) 的图像是这样:
中间存在一个 \(x=0\) 无法取到,所以
可以发现,这个 \(0\) 点无论从左边逼近还是从右边逼近都可以得到 \(1\) 这个答案。
但比如说 \(f(x)=\frac{1}{x}\),在 \(x=0\) 时没有取值,如果从左边逼近,得到的极限值是 \(\infty\),但是从右边逼近,得到的极限值就是 \(-\infty\)了。
因此 \(\lim_{x\to 0}\frac{1}{x}\) 不存在。
洛必达
这里我们将极限怎么求的问题,这里暂时只有零比零形的。
我们用极限定义了求导,现在我们反过来。
考虑一个函数 \(f(x)=\frac{\sin(\pi x)}{x^2-1}\)
这个函数在 \(x=1\) 时上面是 \(0\),下面趋近于 \(0\),极限咋求?
将一个要求极限附近的值当做这个极限的值。
把上下的函数分别画出来,绿线是 \(x^2-1\)。
考虑选一个 \(dx\),然后做 \(AB=dx\),那么要求的值就是 \(\frac{CB}{BD}\)。
这个高度显然可以通过 \(dx\) 乘上斜率求,也就是 \(df(x)=\frac{df(x)}{dx}\times dx\)。
也就是对上下两个分别求导,假设 \(f(x)=\frac{g(x)}{g'(x)}\)。
直接来,上面求导后是 \(\cos(\pi x)\pi\),下面是 \(2x\),带入 \(x=1\),也就是 \(-\frac{\pi}{2}\)。
part 4 积分
考虑这样一个问题,已知一辆车的运动曲线,它运动了多少距离?
比如说对于这样一个速度曲线,曲线下面这个部分的面积是多少?
不太好求,我们可以用这样一个方法,用矩形去逼近它的面积。
此时下底为 \(1\),高度就随便在区间的取值中选一个,面积就是两个矩形之和。
但会发现,这样似乎很不精确,简单,我们把下底变小!
这样明显更精确了,但是还可以更小。
因此有一个很简单的想法,我把下底变得很小很小,然后把函数值加起来不就好了吗?
这和求导的想法很像,事实上,这里就是把每个 \(dx\) 的函数值都加起来。
可以发现,求导就是把路程函数变成了速度函数,那么此时这个求面积的过程就是它的逆过程。
这个过程就叫做 积分。
也就是求一个函数的积分本质上是在问:什么函数求导后等于这个函数?
再说回上面那个分成很多份的方法,这个分成无限多份的东西怎么表示呢?
这表示的就是 \([0,2]\) 分成无数个 \(dx\) 份,每份的 \(f(x)\) 加起来。
这个 \(\int\) 和 \(\sum\) 很像,其实它就是把一个 \(S\) 拉长的结果,而不是 \(f\) 去掉横。
而这个东西类似于前缀和\(\int _{a}^b\) 的结果可以通过 \(\int_{0}^b-\int_{0}^a\) 得到。
举个例子,比如说 \(\int _{0}^ 2 x^2 dx\) 咋求,也就是上面图的面积。
先想,什么函数求导后是 \(x^2\),得到 \(\frac{x^3}{3}\),那么面积直接带入 \(x=2\) 就可以得到 \(s=\frac{8}{3}\)。
需要注意的是,积分会出现“负面积”的情况,也就是函数在 \(x\) 轴下方,此时计算面积是负数。
part 5 泰勒级数
高阶导数
刚才说了 \(f(x)\) 是原函数,那么 \(f'(x)\) 是求导后的结果,表示斜率。
那么 \(f''(x)\) 就是对求导后的函数再求导,也就是二阶导数,表示斜率的斜率。
当然也会有更高阶的导数了。
泰勒级数
考虑怎样的函数是方便我们进行计算的,显然是多项式。
这样形式的函数的加减乘运算都方便我们研究。
那么如果已知一个函数 \(e^x\),怎么把它转化成多项式呢?
泰勒级数就是一种用多项式去逼近任意函数的一种方式,假设我们要逼近的函数是 \(f(x)\),求出的函数是 \(g(x)\)
我们先找一个点,比如说 \(x=0\),显然,我们求出的多项式的常数要等于 \(f(x)\),这样在 \(x=0\) 这个点是相等的了。
那么在 \(0\) 这个点的斜率也得相等,不然在 \(0\) 旁边就寄了,所以 \(f'(0)=g'(0)\),由于 \(x=0\),所以求导后带 \(x\) 的项都没了。
依次类推,不断逼近,需要满足 \(f''(0)=g''(0),f'''(0)=g'''(0)...\)。
这样爆算,可以得到
用这样的方法逼近,下面两张图分别是项数为 \(3,4\) 逼近 \(e^x\) 的结果。
这个就是麦克劳林级数,但泰勒呢?
其实就是展开的点从 \(0\) 换成了 \(x_0\),式子变成
这是一个无限项的多项式。
练习:
-
求 \(e^x\) 泰勒展开结果。
-
求 \(\ln(1-x)\) 泰勒展开结果。