极限
我们考虑函数f(x)=x2,显然有f(0)=0
对于任意x>0,我们从大到小取x,比如:
f(3)=9f(2)=4f(1)=1f(0.5)=0.25f(0.1)=0.01…
可以发现当我们取得x越来越接近0的时候,f(x)也越来越接近f(0)=0
同样,对于任意x<0,从小到大取x,发现当我们取得x越来越接近0的时候,f(x)也越来越接近f(0)=0
我们定义从右往左逼近目标点所得到的f(x)的趋近值为该函数在目标点的右极限,写作:
limx→x+0f(x)
同理我们可以得到左极限的定义。左极限写作:
limx→x−0f(x)
在上述例子中,limx→0+x2=0,limx→0−x2=0,所以我们可以直接得到极限:
limx→0x2=0
但是同时我们考虑函数f(x)=1x,不难发现:
limx→0+1x=+∞limx→0−1x=−∞
此时左右极限不相等,所以limx→01x不存在
总结来说就是一个函数在x0的极限存在的充分必要条件是:
limx→x+0f(x)=limx→x−0f(x)≠DNE(Do Not Exist)
同时还有一点需要注意,极限的值定义为左右极限相等时的值,与原函数在该点的取值无关。比如以下这个函数:
f(x)={x2(x≠0)1(x=0)
此时limx→0f(x)仍然等于0
极限运算满足如下法则:
limx→x0f(x)±g(x)=limx→x0f(x)±limx→x0g(x)limx→x0f(x)×g(x)=limx→x0f(x)×limx→x0g(x)limx→x0f(x)g(x)=limx→x0f(x)limx→x0g(x)
极限中的无穷
我们考虑f(x)=x,显然有limx→0f(x)=0
但是如果我们将f(x)写成x2x,那么原式变为:
limx→0x2x
我们运用法则:
limx→0x2x=limx→0x2limx→0x=00
此时我们便会发现问题:难道00=0吗?这显然是错误的。
为了解答这个问题,我们可以回归极限的原始定义。
我们取不同的x逼近0:
x=1,x2=1x=0.1,x2=0.01x=0.01,x2=0.0001x=0.001,x2=0.000001…
不难发现x2比起x趋近于0的速度要快了很多,所以即使x无限趋近于0,x2始终比它更加接近于0。我们所定义的极限永远是无限接近但不相等的,所以所谓的00本就是错误的。
这就引出了一个重要的问题:无穷小量之间不一定相等,比如此处变量的次数便对“无穷小”这个量产生了影响。
由此我们引出了几个概念:等价无穷小,高阶无穷小。顾名思义,等价无穷小即趋近于极值的速度相同的变量,高阶无穷小可以粗略理解为无穷小的幂,比如上述例子中的x2
同样的我们也就理解了等价无穷大,高阶无穷大
导数
我们考虑函数f(x)=x2,画出它的图像:

我们计算一下x>0时每加上一个1的时候f(x)的变化:
f(1)−f(0)=1f(2)−f(1)=3f(3)−f(2)=5…
不难发现f(x)之间的差值越来越大了
这是为什么?
我们观察图像也不难发现,这个函数的增长速度越来越快了
同时上面的数据也可以让我们发现增长速度和x的取值有关
怎么描述一个确定的x所对应的增长速度?
我们可以取一条直线与该函数上的这个点相交,比如我们让一条直线经过(1,1),(2,4):

此时函数f(x)=x2在x=1时的变化率可以近似为该直线的斜率
显然该直线的斜率为3
但是3这个值仍然不够准确,不够令人满意,所以我们可以将上图中的B点向A靠近,比如我们取B为(1.5,2.25),便会得到更加接近的斜率:2.25−11.5−1=2.5
怎么才能更加接近?
使B的横坐标xB更加接近1
怎么才能完全准确?
使B的横坐标xB无限接近1
此时的斜率为多少?
limx→1f(x)−f(1)x−1=limx→1x2−1x−1=limx→1(x+1)(x−1)(x−1)=limx→1(x+1)=2(1)
不难画出此时的图像:

这个值已经足够令人满意。
数学上便将这个值定义为该函数在这个点的导数,记作f′(x),即:
f′(x)=limΔx→0f(x+Δx)−f(x)Δx
显然当x确定时f(x)也唯一确定,所以代入上式即可得到f′(x)唯一确定,所以f′(x)也是一个关于x的函数,我们称之为导函数
不难发现原函数连续是导函数存在的必要条件,但是不充分,因为可能存在某一点不可导,比如f(x)=|x|在x=0时不可导
我们再次思考得到导数的过程,导数的值是我们通过一次函数的斜率得到的,而一次函数的斜率可以写为ΔyΔx。当我们取得Δx越来越小的时候就得到了导数,所以导数也可以写成:
dydx
其中d为微分符号,dx表示一个非常小的Δx
我们在物理上学过位移、速度和加速度
速度是什么?
位移对时间求导,即:
v=dxdt
那加速度又是什么?
速度对时间求导,即:
a=dvdt
那加速度和时间的关系是什么?
加速度是位移对时间的导数的导数
我们称之为二阶导,记作f′′(x)
同样的我们可以理解更高阶的导数,我们也可以将n阶导数记作f(n)(x)
求导
导数的定义基于极限,所以导数的运算法则可以由极限得到:
(f(x)±g(x))′=f′(x)±g′(x)(f(x)×g(x))′=f′(x)g(x)+f(x)g′(x)(f(x)g(x))′=f′(x)g(x)−f(x)g′(x)g2(x)
这里给出两函数乘积的导数公式的简单证明:
(f(x)g(x))′=limΔx→0f(x+Δx)g(x+Δx)−f(x)g(x)Δx=limΔx→0f(x+Δx)g(x+Δx)−f(x)g(x+Δx)+f(x)g(x+Δx)−f(x)g(x)Δx=limΔx→0g(x+Δx)(f(x+Δx)−f(x))+f(x)(g(x+Δx)−g(x))Δx=limΔx→0f(x+Δx)−f(x)Δxg(x+Δx)+limΔx→0g(x+Δx)−g(x)Δxf(x)=f′(x)g(x)+f(x)g′(x)(2)
对于函数u=f(x),y=g(u),我们可以得到
y=g(f(x))
y被称为x的复合函数
对于复合函数求导,我们可以采用链式法则:
dydx=dydu⋅dudx
也就是说y关于x的导数等于y关于u的导数乘上u关于x的导数
导数的乘法法则和链式法则一同即可推出导数的除法法则
给出几个常用函数的导数:
C′=0(C为常数)(xn)′=nxn−1(ax)′=axlna(logax)′=1xlna(sinx)′=cosx(cosx)′=−sinx
以上结果均可以通过带入定义证明
积分
我们还是先看一个问题:

如何求上图中曲线f(x)=x2,直线x=1和y轴围成的图形的面积?
似乎很难用几何图形计算出抛物线的相关性质
我们还是考虑近似:

我们近似的用黄色矩形的面积代替,得到结果为1
结果显然不够准确,误差很大,怎么办?
我们用两个矩形的面积和代替:

其中左边矩形的两边长12,14,右边矩形的两边长12,1,得到的总面积就是58,比起一开始更加接近了
还想精确怎么办?

我们一直这么做,直到每个矩形水平的边长为一个极小量dx,此时该边两端点的横坐标之差非常小,小到可以忽略,不妨将这两点的横坐标都设为x,那么这个矩形垂直于x轴的边之长显然为f(x),此时这个矩形的面积就可以写成f(x)dx。然后我们再对每个矩形的面积求和即可得到总面积,记作:
∫baf(x)dx
本题中a=0,b=1,f(x)=x2
那么这个积分的结果是多少呢?
牛顿-莱布尼茨公式
如果F′(x)=f(x),那么:
∫baf(x)dx=F(b)−F(a)
要证明这个公式,要先知道拉格朗日中值定理:
如果函数f(x)在[a,b]上连续,在(a,b)上可导,那么在(a,b)内至少存在一点x使得f′(x)=f(b)−f(a)b−a
该定理正确性可感性理解
我们将拉格朗日中值定理换个形式:
f(b)−f(a)=f′(x)(b−a)
再回到牛顿-莱布尼茨公式(令x0=a,xn=b):
F(b)−F(a)=F(b)−F(xn−1)+F(xn−1)−F(xn−2)+⋯+F(x1)−F(a)=n∑i=1F(xi)−F(xi−1)=n∑i=1F′(di)(xi−xi−1)(3)
其中di为拉格朗日中值定理中所存在的那个点
显然上式中n→∞时,F′(di)=f(xi),xi−xi−1=dxi,所以原式等于:
∫baf(x)dx
泰勒展开
考虑如下这个函数:f(x)=cosx
当x=114514时f(x)等于多少?
我们发现我们似乎无法通过cos直接得到f(x)的任意值,这和我们所接触到的很多由多项式写成的函数不一样:我们只要把x带入多项式就可以很快求解。
那怎么办?
我们可以人为构造一个多项式函数使其和原函数相等
我们设f(x)=cosx=g(x)=a0+a1x+a2x2+a3x3+⋯+anxn
首先当x=0时,f(x)=1,所以g(0)=1,代入即可知道a0=1
此时我们除了a0什么系数都不知道,所以只能构造出g(x)=1,对比图象:

发现误差很大
我们考虑函数的变化趋势,如果f(x)和g(x)的变化趋势一致,再加上f(0)=g(0)=1,那么我们就可以构造出较为精确的函数g(x)
什么叫f(x)和g(x)的变化趋势一致?
f′(x)=g′(x)
代入:
−sinx=a1+2a2x+3a3x2+…
当x=0时:
0=a1
我们便得到了第二个系数
虽然此时我们构造出的函数仍然是g(x)=1,但是我们得到了更多的系数
为什么g(x)和f(x)仍然相差很大?
因为变化率的变化率不一样
具体地说,f(x)在x=0时的变化率是0,但是并不是所有地方的变化率都不变均为0,而我们构造出的g(x)的变化率始终是0
怎么使变化率的变化率还一样?
f′′(x)=g′′(x)
计算:
−cosx=2a2+6a3x+12a4x2+…
代入x=0:
−1=2a2a2=−12
此时我们构造出的g(x)=1−12x2
对比图像:

继续往下求更高阶的导数?
sinx=6a3+24a4x+60a5x2+…a3=0cosx=24a4+120a5x+…a4=124…
我们再看一下到a4计算完成为止g(x)=1−12x2+124x4的图像:

不难发现我们只要一直这样求下去就能得到结果
但是同时我们发现一个问题:f(x)=cosx可以求无数次导,也就是说g(x)有无限项,此时我们计算到哪一步取决于我们的精度要求
形式化的写出g(x):
cosx=g(x)=1−x22!+x44!−…
总结一下上面的过程,我们可以得到一个公式:
f(x)=f(0)+f′(0)x+f′′(0)2!x2+f′′′(0)3!x3+⋯+f(n)(0)n!xn
能不能不从(0,1)入手?比如我们取(π2,0)作为起始点可不可以?
答案是当然可以
所以我们如果从(x0,f(x0))入手的话:
f(x)=n∑i=0f(i)(x0)i!(x−x0)i
这就是泰勒公式,上述过程被称为泰勒展开
所以我们同样可以得到sinx的泰勒展开形式:
sinx=x−x33!+x55!−…
我们考虑f(x)=ex的泰勒展开式。由于(ex)′=exlne=ex,所以f(x)在x=0处的展开为:
ex=1+x+x22!+x33!+…
所以:
eix=1+ix+i2x22!+i3x33!+…=(1−x22!+x44!−…)+i(x−x33!+x55!−…)=cosx+isinx(4)
当x=π时:
eiπ=−1eiπ+1=0
由此我们便证明了欧拉公式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步