跳转至

Chap 8: Approximation Theory⚓︎

2916 个字 预计阅读时间 15 分钟

Discrete Least Square Approximation⚓︎

目标:确定一个多项式 \(P_n(x) = a_0 + a_1 x + \dots a_n x^n\),用于近似表示一组数据 \(\{(x_i, y_i)\ |\ i = 1, 2, \dots, m\}\),使得最小二乘误差 \(E_2 = \sum\limits_{i=1}^m [P_N(x_i) - y_i]^2\) 最小化,其中 \(n \ll m\)

关键:\(E_2\) 实际上是一个关于 \(a_0, a_1, \dots, a_n\) 的函数,也就是说 \(E_2(a_0, a_1, \dots, a_n) = \sum\limits_{i=1}^m [a_0 + a_1 x_i + \dots + a_n x_i^n - y_i]^2\)。要想让 \(E_2\) 最小化,必要条件是 \(\dfrac{\partial E_2}{\partial a_k} = 0, k = 0, \dots, n\)

\[ \begin{align} 0 & = \dfrac{\partial E_2}{\partial a_k} = 2\sum\limits_{i=1}^m [P_N(x_i) - y_i]^2 \dfrac{\partial P_n(x_i)}{\partial a_k} = 2 \sum\limits_{i=1}^m \Big[\sum\limits_{j=0}^n a_j x_i^j - y_i \Big]x_i^k \notag \\ & = 2\Big\{\sum\limits_{j=0}^n a_j \Big(\sum\limits_{i=1}^m x_i^{j+k}\Big) - \sum\limits_{j=1}^m y_i x_i^k\Big\} \notag \end{align} \]

\(b_k = \sum\limits_{i=1}^m x_i^k, c_k = \sum\limits_{i=1}^m y_i x_i^k\),那么:

\[ \begin{bmatrix}b_{0+0} & \dots & b_{0+n} \\ \vdots & \vdots & \vdots \\ b_{n+0} & \dots & b_{n+n}\end{bmatrix} \begin{bmatrix}a_0 \\ \vdots \\ a_n\end{bmatrix} = \begin{bmatrix}c_0 \\ \vdots \\ c_n\end{bmatrix} \]
例子

\(y \approx P(x) = \dfrac{x}{ax + b}\),寻找 \(a, b\),使得 \(E_2(a, b) = \sum\limits_{i=1}^m \Big(\dfrac{x_i}{ax_i + b} - y_i\Big)\)^2 最小化。

线性化(linearization):令 \(Y = \dfrac{1}{y}, X = \dfrac{1}{x}\),那么 \(Y \approx a + b X\) 就是一个线性问题了。

\((x_i, y_i)\) 转换为 \((X_i, Y_i)\)\(a, b\) 就能被解出来了。

\(y \approx P(x) = ae^{-\frac{b}{x}}\),不难发现 \(\ln y \approx \ln a - \dfrac{b}{x}\)

线性化:令 \(Y = \ln y, X = \dfrac{1}{x}, A = \ln a, B = -b\),得到 \(Y \approx A + BX\) 这样一个线性问题。

\((x_i, y_i)\) 转换为 \((X_i, Y_i)\)\(a, b\) 就能被解出来了(\(a = e^A, b = -B, P(x) = ae^{-\frac{b}{x}}\)

Orthorgonal Polynomials and Least Squares Approximation⚓︎

  • 离散版本:给定 \(x_1, \dots, x_m;\ y_1, \dots, y_m\),找到更简单的函数 \(P(x) \approx f(x)\),使得 \(E = \sum\limits_{i=1}^m |P(x_i) - y_i|^2\) 最小化。
  • 连续版本:离散版本:给定在 \([a, b]\) 上的函数 \(f(x)\),找到更简单的函数 \(P(x) \approx f(x)\),使得 \(E = \int_a^b [P(x) - f(x)]^2 dx\) 最小化。

定义

对于一组在区间 \([a, b]\) 上的函数 \(\{\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x)\}\),当 \(\forall x \in [a, b]\)\(a_0 \varphi_0(x) + a_1 \varphi_1(x) + \dots + a_n \varphi_n(x) = 0\) 时,有 \(a_0 = a_1 \dots = a_n = 0\),那么称这组函数是线性独立(linearly independent) 的,否则称它们是线性相关(linearly dependent) 的。

