MINIBLOG

Blog Note Tags Links About
Home Search
May 28, 2026
miniyuan

函数逼近


题 6.1

取倒数得:

1y=a+bx\frac{1}{y}=a+\frac{b}{x}y1​=a+xb​

令 Y=1y,  X=1xY=\dfrac{1}{y},\;X=\dfrac{1}{x}Y=y1​,X=x1​,则化为线性模型 Y=a+bXY=a+bXY=a+bX。

列出正规方程组:

(5∑i=15Xi∑i=15Xi∑i=15Xi2)(ab)=(∑i=15Yi∑i=15XiYi)\begin{pmatrix} 5 & \sum_{i=1}^5 X_i \\ \sum_{i=1}^5 X_i & \sum_{i=1}^5 X_i^2 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} \sum_{i=1}^5 Y_i \\ \sum_{i=1}^5 X_i Y_i \end{pmatrix}(5∑i=15​Xi​​∑i=15​Xi​∑i=15​Xi2​​)(ab​)=(∑i=15​Yi​∑i=15​Xi​Yi​​)

也即:

(52.28332.28331.4636)(ab)=(12.28416.0326)\begin{pmatrix} 5 & 2.2833 \\ 2.2833 & 1.4636 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 12.2841 \\ 6.0326 \end{pmatrix}(52.2833​2.28331.4636​)(ab​)=(12.28416.0326​)

解得:

a≈1.9980,b≈1.0048a \approx 1.9980,\quad b \approx 1.0048a≈1.9980,b≈1.0048

故拟合函数为:

y=x1.9980x+1.0048y=\frac{x}{1.9980x+1.0048}y=1.9980x+1.0048x​

题 6.2

令:

A=(1−1−112−2),b=(5−410)A=\begin{pmatrix}1&-1\\-1&1\\2&-2\end{pmatrix},\qquad \boldsymbol{b}=\begin{pmatrix}5\\-4\\10\end{pmatrix}A=​1−12​−11−2​​,b=​5−410​​

则正规方程为:

ATAx=ATbA^{\mathsf T}A\boldsymbol{x} = A^{\mathsf T}\boldsymbol{b}ATAx=ATb

其中:

ATA=(6−6−66),ATb=(29−29)A^{\mathsf T}A=\begin{pmatrix}6&-6\\-6&6\end{pmatrix},\qquad A^{\mathsf T}\boldsymbol{b}=\begin{pmatrix}29\\-29\end{pmatrix}ATA=(6−6​−66​),ATb=(29−29​)

注意矩阵 ATAA^{\mathsf T}AATA 奇异。从而最小二乘解不唯一,只能解得如下形式通解:

x1=x2+296,x2∈Rx_1=x_2+\frac{29}{6},\qquad x_2\in\mathbb{R}x1​=x2​+629​,x2​∈R

考虑取其中的最小范数解,也即:

min⁡(x12+x22)=min⁡[2x22+293x2+(296)2]\min (x_1^2+x_2^2) = \min [2x_2^2+\frac{29}{3}x_2+(\frac{29}{6})^2]min(x12​+x22​)=min[2x22​+329​x2​+(629​)2]

解得最小范数解:

x1=2912≈2.4167,x2=−2912≈−2.4167x_1=\frac{29}{12}\approx 2.4167,\qquad x_2=-\frac{29}{12}\approx -2.4167x1​=1229​≈2.4167,x2​=−1229​≈−2.4167

题 6.3

取基函数 φ1(x)=1x,  φ2(x)=x\varphi_1(x)=\dfrac{1}{x},\;\varphi_2(x)=xφ1​(x)=x1​,φ2​(x)=x,定义离散内积 (f,g)=∑i=15f(xi)g(xi)(f,g)=\sum_{i=1}^{5}f(x_i)g(x_i)(f,g)=∑i=15​f(xi​)g(xi​)。

则有:

(φ1,φ1)=∑1xi2=1.3559(φ1,φ2)=∑1=5(φ2,φ2)=∑xi2=121(y,φ1)=∑yixi=16.0654(y,φ2)=∑xiyi=304.5100\begin{aligned} (\varphi_1,\varphi_1)&=\sum\frac{1}{x_i^2}=1.3559 \\ (\varphi_1,\varphi_2)&=\sum 1=5 \\ (\varphi_2,\varphi_2)&=\sum x_i^2=121 \\ (y,\varphi_1)&=\sum\frac{y_i}{x_i}=16.0654 \\ (y,\varphi_2)&=\sum x_iy_i=304.5100 \end{aligned}(φ1​,φ1​)(φ1​,φ2​)(φ2​,φ2​)(y,φ1​)(y,φ2​)​=∑xi2​1​=1.3559=∑1=5=∑xi2​=121=∑xi​yi​​=16.0654=∑xi​yi​=304.5100​

