参考:https://www.bilibili.com/video/BV1eT4y1K7DL/?spm_id_from=333.999.0.0

# 一、问题的提出

函数逼近:

  • 用简单的函数近似代替给定函数的问题

逼近与拟合的区别:

  • 逼近指的是用连续函数 “逼近” 连续函数
  • 拟合指的是用连续函数 “拟合” 离散数据

逼近(拟合)和插值的区别

  • 逼近(拟合)并不要求获得的函数通过已知点,只要尽量接近
  • 插值要求获得的函数必须经过已知点

函数逼近的第一个问题:如何表示 “尽量接近”?

  • 一致逼近:最大的偏差也不超过 xxx
  • 平方逼近:平方偏差和不超过 xxx

# 二、相关概念

# 2.1 离散数据的最佳平方逼近

设已知一段测得的数据

(xi,yi),(i=1,2,,m>>n)(x_i,y_i),(i=1,2,\cdots,m>>n)

构造一个近似函数s(x)s(x) 去逼近所求函数y=f(x)y=f(x)

那么离散数据的最佳平方逼近为:

δ22=i=0mδi2=i=0m[s(xi)f(xi)]2\|\delta\|_2^2=\sum_{i=0}^m\delta_i^2=\sum_{i=0}^m[s^*(x_i)-f(x_i)]^2

# 2.2 线性无关函数族

线性无关函数族的表达式如下:

S=span{x1,...,xn}S=\mathrm{span}\{x_1,...,x_n\}

其中x1,...,xnx_1,...,x_n 线性无关。最典型的线性无关函数族即1,x,x2,...,xn1,x,x^2,...,x^n

所谓函数族,就是做逼近或拟合的 “素材库”,可以从 “库” 中选择一个或多个函数组合成逼近用的新函数。

# 2.3 权函数

有些点比较重要,应该更接近,而有些点不那么重要。相当于给每一个点乘以一个权重值ω\omega。因为每一个点对应一个权重值,那么这个权重ω\omega 可以看作一个函数,称为权函数ω(x)\omega(x)

加入权重后,离散数据的最佳平方逼近可以更一般的表示为:

δ22=i=0mδi2=i=0mω(xi)[s(xi)f(xi)]2=mins(x)Φi=0mω(xi)[s(xi)f(xi)]2\left\|\mathbf{\delta}\right\|_{2}^{2}=\sum_{i=0}^{m}\delta_{i}^{2}=\sum_{i=0}^{m}\omega(x_{i})[s^{*}(x_{i})-f(x_{i})]^{2}=\min_{s(x)\in\Phi}\sum_{i=0}^{m}\omega(x_{i})[s(x_{i})-f(x_{i})]^{2}

问题归结为求s(x)=k=0nakφk(x)s^{*}(x)=\sum^{n}_{k=0}a_{k}\varphi_{k}(x),即求系数aka_k,使得下式取得最小值

I(a0,,an)=i=0mω(xi)[k=0nakφk(xi)f(xi)]2I(a_0,\cdots,a_n)=\sum_{i=0}^m\omega(x_i)[\sum_{k=0}^na_k\varphi_k(x_i)-f(x_i)]^2

aka_k 求偏导数,可以得到

12Iaj=i=0mω(xi)φj(xi)[f(xi)k=0nakφk(xi)],j=0,1,2,..., n\frac{1}{2}\frac{\partial I}{\partial a_{j}}=\sum_{i=0}^{m}\omega(x_{i})\varphi_{j}(x_{i})[f(x_{i})-\sum_{k=0}^{n}a_{k}\varphi_{k}(x_{i})],\text{j=0,1,2,..., n}

令偏导为 0,得到

i=0mω(xi)φj(xi)[f(xi)k=0nakφk(xi)]=0\sum_{i=0}^{m}\omega(x_{i})\varphi_{j}(x_{i})[f(x_{i})-\sum_{k=0}^{n}a_{k}\varphi_{k}(x_{i})]=0

展开可以得到

k=0naki=0mω(xi)φj(xi)φk(xi)=i=0mω(xi)φj(xi)f(xi)\sum_{k=0}^{n}a_{k}\sum_{i=0}^{m}\omega(x_{i})\varphi_{j}(x_{i})\varphi_{k}(x_{i})=\sum_{i=0}^{m}\omega(x_{i})\varphi_{j}(x_{i})f(x_{i})

# 2.4 内积

i=0mω(xi)fj(xi)gk(xi)\sum_{i=0}^{m}\omega(x_{i})f_{j}(x_{i})g_{k}(x_{i}) 可以写作(f,g)(f,g),表示带权的内积。

从而 2.3 的最后一个式子可以表达为:

k=0nak(φj,φk)=(φj,f)\sum_{k=0}^{n}a_{k}(\varphi_{j},\varphi_{k})=(\varphi_{j},f)

# 2.5 正规方程组

将 2.4 的最后一个式子展开为:

a0(φj,φ0)+a1(φj,φ1)+an(φj,φn)+=(φj,f)a_0(\varphi_j,\varphi_0)+a_1(\varphi_j,\varphi_1)+\cdots a_n(\varphi_j,\varphi_n)+=(\varphi_j,f)

由于上式只对应了其中一个jj,一共有n+1n+1 个类似的方程,因此可以得到:

[(φ0,φ0)(φ0,φ1)(φ0,φn)(φ1,φ0)(φ1,φ1)(φ1,φn)(φn,φ0)(φn,φ1)(φn,φn)][a0a1an]=[(φ0,f)(φ1,f)(φn,f)]\begin{bmatrix}(\varphi_0,\varphi_0)&(\varphi_0,\varphi_1)&\cdots&(\varphi_0,\varphi_n)\\(\varphi_1,\varphi_0)&(\varphi_1,\varphi_1)&\cdots&(\varphi_1,\varphi_n)\\\vdots&\vdots&\cdots&\vdots\\(\varphi_n,\varphi_0)&(\varphi_n,\varphi_1)&\cdots&(\varphi_n,\varphi_n)\end{bmatrix}\begin{bmatrix}a_0\\a_1\\\vdots\\a_n\end{bmatrix}=\begin{bmatrix}(\varphi_0,f)\\(\varphi_1,f)\\\vdots\\(\varphi_n,f)\end{bmatrix}

上述方程组被称为正规方程组(法方程组),左边的矩阵被称为 Cramer 矩阵。

# 2.6 正交函数族

当直接使用 2.2 中的一般无关线性族时,会产生病态矩阵,从而导致求解误差大的问题。因此引入正交函数族。

正交函数族就是所有函数在函数空间上都 “两两垂直”,即两个函数求内积为 0。因此 2.5 中的最后一个式子可以表达为:

[(φ0,φ0)000(φ1,φ1)000(φn,φn)][a0a1an]=[(φ0,f)(φ1,f)(φn,f)]\begin{bmatrix}(\varphi_0,\varphi_0)&0&\cdots&0\\0&(\varphi_1,\varphi_1)&\cdots&0\\\vdots&\vdots&\cdots&\vdots\\0&0&\cdots&(\varphi_n,\varphi_n)\end{bmatrix}\begin{bmatrix}a_0\\a_1\\\vdots\\a_n\end{bmatrix}=\begin{bmatrix}(\varphi_0,f)\\(\varphi_1,f)\\\vdots\\(\varphi_n,f)\end{bmatrix}

正规方程组的 Cramer 矩阵直接变成了对角阵,求解变的更加简单。并且避免了病态矩阵的问题。

# 三、正交多项式

# 3.1 定义

若首项系数an0a_n\ne 0nn 次多项式gn(x)g_n(x) 满足