定理

如果 \(\varphi_j(x)\) 是一个 \(j\) 次多项式(\(j = 0, \dots, n\),那么 \(\{\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x)\}\) 在任意区间 \([a, b]\) 上都是线性独立的。

证明

假设结论不成立,根据定义,\(\exists a_0, a_1, \dots, a_n, \forall x \in [a, b]\) 使得 \(P(x) = a_0 \varphi_0(x) + a_1 \varphi_1(x) + \dots + a_n \varphi_n(x) = 0\)

此时 \(P(x)\) 是一个零多项式,\(x^n\) 的系数为 0,即 \(a_n = 0\),那么 \(P(x) = a_0 \varphi_0(x) + a_1 \varphi_1(x) + \dots + a_{n-1} \varphi_{n-1}(x) = 0\)。同理可以推出 \(a_{n-1} = 0\),以此类推,最终发现所有系数均为 0。所以假设不成立,得证。

定理

\(\Pi_n\) 为一组次数至多为 \(n\) 的多项式,如果 \(\{\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x)\}\) \(\Pi_n\) 内一组线性独立的多项式,那么 \(\Pi_n\) 内的任意多项式均可被唯一写做 \(\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x)\) 的一个线性组合。

定义

对于一般的一组线性独立的函数 \(\{\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x)\}\),关于它们的线性组合 \(P(x) = \sum\limits_{j=0}^n a_j \varphi_j(x)\) 被称为广义多项式(generalized polynomial)。

其他多项式:

  • \(\{\varphi_j(x) = \cos jx\}, \{\psi_j(x) = \sin jx\} \Rightarrow \{\varphi_j(x), \psi_j(x)\}\) 得到的是三角多项式(trigonometric polynomial)
  • \(\{\varphi_j(x) = e^{kjx}, k_i \ne k_j\}\) 得到的是指数多项式(exponential polynomial)

定义:权重函数 (weight function)

  • 离散版本:当对一组离散点 \((x_i, y_i) (i = 1, \dots, n)\) 进行近似时,我们为每个点赋予一个误差项 \(w_i\),它是一个正实数。此时我们要考虑让 \(E = \sum w_i [P(x_i) - y_i]^2\) 最小化。集合 \(\{w_i\}\) 被称为权重(weight)。设置权重的目标是为这些点赋予不同的“重要程度”,以便实现更好的近似。
  • 连续版本:一个在区间 \(/\) 上的可积分的函数 \(w\) 被称为权重函数,它满足 \(\forall x \in /, w(x) \ge 0\),但 \(w(x)\) 不会在 \(/\) 的任意子区间上消失。此时我们要考虑让 \(E = \int_a^b w(x) [P(x) - f(x)]^2 dx\) 最小化。

定义:一般的最小二乘近似 (least square approximation) 问题

  • 离散版本:给定一组离散点 \((x_i, y_i)\) 和一组对应的权重 \(\{w_i\}\)\(i = 1, \dots, m\)。我们要找到一个广义多项式 \(P(x)\),使得误差 \(E = \sum w_i [P(x_i) - y_i]^2\) 最小化。
  • 连续版本:给定定义在区间 \([a, b]\) 上的一个函数 \(f(x)\) 和一个权重函数 \(w(x)\)。我们要找到一个广义多项式 \(P(x)\),使得误差 \(E = \int_a^b w(x) [P(x) - f(x)]^2 dx\) 最小化。

对于 \((f, g) = \begin{cases}\sum\limits_{i=1}^m w_i f(x_i) g(x_i) \\ \int_a^b w(x) f(x) g(x) dx\end{cases}\),可以证明它表示的是一个内积(inner product),且 \(\|f\| = \sqrt{(f, f)}\) 是一个范数

因此一般的最小二乘近似问题可以被转换为:寻找一个广义多项式 \(P(x)\),使得 \(E = (P - y, P - y) = \| P - y \|^2\) 最小化。