列出正规方程组:

(1.355955121)(ab)=(16.0654304.5100)\begin{pmatrix} 1.3559 & 5 \\ 5 & 121 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 16.0654 \\ 304.5100 \end{pmatrix}(1.35595​5121​)(ab​)=(16.0654304.5100​)

解得:

a≈3.0300,b≈2.3914a\approx 3.0300,\qquad b\approx 2.3914a≈3.0300,b≈2.3914

从而最佳平方逼近为:

y=3.0300x+2.3914xy=\frac{3.0300}{x}+2.3914xy=x3.0300​+2.3914x

题 6.4

前三阶 Legendre 正交多项式为:

P0(x)=1,P1(x)=x,P2(x)=3x2−12P_0(x)=1,\qquad P_1(x)=x,\qquad P_2(x)=\frac{3x^2-1}{2}P0​(x)=1,P1​(x)=x,P2​(x)=23x2−1​

且内积 (Pk,Pk)=22k+1(P_k,P_k)=\dfrac{2}{2k+1}(Pk​,Pk​)=2k+12​。

设最佳平方逼近多项式为 S(x)=c0P0(x)+c1P1(x)+c2P2(x)S(x)=c_0P_0(x)+c_1P_1(x)+c_2P_2(x)S(x)=c0​P0​(x)+c1​P1​(x)+c2​P2​(x),f(x)=cos⁡(πx)f(x)=\cos(\pi x)f(x)=cos(πx),则展开系数:

ck=(f,Pk)(Pk,Pk)=2k+12(f,Pk)=2k+12∫−11cos⁡(πx)Pk(x) dxc_k=\frac{(f,P_k)}{(P_k,P_k)} =\frac{2k+1}{2}(f,P_k) =\frac{2k+1}{2}\int_{-1}^{1}\cos(\pi x)P_k(x)\,\mathrm{d}xck​=(Pk​,Pk​)(f,Pk​)​=22k+1​(f,Pk​)=22k+1​∫−11​cos(πx)Pk​(x)dx

从而:

c0=12∫−11cos⁡(πx) dx=sin⁡(πx)2π∣−11=0c_0 =\frac{1}{2}\int_{-1}^{1}\cos(\pi x)\,\mathrm{d}x =\frac{\sin(\pi x)}{2\pi}\Big|_{-1}^{1} =0c0​=21​∫−11​cos(πx)dx=2πsin(πx)​​−11​=0 c1=32∫−11cos⁡(πx)x dx=0c_1 =\frac{3}{2}\int_{-1}^{1}\cos(\pi x)x\,\mathrm{d}x =0c1​=23​∫−11​cos(πx)xdx=0 c2=52∫−11cos⁡(πx)3x2−12 dx=15xcos⁡(πx)2π2∣−11=−15π2c_2 =\frac{5}{2}\int_{-1}^{1}\cos(\pi x)\frac{3x^2-1}{2}\,\mathrm{d}x =\frac{15x\cos(\pi x)}{2\pi^2}\Big|_{-1}^{1} =-\frac{15}{\pi^2}c2​=25​∫−11​cos(πx)23x2−1​dx=2π215xcos(πx)​​−11​=−π215​

从而最佳平方逼近多项式为:

S(x)=c0P0(x)+c1P1(x)+c2P2(x)=−15π2⋅3x2−12=−452π2x2+152π2≈−2.2797 x2+0.7599\begin{aligned} S(x)&=c_0P_0(x)+c_1P_1(x)+c_2P_2(x) \\ &=-\frac{15}{\pi^2}\cdot\frac{3x^2-1}{2} \\ &=-\frac{45}{2\pi^2}x^2+\frac{15}{2\pi^2} \\ &\approx -2.2797\,x^2+0.7599 \end{aligned}S(x)​=c0​P0​(x)+c1​P1​(x)+c2​P2​(x)=−π215​⋅23x2−1​=−2π245​x2+2π215​≈−2.2797x2+0.7599​

题 6.5