abρ(x)gi(x)gk(x)dx={0,ik,Ak>0,i=k,(i,k=0,1,2,)\int_a^b\rho(x)g_i(x)g_k(x)dx=\{\begin{matrix}0,i\neq k,\\A_k>0,i=k,\end{matrix}(i,k=0,1,2,\cdots)

则称函数族g0(x),g1(x),...g_0(x),g_1(x),...[a,b][a,b] 上带权正交。

# 3.2 性质

  • 性质 1:线性无关
  • 性质 2:零点都是实的,相异的,全部在(a,b)(a,b) 内部
  • 性质 3:任意相邻 3 个多项式存在如下关系:

pn+1(x)=(xαn)pn(x)βnpn1(x),n=0,1,,p_{n+1}(x)=(x-\alpha_{n})p_{n}(x)-\beta_{n}p_{n-1}(x),n=0,1,\cdots,

其中

p0(x)=1p_0(x)=1

p1(x)=0p_{-1}(x)=0

αn=(xpn,pn)(pn,pn)\alpha_n=\frac{(xp_n,p_n)}{(p_n,p_n)}

βn=(pn,pn)(pn1,pn1)\beta_n=\frac{(p_n,p_n)}{(p_{n-1},p_{n-1})}

因此,只需要知道前两个多项式,其他的多项式就可以递推出来。注意,如果权函数发生变化,多项式就会不同。

# 3.3 常见多项式

# (1)勒让德多项式

勒让德多项式的前几项为:

勒让德多项式的区间为 [-1, 1],权函数ρ1\rho \equiv 1nn 次勒让德多项式的表达式为:

Pn(x)=12nn!dndxn[(x21)n],(n=0,1,2,)P_{n}(x)=\frac{1}{2^{n}n!}\frac{d^{n}}{dx^{n}}[(x^{2}-1)^{n}],(n=0,1,2,\cdots\cdots)

勒让德多项式的图像为:

勒让德多项式的三个性质如下

  • 正交性

11Pm(x)Pn(x)dx={0,mn,22n+1m=n.\left.\int_{-1}^{1}P_{m}(x)P_{n}(x) dx=\left\{\begin{matrix}{0,}&{m\neq n,}\\{\frac{2}{2n+1}}&{m=n.}\\\end{matrix}\right.\right.

  • 奇偶性,当nn 是偶数时是偶函数,奇数时是奇函数

Pn(x)=(1)nPn(x)P_n(-x)=(-1)^nP_n(x)

  • 递推关系

P0(x)=1,P1(x)=x,Pn+1(x)=2n+1n+1xPn(x)nn+1Pn1(x)\begin{aligned}&P_{0}(x)=1,P_{1}(x)=x,\\&P_{n+1}(x)=\frac{2n+1}{n+1}xP_{n}(x)-\frac{n}{n+1}P_{n-1}(x)\end{aligned}

# (2)切比雪夫多项式(Type Ⅰ)

切比雪夫多项式的前几项为:

切比雪夫多项式的区间为 [-1, 1],权函数ρ=11x2\rho = \frac{1}{\sqrt{1-x^2}}nn 次切比雪夫多项式的表达式为:

Tn(x)=cos(narccos(x)),(n=0,1,2,)T_{n}(x)=\cos(n\arccos(x)),(n=0,1,2,\cdots\cdots)

切比雪夫多项式的图像为:

切比雪夫多项式的三个性质如下

  • 正交性

1111x2Tm(x)Tn(x)dx=0,mn{π/2,m=n0π,m=n=0\int_{-1}^{1} \frac{1}{\sqrt{1-x^{2}}} T_{m}(x) T_{n}(x) d x=\begin{array}{c} 0, m \neq n \\ \{\pi / 2, m=n \neq 0 \\ \pi, m=n=0 \end{array}

  • 奇偶性,当nn 是偶数时是偶函数,奇数时是奇函数

Tn(x)=(1)nTn(x)T_n(-x)=(-1)^nT_n(x)

  • 递推关系

{T0(x)=1,T1(x)=x,Tn+1(x)=2xTn(x)Tn1(x).\begin{cases}T_0(x)=1,T_1(x)=x,\\T_{n+1}(x)=2xT_n(x)-T_{n-1}(x).\end{cases}

# (3)其他正交多项式

  • 切比雪夫多项式(Type Ⅱ)
  • 拉盖尔多项式
  • 埃尔米特多项式

# 四、正交多项式做最佳平方逼近

当基函数用正交函数族时,法方程组会变成:

[(φ0,φ0)000(φ1,φ1)000(φn,φn)][a0a1an]=[(φ0,f)(φ1,f)(φn,f)]\begin{bmatrix}(\varphi_0,\varphi_0)&0&\cdots&0\\0&(\varphi_1,\varphi_1)&\cdots&0\\\vdots&\vdots&\cdots&\vdots\\0&0&\cdots&(\varphi_n,\varphi_n)\end{bmatrix}\begin{bmatrix}a_0\\a_1\\\vdots\\a_n\end{bmatrix}=\begin{bmatrix}(\varphi_0,f)\\(\varphi_1,f)\\\vdots\\(\varphi_n,f)\end{bmatrix}

从而

ak=(f,φk)/(φk,φk)a_k^*=(f,\varphi_k)/(\varphi_k,\varphi_k)

因此,最佳逼近多项式为:

sn(x)=k=0nakφk(x)=k=0n(f,φk)φk22φk(x)s_{n}^{*}(x)=\sum_{k=0}^{n}a_{k}^{*}\varphi_{k}(x)=\sum_{k=0}^{n}\frac{(f,\varphi_{k})}{||\varphi_{k}||_{2}^{2}}\varphi_{k}(x)

如果使用勒让德多项式,那么

ak=(f,φk)/(φk,φk)=2k+12(f,φk)a_{k}^{*}=(f,\varphi_{k})/( \varphi_{k},\varphi_{k})=\frac{2k+1}{2}(f,\varphi_{k})

即可求出所需要的系数。如果目标函数的函数范围不在 [-1,1],那么可以使用缩放的方式,投影到 [-1,1] 上进行运算。

# 五、正交多项式做最小二乘拟合

对于最小二乘拟合问题,一般不适用现成的正交式,而是现推正交多项式,因为:

  • 最小二乘拟合问题相对简单(主要体现在内积容易求)
  • 如果用以后的正交多项式,变量的替换也很麻烦
  • 这种处理方式会变成循环递推,易于编程

具体的处理方法为:

pn+1(x)=(xan)pn(x)bnpn1(x),n=0,1,,p_{n+1}(x)=(x-a_{n})p_{n}(x)-b_{n}p_{n-1}(x),n=0,1,\cdots,

其中

p0(x)=1p_0(x)=1

p1(x)=0p_{-1}(x)=0

αn=(xpn,pn)(pn,pn)\alpha_n=\frac{(xp_n,p_n)}{(p_n,p_n)}

βn=(pn,pn)(pn1,pn1)\beta_n=\frac{(p_n,p_n)}{(p_{n-1},p_{n-1})}

具体流程:

更新于 阅读次数