\(P(x) = a_0 \varphi_0(x) + a_1 \varphi_1(x) + \dots + a_n \varphi_n(x)\),然后与求解离散问题类似(\(\dfrac{\partial E}{\partial a_k} = 0 \Rightarrow \sum\limits_{j=0}^n (\varphi_k, \varphi_j) a_j = (\varphi_k, f), k = 0, \dots, n\),也就是说:

\[ \begin{bmatrix}b_{ij} = (\varphi_i, \varphi_j)\end{bmatrix} \begin{bmatrix}a_0 \\ \vdots \\ a_n\end{bmatrix} = \begin{bmatrix}(\varphi_0, f) \\ \vdots \\ (\varphi_n, f)\end{bmatrix} = \varepsilon \]
例子

使用 \(y = a_0 + a_1 x + a_2 x^2\) 近似点集 \(\{(1, 4), (2, 10), (3, 18), (4, 26)\}\)

\(\varphi_0(x) = 1, \varphi_1(x) = x, \varphi_2(x) = x^2\),可以计算出:

\(\|B\|_{\infty} = 484, \|B^{-1}\|_{\infty} = \dfrac{63}{4} \Rightarrow K(B) = 7623\)


例子

当使用 \(\varphi_j(x) = x^j\) \(w(x) \equiv 1 \dots\) 近似 \(f(x) \in C[0, 1]\) 时,\((\varphi_i, \varphi_j) = \int_0^1 x^i x^j dx = \dfrac{1}{i + j +1}\)希尔伯特矩阵(Hilbert matrix))

改进:如果我们能找到一组一般的线性独立的函数 \(\{\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x) \}\),使得任何函数对 \(\varphi_i(x), \varphi_j(x)\) 正交的(orthogonal),那么范数矩阵将会是个对角矩阵。此时我们有 \(a_k = \dfrac{(\varphi_k, f)}{\varphi_k, \varphi_k}\)

下面考虑构造正交多项式(orthogonal polynomials)。

定理

对于一组在 \([a, b]\) 的多项式函数 \(\{\varphi_0(x), \varphi_1(x), \dots, \varphi_n(x)\}\) 以及一个权重函数 \(w\),当满足以下条件时,我们认为这些函数是正交的:

\[ \varphi_0 (x) \equiv 1, \varphi_1(x) = x - B_1, \varphi_k(x) = (x - B_k)\varphi_{k-1}(x) - C_k \varphi_{k-2}(x) \]

其中 \(B_k = \dfrac{(x \varphi_{k-1}, \varphi_{k-1})}{(\varphi_{k-1}, \varphi_{k-1})}, C_k = \dfrac{(x \varphi_{k-1}, \varphi_{k-2})}{( \varphi_{k-2}, \varphi_{k-2})}\)

例子

(和之前基本一样的)使用 \(y = c_0 + c_1 x + c_2 x^2, w \equiv 1\) 近似点集 \(\{(1, 4), (2, 10), (3, 18), (4, 26)\}\)

首先构造正交多项式 \(\varphi_0(x), \varphi_1(x), \varphi_2(x)\),令 \(y = a_0 \varphi_0(x) + a_1 \varphi_1(x) + a_2 \varphi_2(x)\)\(a_k = \dfrac{(\varphi_k, y)}{\varphi_k, \varphi_k}\)。接下来就计算出这些值:

最终解得 \(y = \dfrac{1}{2}x^2 + \dfrac{49}{10}x - \dfrac{3}{2}\)

Chebyshev Polynomials and Economization of Power Series⚓︎

一般的最小二乘近似问题是要找到一个广义多项式 \(P(x)\),使得 \(E = (P - y, P - y) = \|P - y\|^2\) 最小化。

现在的目标是最小化 \(\|P - y\|_{\infty}\)——极小化极大问题(minimax problem)。

Goals⚓︎

目标 1.0:找到 \(n\) 阶多项式 \(P_n(x)\) 使得 \(\|P_n - f\|_{\infty}\) 最小化。

定义:如果 \(P(x_0) - f(x_0) = \pm \|P - f\|_{\infty}\),那么此时 \(x_0\) 被称为 \((\pm)\) 偏差点(deviation point)。