cos⁡nθ=(eiθ+e−iθ2)n=12n∑k=0nCnkei(n−2k)θ\cos^n \theta = (\frac{\mathrm{e}^{i\theta} + \mathrm{e}^{-i\theta}}{2})^n = \frac{1}{2^n} \sum_{k=0}^n \mathrm{C}_n^k \mathrm{e}^{i(n-2k)\theta}cosnθ=(2eiθ+e−iθ​)n=2n1​k=0∑n​Cnk​ei(n−2k)θ

且有:

cos⁡nθ=cos⁡n(−θ)=12n∑k=0nCnke−i(n−2k)θ\cos^n \theta = \cos^n(-\theta) = \frac{1}{2^n} \sum_{k=0}^n \mathrm{C}_n^k \mathrm{e}^{-i(n-2k)\theta}cosnθ=cosn(−θ)=2n1​k=0∑n​Cnk​e−i(n−2k)θ

相加即得:

cos⁡nθ=12n∑k=0nCnkei(n−2k)θ+e−i(n−2k)θ2=12n∑k=0nCnkcos⁡((n−2k)θ)\cos^n \theta = \frac{1}{2^n} \sum_{k=0}^n \mathrm{C}_n^k \frac{\mathrm{e}^{i(n-2k)\theta} + \mathrm{e}^{-i(n-2k)\theta}}{2} = \frac{1}{2^n} \sum_{k=0}^n \mathrm{C}_n^k \cos((n-2k)\theta)cosnθ=2n1​k=0∑n​Cnk​2ei(n−2k)θ+e−i(n−2k)θ​=2n1​k=0∑n​Cnk​cos((n−2k)θ)

令 x=cos⁡θx=\cos\thetax=cosθ,由于 Tn(x)=Tn(cos⁡θ)=cos⁡(nθ)T_n(x)=T_n(\cos\theta)=\cos(n\theta)Tn​(x)=Tn​(cosθ)=cos(nθ) 代入即得:

xn=12n∑k=0nCnkcos⁡(∣n−2k∣θ)=12n∑k=0nCnkT∣n−2k∣(x)x^n = \frac{1}{2^n} \sum_{k=0}^n \mathrm{C}_n^k \cos(|n-2k|\theta) = \frac{1}{2^n} \sum_{k=0}^n \mathrm{C}_n^k T_{|n-2k|}(x)xn=2n1​k=0∑n​Cnk​cos(∣n−2k∣θ)=2n1​k=0∑n​Cnk​T∣n−2k∣​(x)

从而当 nnn 为奇数时:

2n−1cn−2j=Cnj,j=0,1,…,n−122^{n-1}c_{n-2j} = \mathrm{C}_n^j,\quad j=0,1,\ldots,\frac{n-1}{2}2n−1cn−2j​=Cnj​,j=0,1,…,2n−1​

当 nnn 为偶数时:

2n−1cn−2j=Cnj,j=0,1,…,n2−12n−1c0=12Cnn/2\begin{aligned} &2^{n-1}c_{n-2j} = \mathrm{C}_n^j,\quad j=0,1,\ldots,\frac{n}{2}-1 \\[6pt] &2^{n-1}c_0 = \frac{1}{2}\mathrm{C}_n^{n/2} \end{aligned}​2n−1cn−2j​=Cnj​,j=0,1,…,2n​−12n−1c0​=21​Cnn/2​​

运行结果:

input: 6
output: 1 6 15 10
input: 7
output: 1 7 21 35
input: 11
output: 1 11 55 165 330 462
input: 12
output: 1 12 66 220 495 792 462
input: 15
output: 1 15 105 455 1365 3003 5005 6435

题 6.6

使用 SINDy 进行非线性动力学的稀疏辨识。

1. 数据标准化

先对数据做标准化,避免不同族群间数量级差异问题。对每个物种 iii 的观测序列:

μi=1m+1∑j=0mpi,jσi=1m∑j=0m(pi,j−μi)2p~i,j=pi,j−μiσi\begin{aligned} \mu_i&=\frac{1}{m+1}\sum_{j=0}^{m}p_{i,j} \\ \sigma_i&=\sqrt{\frac{1}{m}\sum_{j=0}^{m}(p_{i,j}-\mu_i)^2} \\ \tilde p_{i,j}&=\frac{p_{i,j}-\mu_i}{\sigma_i} \end{aligned}μi​σi​p~​i,j​​=m+11​j=0∑m​pi,j​=m1​j=0∑m​(pi,j​−μi​)2​=σi​pi,j​−μi​​​

