引言
微积分是科学的语言,而微分是其灵魂。
从一维导数到流形上的切映射,微分的本质始终是一个线性映射。
本文将从这一核心观点出发,系统梳理微积分中一系列重要概念:导数、微分、雅可比矩阵、方向导数、梯度、链式法则、Hessian、切映射、拉回等,揭示它们背后的统一结构。
更重要的是,我们将用
Python
代码可视化这些概念,让你直观地看到微分如何“线性化”非线性函数。
本文所有代码均使用
Python
编写,你可以复制到自己的环境中运行,观察图形变化。
1.
一维导数的重新解读——从“数”到“线性映射”
1.1
(f:\mathbb{R}\to\mathbb{R}),导数定义为
[
f’(x)=\lim_{h\to
0}\frac{f(x+h)-f(x)}{h}.
]
这个定义直观地告诉我们:导数就是瞬时变化率。
但它容易让人误以为导数只是一个数。
1.2
微分的最佳定义:线性近似
真正统一的定义是:存在一个线性映射(df_x:\mathbb{R}\to\mathbb{R}),使得
[
f(x+h)=f(x)+df_x(h)+o(|h|)\quad
(h\to
0).
]
在一维中,线性映射必为乘以某个常数:(df_x(h)=f’(x)\cdot
(f’(x))
处的切线,直观展示线性近似。
importnumpyasnpimportmatplotlib.pyplotaspltdeff(x):returnx**2defdf(x):return2*xx0=2h=0.5#
hx=np.linspace(1,3,100)y=f(x)#
切线:y
x0)tangent=f(x0)+df(x0)*(x-x0)plt.figure(figsize=(8,5))plt.plot(x,y,label=r'$f(x)=x^2$')plt.plot(x,tangent,'--',label=f'Tangent
x={x0}')plt.scatter([x0],[f(x0)],color='red')plt.annotate(f'({x0},{f(x0)})',(x0,f(x0)),xytext=(x0+0.2,f(x0)+1))plt.xlabel('x')plt.ylabel('f(x)')plt.title('Linear
approximation
$x=2$')plt.legend()plt.grid(True)plt.show()
输出解释:你会看到一条抛物线,以及它在点
(2,4)
(F:\mathbb{R}n\to\mathbb{R}m)
对于向量值函数
(F(x)=(F_1(x),\dots,F_m(x))),可微性要求存在线性映射
(dF_x:\mathbb{R}n\to\mathbb{R}m)
使得
[
F(x+h)=F(x)+dF_x(h)+o(|h|).
]
2.2(J_F(x)),其元素为
y^3))
雅可比矩阵为
[
J_F(x,y)=\begin{pmatrix}2x
&
3y^2\end{pmatrix}.
]
2.4(F_1(x,y)=x^2+y)
处的切平面。
frommpl_toolkits.mplot3dimportAxes33DdefF1(x,y):returnx**2+yx=np.linspace(0,2,20)y=np.linspace(-1,1,20)X,Y=np.meshgrid(x,y)Z=F1(X,Y)#
(1,0)
处x0,y0=1.0,0.0z0=F1(x0,y0)#
偏导数df_dx=2*x0
df_dy=1.0#
切平面:z
df_dy*(y-y0)X_plane,Y_plane=np.meshgrid(x,y)Z_plane=z0+df_dx*(X_plane