从任意地方构造出多项式并不容易,但我们能够检验多项式的一些特征:

  • 如果 \(f \in C[a, b]\) \(f\) 不是一个 \(n\) 阶多项式,那么存在一个唯一的多项式 \(P_n(x)\),使得 \(\|P_n - f\|_{\infty}\) 最小化
  • \(P_n(x)\) 存在,且必须同时有正负偏差点
  • 切比雪夫定理(Chebyshev Theorem):\(P_n(x)\) 最小化 \(\|P_n - f\|_{\infty}\ \Leftrightarrow P_n(x)\) 至少有 \(n+2\) 个关于 \(f\) 的正负偏差点。也就是说,存在一组点 \(a \le t_1 < \dots < t_{n+2} \le b\) 使得 \(P_n(t_k) - f(t_k) = \pm(-1)^k \|P_n - f\|_{\infty}\)。集合 \(\{t_k\}\) 被称为切比雪夫交替序列(Chebyshev alternating sequence)。

其中 \(P_n(x)\) \(f(x)\) 的插值多项式。

目标 2.0:确定插值点 \(\{x_0, \dots, x_n\}\) 使得 \(P_n(x)\) 最小化余项 \(|P_n(x) - f(x)| = |R_n(x)| = \Big|\dfrac{f^{(n+1)}(\xi)}{(n+1)!} \prod\limits_{i=0}^n (x - x_i)\Big|\)

目标 2.1:找到 \(\{x_1, \dots, x_n\}\) 使得 \(\|w_n\|_{\infty}\) \([-1, 1]\) 最小化,其中 \(w_n(x) = \prod\limits_{i=1}^n (x - x_i)\)


注意到 \(w_n(x) = x^n - P_{n-1}(x)\),问题就变成了:

目标 3.0:找到多项式 \(P_{n-1}(x)\),使得 \(\|x^n - P_{n-1}(x)\|_{\infty}\) \([-1, 1]\) 上最小。

根据切比雪夫定理,我们知道 \(P_{n-1}(x)\) \(n+1\) 个关于 \(x^n\) 个偏差点,也就是说 \(w_n(x)\) \(n+1\) 个点上交替获得最大值和最小值。

Chebyshev Polynomials⚓︎

考虑 \(\cos (n \theta)\) \([0, \pi]\) 上的 \(n+1\) 个极值。

\(x = \cos (\theta)\),那么 \(x \in [-1, 1]\)。我们称 \(T_n(x) = \cos (n\theta) = \cos (n \cdot \text{arc} \cos x)\) 切比雪夫多项式(Chebyshev polonomial)。

  • \(T_n(x)\) 假设在 \(t_k = \cos \Big(\dfrac{k}{n} \pi\Big) (k = 0, 1, \dots, n)\) 上,在最大值 1 和最小值 -1 之间交替变换,也就是说 \(T_n(t_k) = (-1)^k \|T_n(x)\|_{\infty}\)
  • \(T_n(x)\) \(n\) 个根 \(x_k = \cos \Big(\dfrac{2k - 1}{2n} \pi \Big)(k = 1, \dots, n)\)
  • \(T_n(x)\) 有递推关系式:\(T_0(x) = 1, T_1(x) = x, T_{n+1}(x) = 2x T_n(x) - T_{n-1}(x)\)
    • \(T_n(x)\) 是一个有 \(2^{n-1}\) 个系数的 \(n\) 阶多项式
  • \(\{T_0(x), T_1(x), \dots\}\) \([-1, 1]\) 上关于权重函数 \(w(x) = \dfrac{1}{\sqrt{1 - x^2}}\) 上正交,也就是说 \((T_n, T_m) = \int_{-1}^1 \dfrac{T_n(x) T_m(x)}{\sqrt{1-x^2}} dx = \begin{cases}0 & n \ne m \\ \pi & n = m = 0 \\ \dfrac{\pi}{2} & n = m \ne 0\end{cases}\)