后续所有运算均在标准化后的数据 {p~i,j}\{\tilde p_{i,j}\}{p~​i,j​} 上进行。

若需还原到原量纲,可利用 p~i=(pi−μi)/σi\tilde p_i=(p_i-\mu_i)/\sigma_ip~​i​=(pi​−μi​)/σi​ 做变量替换,将方程改写为关于原始种群数量 pip_ipi​ 的表达式。

2. 导数数据构造

对每个物种 iii 和时刻 j=0,1,…,m−1j=0,1,\dots,m-1j=0,1,…,m−1:

p~˙i,j=p~i,j+1−p~i,jΔt\dot{\tilde p}_{i,j}=\frac{\tilde p_{i,j+1}-\tilde p_{i,j}}{\Delta t}p~​˙​i,j​=Δtp~​i,j+1​−p~​i,j​​

得到 mmm 个样本点。

3. 构建候选函数库

假设 fif_ifi​ 可以表示为以下多元多项式基的线性组合:

Θ(p)=[1,  p1,  p2,  …,  pn,  p12,  p1p2,  …,  pn2,  …]T\Theta(\boldsymbol p)=\begin{bmatrix} 1,\; p_1,\; p_2,\; \dots,\; p_n,\; p_1^2,\; p_1p_2,\; \dots,\; p_n^2,\; \dots \end{bmatrix}^TΘ(p)=[1,p1​,p2​,…,pn​,p12​,p1​p2​,…,pn2​,…​]T

不妨取多项式最高阶数为 d=2d=2d=2,则库中共有 K=(n+dd)=(n+2)(n+1)2K=\dbinom{n+d}{d}=\dfrac{(n+2)(n+1)}{2}K=(dn+d​)=2(n+2)(n+1)​ 个基函数,记为:

θ1(p),  θ2(p),  …,  θK(p)\theta_1(\boldsymbol p),\;\theta_2(\boldsymbol p),\;\dots,\;\theta_K(\boldsymbol p)θ1​(p),θ2​(p),…,θK​(p)

其中线性项可反映种群自然增长/衰减;二次项 pkplp_kp_lpk​pl​ 可反映种间相互作用(捕食、竞争、互惠);常数项可反映外部输入。

4. 建立回归模型

对每个物种 iii,假设:

fi(p)=∑k=1Kξi,k θk(p)f_i(\boldsymbol p)=\sum_{k=1}^{K}\xi_{i,k}\,\theta_k(\boldsymbol p)fi​(p)=k=1∑K​ξi,k​θk​(p)

其中 ξi,k\xi_{i,k}ξi,k​ 为待求系数。代入所有 mmm 个采样时刻,得到线性方程组:

[p~˙i,0p~˙i,1⋮p~˙i,m−1]⏟P~˙i∈Rm=[θ1(p~0)θ2(p~0)⋯θK(p~0)θ1(p~1)θ2(p~1)⋯θK(p~1)⋮⋮⋱⋮θ1(p~m−1)θ2(p~m−1)⋯θK(p~m−1)]⏟Θ(P~)∈Rm×K[ξi,1ξi,2⋮ξi,K]⏟ξi∈RK\underbrace{\begin{bmatrix} \dot{\tilde p}_{i,0}\\ \dot{\tilde p}_{i,1}\\ \vdots\\ \dot{\tilde p}_{i,m-1} \end{bmatrix}}_{\displaystyle \dot{\tilde{\mathbf P}}_i\in\mathbb R^{m}} = \underbrace{\begin{bmatrix} \theta_1(\tilde{\boldsymbol p}_0) & \theta_2(\tilde{\boldsymbol p}_0) & \cdots & \theta_K(\tilde{\boldsymbol p}_0)\\ \theta_1(\tilde{\boldsymbol p}_1) & \theta_2(\tilde{\boldsymbol p}_1) & \cdots & \theta_K(\tilde{\boldsymbol p}_1)\\ \vdots & \vdots & \ddots & \vdots\\ \theta_1(\tilde{\boldsymbol p}_{m-1}) & \theta_2(\tilde{\boldsymbol p}_{m-1}) & \cdots & \theta_K(\tilde{\boldsymbol p}_{m-1}) \end{bmatrix}}_{\displaystyle \boldsymbol\Theta(\tilde{\mathbf P})\in\mathbb R^{m\times K}} \underbrace{\begin{bmatrix} \xi_{i,1}\\ \xi_{i,2}\\ \vdots\\ \xi_{i,K} \end{bmatrix}}_{\displaystyle \boldsymbol\xi_i\in\mathbb R^{K}}P~˙i​∈Rm​p~​˙​i,0​p~​˙​i,1​⋮p~​˙​i,m−1​​​​​=Θ(P~)∈Rm×K​θ1​(p~​0​)θ1​(p~​1​)⋮θ1​(p~​m−1​)​θ2​(p~​0​)θ2​(p~​1​)⋮θ2​(p~​m−1​)​⋯⋯⋱⋯​θK​(p~​0​)θK​(p~​1​)⋮θK​(p~​m−1​)​​​​ξi​∈RK​ξi,1​ξi,2​⋮ξi,K​​​​​

