数学公式大全
摘要: 本文系统介绍了数学解析的核心理论与C++数值实现方法。从极限、连续性等基础概念出发,详细阐述了微积分、泰勒级数、微分方程等关键数学工具,并探讨了其在计算机中的高精度数值实现。内容包括浮点误差处理、数值积分算法(矩形法、梯形法、辛普森法)、微分方程求解(欧拉法、RK4法)以及复变函数理论。通过结合数学公式与C++代码实现,展示了如何将抽象数学理论转化为可计算的数值方法,为物理仿真、人工智能等
目录
- 数学解析:从抽象公式到 C++ 数值实现的全景图
-
- 一、数学解析导论:什么是数学解析?
- 二、C++ 数学基础库与高精度计算
- 三、极限理论与 C++ 数值极限计算
- 四、单变量微积分:导数、微分、高阶导数
- 五、多变量微积分:偏导、梯度、雅可比、海森矩阵
- 六、数值积分:矩形法、梯形法、辛普森积分、自适应积分
- 七、泰勒级数与函数逼近
- 八、微分方程求解:欧拉法、龙格‑库塔法(RK4)
- 九、复变函数与复分析
- 十、傅里叶分析(FFT)
- 十一、拉普拉斯变换
- 十二、矩阵分析与线性解析
- 十三、泛函分析与变分法入门
- 十四、最优化与凸分析(梯度下降、牛顿法、拟牛顿法)
- 十五、C++ 数学解析完整工程库(可直接使用)
- 十六、数学解析在 AI / 物理 / 图形学中的应用
数学解析:从抽象公式到 C++ 数值实现的全景图
数学解析(Mathematical Analysis)是高等数学的主干,它为微积分、函数论、微分方程和最优化提供了严格的理论根基。当这一理论与 C++ 数值计算结合时,便形成了一套强大的工具链,能从定理证明走向物理仿真、人工智能与计算机图形学。本文将依据目录顺序,逐一梳理关键数学公式,并简要联系其数值实现与应用背景。
一、数学解析导论:什么是数学解析?
数学解析的核心在于用严格的极限语言定义连续性、可微性与可积性。其主要研究对象是函数、序列、级数与测度。
- 极限的 ε − δ \varepsilon-\delta ε−δ 定义:
lim x → x 0 f ( x ) = L ⟺ ∀ ε > 0 , ∃ δ > 0 使得 0 < ∣ x − x 0 ∣ < δ ⇒ ∣ f ( x ) − L ∣ < ε . \lim_{x\to x_0} f(x) = L \iff \forall \varepsilon > 0, \exists \delta > 0 \text{ 使得 } 0<\lvert x-x_0 \rvert <\delta \Rightarrow \lvert f(x)-L \rvert <\varepsilon. x→x0limf(x)=L⟺∀ε>0,∃δ>0 使得 0<∣x−x0∣<δ⇒∣f(x)−L∣<ε. - 函数连续性: f f f 在 x 0 x_0 x0 连续当且仅当 lim x → x 0 f ( x ) = f ( x 0 ) \lim_{x\to x_0} f(x)=f(x_0) limx→x0f(x)=f(x0)。
- 导数定义:
f ′ ( x ) = lim h → 0 f ( x + h ) − f ( x ) h . f'(x)=\lim_{h\to0}\frac{f(x+h)-f(x)}{h}. f′(x)=h→0limhf(x+h)−f(x). - 黎曼积分:
∫ a b f ( x ) d x = lim ∥ P ∥ → 0 ∑ i = 1 n f ( ξ i ) Δ x i . \int_a^b f(x)\,dx = \lim_{\lVert P \rVert \to0}\sum_{i=1}^n f(\xi_i)\Delta x_i. ∫abf(x)dx=∥P∥→0limi=1∑nf(ξi)Δxi. - 无穷级数收敛: ∑ a n \sum a_n ∑an 收敛当部分和序列 S N = ∑ n = 1 N a n S_N=\sum_{n=1}^N a_n SN=∑n=1Nan 的极限存在。
正是这些基本定义,构成了后续所有分析理论的大厦基础。
二、C++ 数学基础库与高精度计算
在 C++ 中实现数学解析,首先面临浮点误差问题。IEEE 754 双精度浮点数的机器精度为 ε ≈ 2.22 × 10 − 16 \varepsilon \approx 2.22\times10^{-16} ε≈2.22×10−16,基本运算满足:
fl ( x ⊙ y ) = ( x ⊙ y ) ( 1 + δ ) , ∣ δ ∣ ≤ ε , \operatorname{fl}(x \odot y) = (x \odot y)(1+\delta),\quad \lvert \delta \rvert \le \varepsilon, fl(x⊙y)=(x⊙y)(1+δ),∣δ∣≤ε,
其中 ⊙ \odot ⊙ 代表加减乘除。在长累计或迭代中,误差传播可能淹没真实解。为此引入高精度库(如 GMP、MPFR、Boost.Multiprecision)以支持任意精度的有理数、浮点数运算。例如,利用 MPFR 计算 π \pi π 到 1000 位,其核心是基于算术几何平均 (AGM) 的高阶收敛算法:
a n + 1 = a n + b n 2 , b n + 1 = a n b n , π ≈ 4 AGM ( 1 , 1 2 ) 2 1 − ∑ k = 1 ∞ 2 k ( a k 2 − b k 2 ) . a_{n+1} = \frac{a_n+b_n}{2},\quad b_{n+1} = \sqrt{a_n b_n},\quad \pi \approx \frac{4 \operatorname{AGM}\left(1, \frac{1}{\sqrt{2}}\right)^2}{1-\sum_{k=1}^\infty 2^k\left(a_k^2-b_k^2\right)}. an+1=2an+bn,bn+1=anbn,π≈1−∑k=1∞2k(ak2−bk2)4AGM(1,21)2.
此类算法在数值极限和特殊函数计算中尤为重要。
三、极限理论与 C++ 数值极限计算
理论极限中,两个最重要的基石极限为:
lim x → 0 sin x x = 1 , lim n → ∞ ( 1 + 1 n ) n = e . \lim_{x\to0}\frac{\sin x}{x}=1,\qquad \lim_{n\to\infty}\left(1+\frac1n\right)^n=e. x→0limxsinx=1,n→∞lim(1+n1)n=e.
在 C++ 中,我们无法计算真正的无穷极限,但可通过 外推法 (Richardson 外推) 或 序列加速 (Aitken Δ 2 \Delta^2 Δ2 法) 逼近:
- Aitken 加速:
x ^ n = x n − ( x n + 1 − x n ) 2 x n + 2 − 2 x n + 1 + x n . \hat{x}_n = x_n - \frac{(x_{n+1}-x_n)^2}{x_{n+2}-2x_{n+1}+x_n}. x^n=xn−xn+2−2xn+1+xn(xn+1−xn)2.
若原序列线性收敛至 L L L,则 x ^ n \hat{x}_n x^n 可达到超线性收敛。这常用于估计像 lim h → 0 f ( x + h ) − f ( x ) h \lim_{h\to0}\frac{f(x+h)-f(x)}{h} limh→0hf(x+h)−f(x) 等差分公式的极限精度。
四、单变量微积分:导数、微分、高阶导数
单变量微积分的基本运算规则包括:
- 链式法则: ( f ∘ g ) ′ ( x ) = f ′ ( g ( x ) ) g ′ ( x ) (f\circ g)'(x)=f'(g(x))g'(x) (f∘g)′(x)=f′(g(x))g′(x)。
- 莱布尼茨公式(高阶导数乘法):
( f g ) ( n ) = ∑ k = 0 n ( n k ) f ( k ) g ( n − k ) . (fg)^{(n)} = \sum_{k=0}^n \binom{n}{k} f^{(k)} g^{(n-k)}. (fg)(n)=k=0∑n(kn)f(k)g(n−k). - 常用初等函数导数:
d d x x n = n x n − 1 , d d x e x = e x , d d x ln x = 1 x , \frac{d}{dx}x^n = nx^{n-1},\quad \frac{d}{dx}e^x = e^x,\quad \frac{d}{dx}\ln x = \frac1x, dxdxn=nxn−1,dxdex=ex,dxdlnx=x1,
d d x sin x = cos x , d d x cos x = − sin x . \frac{d}{dx}\sin x = \cos x,\quad \frac{d}{dx}\cos x = -\sin x. dxdsinx=cosx,dxdcosx=−sinx. - 中值定理:若 f f f 在 [ a , b ] [a,b] [a,b] 连续可微,则存在 ξ ∈ ( a , b ) \xi\in(a,b) ξ∈(a,b) 使得 f ′ ( ξ ) = f ( b ) − f ( a ) b − a f'(\xi) = \frac{f(b)-f(a)}{b-a} f′(ξ)=b−af(b)−f(a)。
在 C++ 自动微分(如 Ceres 的 Jet 类型)中,导数通过双数 (dual number) 计算:
f ( x + ε ) = f ( x ) + f ′ ( x ) ε , ε 2 = 0 , f(x+\varepsilon) = f(x) + f'(x)\,\varepsilon,\quad \varepsilon^2=0, f(x+ε)=f(x)+f′(x)ε,ε2=0,
从而无需符号推导即可同时得到函数值与导数。
五、多变量微积分:偏导、梯度、雅可比、海森矩阵
设 f : R n → R f:\mathbb{R}^n\to\mathbb{R} f:Rn→R,则:
- 梯度:
∇ f = ( ∂ f ∂ x 1 , … , ∂ f ∂ x n ) . \nabla f = \left( \frac{\partial f}{\partial x_1}, \ldots, \frac{\partial f}{\partial x_n} \right). ∇f=(∂x1∂f,…,∂xn∂f). - 方向导数:沿单位向量 v \mathbf{v} v 的方向导数 ∇ v f = ∇ f ⋅ v \nabla_{\mathbf{v}}f = \nabla f \cdot \mathbf{v} ∇vf=∇f⋅v。
- 雅可比矩阵:对于向量值函数 F : R n → R m \mathbf{F}:\mathbb{R}^n\to\mathbb{R}^m F:Rn→Rm,
J i j = ∂ F i ∂ x j . J_{ij} = \frac{\partial F_i}{\partial x_j}. Jij=∂xj∂Fi. - 海森矩阵:对称矩阵,
H i j = ∂ 2 f ∂ x i ∂ x j . H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}. Hij=∂xi∂xj∂2f. - 二阶泰勒展开:
f ( x + Δ x ) ≈ f ( x ) + ∇ f ( x ) ⊤ Δ x + 1 2 Δ x ⊤ H ( x ) Δ x . f(\mathbf{x}+\Delta\mathbf{x}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^\top \Delta\mathbf{x} + \frac12 \Delta\mathbf{x}^\top H(\mathbf{x}) \Delta\mathbf{x}. f(x+Δx)≈f(x)+∇f(x)⊤Δx+21Δx⊤H(x)Δx.
这些矩阵在牛顿法、优化、神经网络反向传播中反复出现。
六、数值积分:矩形法、梯形法、辛普森积分、自适应积分
将积分区间 [ a , b ] [a,b] [a,b] 等分为 n n n 段,步长 h = b − a n h=\frac{b-a}{n} h=nb−a,节点 x k = a + k h x_k=a+kh xk=a+kh。
- 矩形法(中点):
∫ a b f ( x ) d x ≈ h ∑ k = 0 n − 1 f ( x k + h 2 ) . \int_a^b f(x)\,dx \approx h\sum_{k=0}^{n-1} f\!\left(x_k+\frac{h}{2}\right). ∫abf(x)dx≈hk=0∑n−1f(xk+2h). - 梯形法:
∫ a b f ( x ) d x ≈ h 2 [ f ( x 0 ) + 2 ∑ k = 1 n − 1 f ( x k ) + f ( x n ) ] . \int_a^b f(x)\,dx \approx \frac{h}{2}\left[ f(x_0)+2\sum_{k=1}^{n-1} f(x_k)+f(x_n) \right]. ∫abf(x)dx≈2h[f(x0)+2k=1∑n−1f(xk)+f(xn)]. - 辛普森法 ( n n n 为偶数):
∫ a b f ( x ) d x ≈ h 3 [ f ( x 0 ) + 4 f ( x 1 ) + 2 f ( x 2 ) + ⋯ + 4 f ( x n − 1 ) + f ( x n ) ] . \int_a^b f(x)\,dx \approx \frac{h}{3}\big[ f(x_0)+4f(x_1)+2f(x_2)+\cdots+4f(x_{n-1})+f(x_n) \big]. ∫abf(x)dx≈3h[f(x0)+4f(x1)+2f(x2)+⋯+4f(xn−1)+f(xn)].
其误差分别为 O ( h 2 ) O(h^2) O(h2), O ( h 2 ) O(h^2) O(h2), O ( h 4 ) O(h^4) O(h4)。自适应积分 通过递归地细分误差较大的区间,用 Kronrod 扩展或辛普森规则局部估计误差,直至全局误差小于容限。
七、泰勒级数与函数逼近
函数在 a a a 处的泰勒级数为:
f ( x ) = ∑ n = 0 ∞ f ( n ) ( a ) n ! ( x − a ) n . f(x) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!}(x-a)^n. f(x)=n=0∑∞n!f(n)(a)(x−a)n.
麦克劳林级数 ( a = 0 a=0 a=0) 常见展开:
e x = ∑ n = 0 ∞ x n n ! , sin x = ∑ n = 0 ∞ ( − 1 ) n x 2 n + 1 ( 2 n + 1 ) ! , cos x = ∑ n = 0 ∞ ( − 1 ) n x 2 n ( 2 n ) ! , e^x = \sum_{n=0}^\infty \frac{x^n}{n!},\quad \sin x = \sum_{n=0}^\infty (-1)^n \frac{x^{2n+1}}{(2n+1)!},\quad \cos x = \sum_{n=0}^\infty (-1)^n \frac{x^{2n}}{(2n)!}, ex=n=0∑∞n!xn,sinx=n=0∑∞(−1)n(2n+1)!x2n+1,cosx=n=0∑∞(−1)n(2n)!x2n,
ln ( 1 + x ) = ∑ n = 1 ∞ ( − 1 ) n + 1 x n n , ∣ x ∣ < 1. \ln(1+x) = \sum_{n=1}^\infty (-1)^{n+1}\frac{x^n}{n},\quad \lvert x \rvert <1. ln(1+x)=n=1∑∞(−1)n+1nxn,∣x∣<1.
截断 N N N 项时的拉格朗日余项为:
R N ( x ) = f ( N + 1 ) ( ξ ) ( N + 1 ) ! ( x − a ) N + 1 , ξ 在 a 与 x 之间 . R_N(x) = \frac{f^{(N+1)}(\xi)}{(N+1)!} (x-a)^{N+1},\quad \xi \text{ 在 } a \text{ 与 } x \text{ 之间}. RN(x)=(N+1)!f(N+1)(ξ)(x−a)N+1,ξ 在 a 与 x 之间.
在函数逼近中,常采用切比雪夫多项式 T n ( x ) = cos ( n arccos x ) T_n(x)=\cos(n\arccos x) Tn(x)=cos(narccosx) 来最小化最大误差(极小化极大多项式),或者使用最小二乘正交多项式(Legendre、Hermite)做拟合。
八、微分方程求解:欧拉法、龙格‑库塔法(RK4)
对于常微分方程初值问题:
d y d x = f ( x , y ) , y ( x 0 ) = y 0 , \frac{dy}{dx} = f(x,y),\quad y(x_0)=y_0, dxdy=f(x,y),y(x0)=y0,
步长 h h h,显式数值方法:
- 欧拉法:
y n + 1 = y n + h f ( x n , y n ) . y_{n+1} = y_n + h f(x_n,y_n). yn+1=yn+hf(xn,yn).
局部截断误差 O ( h 2 ) O(h^2) O(h2),全局 O ( h ) O(h) O(h)。 - 经典显式 RK4:
k 1 = h f ( x n , y n ) , k 2 = h f ( x n + h 2 , y n + k 1 2 ) , k 3 = h f ( x n + h 2 , y n + k 2 2 ) , k 4 = h f ( x n + h , y n + k 3 ) , y n + 1 = y n + 1 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) . \begin{aligned} k_1 &= h f(x_n, y_n), \\ k_2 &= h f\!\left(x_n+\frac{h}{2}, y_n+\frac{k_1}{2}\right), \\ k_3 &= h f\!\left(x_n+\frac{h}{2}, y_n+\frac{k_2}{2}\right), \\ k_4 &= h f(x_n+h, y_n+k_3), \\ y_{n+1} &= y_n + \frac{1}{6}(k_1+2k_2+2k_3+k_4). \end{aligned} k1k2k3k4yn+1=hf(xn,yn),=hf(xn+2h,yn+2k1),=hf(xn+2h,yn+2k2),=hf(xn+h,yn+k3),=yn+61(k1+2k2+2k3+k4).
局部误差 O ( h 5 ) O(h^5) O(h5),全局 O ( h 4 ) O(h^4) O(h4),是性价比极高的单步法。
九、复变函数与复分析
复函数 f ( z ) = u ( x , y ) + i v ( x , y ) f(z)=u(x,y)+iv(x,y) f(z)=u(x,y)+iv(x,y) 解析的充要条件是满足 柯西‑黎曼方程:
∂ u ∂ x = ∂ v ∂ y , ∂ u ∂ y = − ∂ v ∂ x . \frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \quad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x}. ∂x∂u=∂y∂v,∂y∂u=−∂x∂v.
核心定理:
- 柯西积分公式:若 f f f 在闭围道 C C C 内解析,则
f ( z 0 ) = 1 2 π i ∮ C f ( z ) z − z 0 d z . f(z_0) = \frac{1}{2\pi i}\oint_C \frac{f(z)}{z-z_0}\,dz. f(z0)=2πi1∮Cz−z0f(z)dz. - 留数定理:
∮ C f ( z ) d z = 2 π i ∑ k Res ( f , z k ) , \oint_C f(z)\,dz = 2\pi i \sum_{k} \operatorname{Res}(f, z_k), ∮Cf(z)dz=2πik∑Res(f,zk),
其中留数计算对 m m m 阶极点: Res ( f , z 0 ) = 1 ( m − 1 ) ! lim z → z 0 d m − 1 d z m − 1 [ ( z − z 0 ) m f ( z ) ] \operatorname{Res}(f,z_0)=\frac{1}{(m-1)!}\lim_{z\to z_0}\frac{d^{m-1}}{dz^{m-1}}\left[(z-z_0)^m f(z)\right] Res(f,z0)=(m−1)!1limz→z0dzm−1dm−1[(z−z0)mf(z)]。 - 欧拉公式:
e i θ = cos θ + i sin θ . e^{i\theta} = \cos\theta + i\sin\theta. eiθ=cosθ+isinθ.
十、傅里叶分析(FFT)
- 傅里叶级数(周期 T T T,角频率 ω 0 = 2 π T \omega_0=\frac{2\pi}{T} ω0=T2π):
f ( t ) = a 0 + ∑ n = 1 ∞ [ a n cos ( n ω 0 t ) + b n sin ( n ω 0 t ) ] , f(t) = a_0 + \sum_{n=1}^\infty \left[ a_n \cos(n\omega_0 t) + b_n \sin(n\omega_0 t) \right], f(t)=a0+n=1∑∞[ancos(nω0t)+bnsin(nω0t)],
a n = 2 T ∫ − T / 2 T / 2 f ( t ) cos ( n ω 0 t ) d t , b n = 2 T ∫ − T / 2 T / 2 f ( t ) sin ( n ω 0 t ) d t . a_n = \frac{2}{T}\int_{-T/2}^{T/2} f(t)\cos(n\omega_0 t)\,dt,\quad b_n = \frac{2}{T}\int_{-T/2}^{T/2} f(t)\sin(n\omega_0 t)\,dt. an=T2∫−T/2T/2f(t)cos(nω0t)dt,bn=T2∫−T/2T/2f(t)sin(nω0t)dt. - 连续傅里叶变换:
f ^ ( ω ) = ∫ − ∞ ∞ f ( t ) e − i ω t d t , f ( t ) = 1 2 π ∫ − ∞ ∞ f ^ ( ω ) e i ω t d ω . \hat{f}(\omega) = \int_{-\infty}^\infty f(t)e^{-i\omega t}\,dt,\qquad f(t) = \frac{1}{2\pi}\int_{-\infty}^\infty \hat{f}(\omega)e^{i\omega t}\,d\omega. f^(ω)=∫−∞∞f(t)e−iωtdt,f(t)=2π1∫−∞∞f^(ω)eiωtdω. - 离散傅里叶变换 (DFT):
X k = ∑ n = 0 N − 1 x n e − 2 π i k n / N , k = 0 , … , N − 1. X_k = \sum_{n=0}^{N-1} x_n e^{-2\pi i k n / N},\quad k=0,\dots,N-1. Xk=n=0∑N−1xne−2πikn/N,k=0,…,N−1. - 快速傅里叶变换 (FFT) 通过蝶形运算将计算量从 O ( N 2 ) O(N^2) O(N2) 降至 O ( N log N ) O(N\log N) O(NlogN)。Cooley‑Tukey 基‑2 算法递归地将 DFT 拆分为奇偶下标序列的 DFT。
十一、拉普拉斯变换
L { f ( t ) } = F ( s ) = ∫ 0 ∞ f ( t ) e − s t d t , s ∈ C . \mathcal{L}\{f(t)\} = F(s) = \int_0^\infty f(t) e^{-st} \, dt, \quad s\in\mathbb{C}. L{f(t)}=F(s)=∫0∞f(t)e−stdt,s∈C.
常用变换对:
L { 1 } = 1 s , L { t n } = n ! s n + 1 , L { e a t } = 1 s − a , \mathcal{L}\{1\} = \frac1s,\quad \mathcal{L}\{t^n\} = \frac{n!}{s^{n+1}},\quad \mathcal{L}\{e^{at}\} = \frac1{s-a}, L{1}=s1,L{tn}=sn+1n!,L{eat}=s−a1,
L { sin ( ω t ) } = ω s 2 + ω 2 , L { cos ( ω t ) } = s s 2 + ω 2 . \mathcal{L}\{\sin(\omega t)\} = \frac{\omega}{s^2+\omega^2},\quad \mathcal{L}\{\cos(\omega t)\} = \frac{s}{s^2+\omega^2}. L{sin(ωt)}=s2+ω2ω,L{cos(ωt)}=s2+ω2s.
重要性质:
- 微分性质: L { f ′ ( t ) } = s F ( s ) − f ( 0 ) \mathcal{L}\{f'(t)\}=sF(s)-f(0) L{f′(t)}=sF(s)−f(0),用于将微分方程转化为代数方程。
- 卷积定理: L { ( f ∗ g ) ( t ) } = F ( s ) G ( s ) \mathcal{L}\{(f*g)(t)\}=F(s) G(s) L{(f∗g)(t)}=F(s)G(s),其中 ( f ∗ g ) ( t ) = ∫ 0 t f ( τ ) g ( t − τ ) d τ (f*g)(t)=\int_0^t f(\tau)g(t-\tau)\,d\tau (f∗g)(t)=∫0tf(τ)g(t−τ)dτ。
十二、矩阵分析与线性解析
线性代数是数学解析在多维空间中的载体。
- 线性方程组: A x = b A\mathbf{x}=\mathbf{b} Ax=b。解析解可通过 LU 分解、QR 分解或 SVD 求伪逆。
- 奇异值分解 (SVD): A = U Σ V ⊤ A = U\Sigma V^\top A=UΣV⊤,其中 Σ = diag ( σ 1 , … , σ r ) \Sigma=\operatorname{diag}(\sigma_1,\dots,\sigma_r) Σ=diag(σ1,…,σr)。SVD 用途广泛,包括计算 矩阵条件数:
cond 2 ( A ) = σ max σ min . \operatorname{cond}_2(A) = \frac{\sigma_{\max}}{\sigma_{\min}}. cond2(A)=σminσmax. - 最小二乘:当 A x = b A\mathbf{x}=\mathbf{b} Ax=b 超定时,正规方程解为 x = ( A ⊤ A ) − 1 A ⊤ b \mathbf{x} = (A^\top A)^{-1}A^\top \mathbf{b} x=(A⊤A)−1A⊤b(数值更推荐使用 QR 分解直接求解)。
- 特征值问题: A v = λ v A\mathbf{v}=\lambda \mathbf{v} Av=λv。对称矩阵的谱分解 A = Q Λ Q ⊤ A = Q\Lambda Q^\top A=QΛQ⊤ 在振动分析、主成分分析中至关重要。
十三、泛函分析与变分法入门
泛函分析将函数视作无穷维空间中的点。变分法研究泛函极值。
- 泛函: J [ y ] = ∫ a b F ( x , y , y ′ ) d x J[y] = \int_a^b F(x, y, y') \, dx J[y]=∫abF(x,y,y′)dx。
- 欧拉‑拉格朗日方程:取极值的必要条件为
∂ F ∂ y − d d x ( ∂ F ∂ y ′ ) = 0. \frac{\partial F}{\partial y} - \frac{d}{dx}\left( \frac{\partial F}{\partial y'} \right) = 0. ∂y∂F−dxd(∂y′∂F)=0.
例如,最速降线问题中 F = ( 1 + ( y ′ ) 2 ) / ( y ) F = \sqrt{(1+(y')^2)/(y)} F=(1+(y′)2)/(y),得到的解为摆线。 - 希尔伯特空间:完备内积空间 ⟨ f , g ⟩ \langle f, g \rangle ⟨f,g⟩,里斯表示定理建立了泛函与内积的一一对应。这是有限元方法变分形式的基础。
十四、最优化与凸分析(梯度下降、牛顿法、拟牛顿法)
- 凸函数定义: ∀ λ ∈ [ 0 , 1 ] \forall \lambda\in[0,1] ∀λ∈[0,1] 有 f ( λ x + ( 1 − λ ) y ) ≤ λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x+(1-\lambda)y) \le \lambda f(x)+(1-\lambda)f(y) f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y)。
- 梯度下降: x k + 1 = x k − α k ∇ f ( x k ) \mathbf{x}_{k+1} = \mathbf{x}_k - \alpha_k \nabla f(\mathbf{x}_k) xk+1=xk−αk∇f(xk),学习率 α k \alpha_k αk 可由线搜索(如 Armijo 条件)决定。
- 牛顿法: x k + 1 = x k − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) \mathbf{x}_{k+1} = \mathbf{x}_k - [\nabla^2 f(\mathbf{x}_k)]^{-1} \nabla f(\mathbf{x}_k) xk+1=xk−[∇2f(xk)]−1∇f(xk)。收敛速率二次,但需计算海森逆。
- 拟牛顿法 (BFGS):通过秩‑2 更新近似海森逆 B k ≈ ∇ 2 f ( x k ) − 1 B_k \approx \nabla^2 f(x_k)^{-1} Bk≈∇2f(xk)−1,避免直接求逆。
B k + 1 = ( I − ρ k s k y k ⊤ ) B k ( I − ρ k y k s k ⊤ ) + ρ k s k s k ⊤ , B_{k+1} = (I - \rho_k s_k y_k^\top) B_k (I - \rho_k y_k s_k^\top) + \rho_k s_k s_k^\top, Bk+1=(I−ρkskyk⊤)Bk(I−ρkyksk⊤)+ρksksk⊤,
其中 s k = x k + 1 − x k , y k = ∇ f k + 1 − ∇ f k , ρ k = 1 / ( y k ⊤ s k ) s_k = \mathbf{x}_{k+1}-\mathbf{x}_k,\ y_k = \nabla f_{k+1} - \nabla f_k,\ \rho_k = 1/(y_k^\top s_k) sk=xk+1−xk, yk=∇fk+1−∇fk, ρk=1/(yk⊤sk)。 - 约束优化的 KKT 条件:对 min f ( x ) \min f(x) minf(x) 满足 g ( x ) ≤ 0 , h ( x ) = 0 g(x)\le 0, h(x)=0 g(x)≤0,h(x)=0,存在拉格朗日乘子 λ , μ \lambda, \mu λ,μ 使得
∇ f ( x ) + ∑ λ i ∇ g i ( x ) + ∑ μ j ∇ h j ( x ) = 0 , λ i g i ( x ) = 0 , λ i ≥ 0. \nabla f(x) + \sum \lambda_i \nabla g_i(x) + \sum \mu_j \nabla h_j(x) = 0,\ \lambda_i g_i(x)=0,\ \lambda_i\ge 0. ∇f(x)+∑λi∇gi(x)+∑μj∇hj(x)=0, λigi(x)=0, λi≥0.
十五、C++ 数学解析完整工程库(可直接使用)
整合上述理论的 C++ 工程库生态系统包括:
- Eigen:头文件式线性代数,API 形如
A.colPivHouseholderQr().solve(b),内置 SVD、稀疏矩阵。 - Ceres Solver:非线性最小二乘优化,自动微分结合残差模型 min 1 2 ∑ ρ i ( ∥ f i ( x ) ∥ 2 ) \min\frac12\sum\rho_i\left(\lVert f_i(x) \rVert^2\right) min21∑ρi(∥fi(x)∥2)。
- FFTW:FFT 实现,通过计划 (plan) 计算 DFT,接口核心为
fftw_plan_dft_1d。 - GSL (GNU Scientific Library):提供 C 接口的特殊函数、数值积分(QAG 自适应)、ODE 求解(如
gsl_odeiv2_step_rk4)。 - Boost.Math 与 Boost.Odeint:C++ 模板化的特殊函数和常微分方程求解,支持可控步长 RK 方法。
- GMP/MPFR:高精度算术和正确的舍入超越函数,例如
mpfr_sin。
十六、数学解析在 AI / 物理 / 图形学中的应用
-
人工智能:深度神经网络的反向传播本质是雅可比矩阵的链式乘积。损失 L L L 对权重 W W W 的梯度为:
∂ L ∂ W = ∂ L ∂ y ⋅ ∂ y ∂ W , \frac{\partial L}{\partial W} = \frac{\partial L}{\partial \mathbf{y}} \cdot \frac{\partial \mathbf{y}}{\partial W}, ∂W∂L=∂y∂L⋅∂W∂y,
多层堆叠即构成连乘的雅可比矩阵,自动微分正是解析求导的代码化。 -
物理:薛定谔方程是偏微分方程分析的经典对象:
i ℏ ∂ ψ ∂ t = [ − ℏ 2 2 m ∇ 2 + V ( r , t ) ] ψ . i\hbar\frac{\partial \psi}{\partial t} = \left[ -\frac{\hbar^2}{2m}\nabla^2 + V(\mathbf{r},t) \right]\psi. iℏ∂t∂ψ=[−2mℏ2∇2+V(r,t)]ψ.
其定态分离变量导出特征值问题,数值上常用有限差分或有限元结合时间步进法 (Crank‑Nicolson) 求解。 -
计算机图形学:全局光照由 渲染方程 描述(Kajiya 路径积分形式):
L ( x , ω o ) = L e ( x , ω o ) + ∫ Ω f r ( x , ω i , ω o ) L i ( x , ω i ) ( n ⋅ ω i ) d ω i . L(\mathbf{x},\omega_o) = L_e(\mathbf{x},\omega_o) + \int_{\Omega} f_r(\mathbf{x},\omega_i,\omega_o) L_i(\mathbf{x},\omega_i) (\mathbf{n}\cdot\omega_i) \, d\omega_i. L(x,ωo)=Le(x,ωo)+∫Ωfr(x,ωi,ωo)Li(x,ωi)(n⋅ωi)dωi.
这是一个第二类 Fredholm 积分方程,数学解析中迭代求解(诺依曼级数)与蒙特卡洛路径追踪的“轨道展开”完全对应,而函数逼近(球谐光照、小波)则运用了分析中的展开理论。
结语:从极限的 ε − δ \varepsilon-\delta ε−δ 定义,到 C++ 中的高精度数值实现;从单变量微积分,到泛函极值与神经网络训练——数学解析提供了一套连贯而强大的语言。每一个公式都在理论证明与代码工程之间架起了桥梁,使我们不仅能够理解世界的连续性,还能在计算机上将这种理解转化为可计算、可仿真的现实。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)