回到之前介绍的目标:

  • 目标 3.0:找到多项式 \(P_{n-1}(x)\),使得 \(\|x^n - P_{n-1}(x)\|_{\infty}\) \([-1, 1]\) 上最小。
    • 此时 \(w_n(x) = x^n - P_{n-1}(x) = \dfrac{T_n(x)}{2^{n-1}}\)
  • 目标 2.1:找到 \(\{x_1, \dots, x_n\}\) 使得 \(\|w_n\|_{\infty}\) \([-1, 1]\) 最小化,其中 \(w_n(x) = \prod\limits_{i=1}^n (x - x_i)\)
    • 此时 \(\min\limits_{w_n \in \widetilde{\Pi}_n} \|w_n\|_{\infty} = \Big\|\dfrac{1}{2^{n-1}} T_n(x)\Big\|_{\infty} = \dfrac{1}{2^{n-1}}\)。其中:\(\widetilde{\Pi}_n\) \(n\) 阶的首一多项式 (monic polynomial)\(\{x_1, \dots, x_n\}\) \(T_n(x)\) \(n\) 个根
  • 目标 2.0:确定插值点 \(\{x_0, \dots, x_n\}\) 使得 \(P_n(x)\) 最小化余项 \(|P_n(x) - f(x)| = |R_n(x)| = \Big|\dfrac{f^{(n+1)}(\xi)}{(n+1)!} \prod\limits_{i=0}^n (x - x_i)\Big|\)
    • \(T_{n+1}(x)\) 上的 \(n+1\) 个根作为插值点 \(\{x_0, \dots, x_n\}\),然后关于 \(f(x)\) 的插值多项式 \(P_n(x)\) 假设绝对误差的最小上界为 \(\dfrac{M}{2^n (n+1)!}\)
例子

找到在 \([0, 1]\) 上关于 \(f(x) = e^x\) 的最佳近似多项式,使得绝对误差不超过 \(0.5 \times 10^{-4}\)

  1. 确定 \(n\)
    • 改写变量 \(x = \dfrac{a+b}{2} + \dfrac{b-a}{2} t = \dfrac{1}{2}(t+1)\)
    • \(|R_n| \le \dfrac{e}{(n+1)!} \times \dfrac{1}{2^{2n+1}} < \dfrac{1}{2} \times 10^{-4}\),解得 \(n = 4\)
  2. 找到 \(T_5(t)\) 的根:\(t_0 = \cos \dfrac{\pi}{10}, \cos \dfrac{3 \pi}{10}, \cos \dfrac{5 \pi}{10}, \cos \dfrac{7 \pi}{10}, \cos \dfrac{9 \pi}{10}\)
  3. 对变量做点改变:
    • \(x_0 = \dfrac{1}{2} \Big(\cos \dfrac{\pi}{10} + 1\Big) \approx 0.98\)
    • \(x_1 = \dfrac{1}{2} \Big(\cos \dfrac{3 \pi}{10} + 1\Big) \approx 0.79\)
    • \(x_2 = \dfrac{1}{2} \Big(\cos \dfrac{5 \pi}{10} + 1\Big) \approx 0.50\)
    • \(x_3 = \dfrac{1}{2} \Big(\cos \dfrac{7 \pi}{10} + 1\Big) \approx 0.21\)
    • \(x_4 = \dfrac{1}{2} \Big(\cos \dfrac{9 \pi}{10} + 1\Big) \approx 0.02\)
  4. 用插值点 \(x_0, \dots, x_4\) 计算 \(L_4(x)\)

Economization of Power Series⚓︎

目标:给定 \(P_n(x) \approx f(x)\),幂级数经济化(economization) 的目标是在确保精度损失最小的情况下,降低多项式的次数。

考虑一个任意的 \(n\) 阶多项式 \(P_n(x) = a_n x^n + a_{n-1} x^{n-1} + \dots + a_1 x + a_0\),对应的多项式 \(P_{n-1}(x)\) 通过移除 \(n\) 阶多项式 \(Q_n(x)\)\(x^n\) 项的系数为 \(a_n\))得到。那么 \(\max\limits_{[-1, 1]} |f(x) - P_{n-1}(x)| \le \max\limits_{[-1, 1]} |f(x) - P_n(x)| + \max\limits_{[-1, 1]} |Q_n(x)|\),而 \(Q_n(x)\) 能够反映精度的损失。

为了最小化精度损失,\(Q_n(x)\) 必须为 \(a_n \times \dfrac{T_n(x)}{2^{n-1}}\)

例子

已知 \(f(x) = e^x\) \([-1, 1]\) 上的 4 阶泰勒多项式为 \(P_4 = 1 + x + \dfrac{x^2}{2} + \dfrac{x^3}{6} + \dfrac{x^4}{24}\)。它的截断误差的上界为 \(|R_4(x)| \le \dfrac{e}{5!} |x^5| \approx 0.023\)。请将这个近似多项式的次数降至 2

评论区

如果大家有什么问题或想法,欢迎在下方留言~