简记为:

P~˙i=Θ(P~) ξi\dot{\tilde{\mathbf P}}_i = \boldsymbol\Theta(\tilde{\mathbf P})\,\boldsymbol\xi_iP~˙i​=Θ(P~)ξi​

5. 最小二乘求解

由于 m≫Km\gg Km≫K,这是超定线性系统,可用最小二乘法求解:

ξi=arg⁡min⁡ξ∥P~˙i−Θ(P~)ξ∥22\boldsymbol\xi_i=\arg\min_{\boldsymbol\xi}\bigl\|\dot{\tilde{\mathbf P}}_i-\boldsymbol\Theta(\tilde{\mathbf P})\boldsymbol\xi\bigr\|_2^2ξi​=argξmin​​P~˙i​−Θ(P~)ξ​22​

正规方程组解为:

ξi=(Θ(P~)TΘ(P~))−1Θ(P~)TP~˙i\boldsymbol\xi_i =\bigl(\boldsymbol\Theta(\tilde{\mathbf P})^\mathsf T\boldsymbol\Theta(\tilde{\mathbf P})\bigr)^{-1} \boldsymbol\Theta(\tilde{\mathbf P})^\mathsf T\dot{\tilde{\mathbf P}}_iξi​=(Θ(P~)TΘ(P~))−1Θ(P~)TP~˙i​

6. 稀疏正则化

在实际的生态系统中,每个物种通常只与少数其他物种存在直接相互作用。 因此 ξi\boldsymbol\xi_iξi​ 应该是稀疏向量。

最小二乘解通常非稀疏且过拟合,从而可以改用 LASSO:

min⁡ξi∥P~˙i−Θξi∥22+λ∥ξi∥1\min_{\boldsymbol\xi_i}\bigl\|\dot{\tilde{\mathbf P}}_i-\boldsymbol\Theta\boldsymbol\xi_i\bigr\|_2^2+\lambda\|\boldsymbol\xi_i\|_1ξi​min​​P~˙i​−Θξi​​22​+λ∥ξi​∥1​

其中 λ>0\lambda>0λ>0 为正则化超参数,控制稀疏度。

λ\lambdaλ 可通过 K-折交叉验证选取:在训练集上求解 ξi\boldsymbol\xi_iξi​,在验证集上评估预测误差,选择使验证误差最小的 λ\lambdaλ。

7. 组装微分方程

对第 iii 个物种,设经 LASSO 求解后得到的稀疏系数为 ξ^i,1,…,ξ^i,K\hat\xi_{i,1},\dots,\hat\xi_{i,K}ξ^​i,1​,…,ξ^​i,K​。 则该物种的演化方程为:

dp~idt=fi(p~1,…,p~n)=∑k=1Kξ^i,k θk(p~),i=1,2,…,n\frac{\mathrm{d}\tilde p_i}{\mathrm{d}t} =f_i(\tilde p_1,\dots,\tilde p_n)=\sum_{k=1}^K \hat\xi_{i,k}\,\theta_k(\tilde{\boldsymbol p}) ,\qquad i=1,2,\dots,ndtdp~​i​​=fi​(p~​1​,…,p~​n​)=k=1∑K​ξ^​i,k​θk​(p~​),i=1,2,…,n

将 nnn 个物种的方程联立,即得到完整的生态系统常微分方程组。

目录
  • 题 6.1
  • 题 6.2
  • 题 6.3
  • 题 6.4
  • 题 6.5
  • 题 6.6
    • 1. 数据标准化
    • 2. 导数数据构造
    • 3. 构建候选函数库
    • 4. 建立回归模型
    • 5. 最小二乘求解
    • 6. 稀疏正则化
    • 7. 组装微分方程
© 2026 miniyuan. All rights reserved.
Go to miniyuan's GitHub repo