数值分析:插值与拟合


1 插值

定义 设函数y=f(x)在区间[a,b]上的n+1个点,a\leq x_0,x_1,...,x_n\leq b上的函数值为y_0,y_1,...,y_n,若粗在函数P(x),使P(x_i)=y_i,i=0,1,...n成立,则称函数P(x)f(x)插值函数f(x)称为被插值函数,点x_0,x_1,...,x_n称为 插值节点,包含插值节点的区间[a,b]称为 插值区间

在这里我们进讨论 多项式插值分段插值

多项式插值
  • 插值多项式是否存在,若存在是否唯一
  • 怎么推导插值多项式
  • 如何估计其逼近程度
  • 如何应用

定理1 在n+1个相异插值节点x_0,x_1,...,x_n处取给定值y_0,y_1,...,y_n的次数不高于n的插值多项式存在且唯一(可以通过非齐次线性方程组的范德蒙德行列式证明)


2 拉格朗日插值

2.1 拉格朗日插值多项式
  • 线性插值
    过曲线y=f(x)上两点M_0(x_0,y_0),M_1(x_1,y_1)做直线L_1(x),由两点式:L_1(x)=y_0\frac{x-x_1}{x_0-x_1}+y_1\frac{x-x_0}{x_1-x_0}显然L_1(x)为插值多项式
  • 抛物线插值
    过曲线y=f(x)上三点M_0(x_0,y_0),M_1(x_1,y_1),M_2(x_2,y_2)做抛物线L_2(x),同样不难得到:L_2(x)=y_0\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}+y_1\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}+y_2\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}显然L_2(x)也为插值多项式

用类似的推导方式可以证明,n+1个节点的拉格朗日插值多项式应定义为如下形式。
定义y=f(x)在插值节点x_0,x_1,...,x_n上的 拉格朗日插值多项式 L_n(x)L_n(x)=y_0l_0(x)+y_1l_1(x)+...+y_nl_n(x)=\sum\limits_{i=0}^ny_il_i(x)其中l_i(x)=\frac{x-x_0}{x_i-x_0}\frac{x-x_1}{x_i-x_1}...\frac{x-x_n}{x_i-x_n},i=0,1,...n l_i(x)称为 插值基函数


2.2 插值余项

若在[a,b]上使用L_n(x)近似f(x),则其截断误差为R_n(x)=f(x)-L_n(x),也称为 插值多项式的余项。关于插值余项估计有如下定理

定理2 设f^{(n)}(x)在区间[a,b]上连续,f^{(n+1)}(x)在区间(a,b)内存在,L_n(x)是以a\le x_0<x_1<...<x_n\le b为节点的拉格朗日插值多项式,则对任何x\in [a,b] R_n(x)=f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) \omega_{n+1}(x)=(x-x_0)(x-x_1)...(x-x_n)
这里\xi\in(a,b)且依赖于x


2.3 算法步骤

(1) 输入x,x_i,y_i,(i=0,1,...,n)
(2) 对i=0,1,...,n计算l_i=\prod\limits_{j=o,j\neq i}^n\frac{x-x_j}{x_i-x_j}
(3) 计算L=\sum\limits_{i=0}^ny_il_i
(4) 输出L \approx f(x),结束


2.4 注意事项
  • L_n(x)为次数不高于n次的多项式,其次数可能小于n
  • f(x)是次数不超过n次的多项式,那么以n+1个点为节点的插值多项式就一定是其本身。特别是当取f(x)\equiv 1时,得恒等式\sum\limits_{i=0}^nl_i(x)\equiv 1这一等式为我们提供了验证插值基函数的一种方法
  • R_n(x)用于误差估计。若|f^{(n+1)}(x)|\le M,则|R_n(x)|\le \frac{M}{(n+1)!}|\omega_{n+1}(x)|
  • L_n(x)只与节点及函数f(x)在节点处的值有关,与f(x)无关;而R_n(x)f(x)关系最为密切。

3 差商与牛顿插值

3.1 差商

定义 设已给插值节点x_0,x_1,...,x_n以及相应的函数值f(x_0),f(x_1),...,f(x_n)f[x_0,x_1]=\frac{f(x_1)-f(x_0)}{x_1-x_0}为函数y=f(x)关于点x_0,x_1一阶差商,称f[x_0,x_1,x_2]=\frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0}为函数y=f(x)关于点x_0,x_1,x_2二阶差商,称f[x_0,x_1,...,x_k]=\frac{f[x_1,x_2,...,x_k]-f[x_0,x_1,...,x_{k-1}]}{x_k-x_0}为函数y=f(x)关于点x_0,x_1,x_2k阶差商


3.2 差商的性质
  • 线性性
    k阶差商f[x_0,x_1,...,x_k]是函数值f(x_0,f(x_1),...,f(x_k)的线性组合,即f[x_0,x_1,...,x_k]=\sum\limits_{i=0}^k{\frac{f(x_i)}{\omega'_{k+1}(x_i)}}其中\omega_{k+1}(x)=\prod\limits_{i=0}^k(x-x_i)
  • 对称性
    差商f[x_0,x_1,...,x_k]x_0,x_1,...,x_k的对称函数。
  • 差商与导数的关系
    设函数f(x)在区间[a,b]上存在n阶导数,且x_0,x_1,...,x_k\in [a,b],则存在\xi \in [a,b]使得f[x_0,x_1,...,x_k]=\frac{f^{(n)}(\xi)}{n!}

3.3 牛顿插值多项式

由差商的定义可导出f(x)=N_n(x)+R_n(x)其中\begin{align} N_n(x)=&f(x_0)+(x-x_0)f[x_0,x_1]+(x-x_0)(x-x_1)f[x_0,x_1,x_2]+...\\ &+(x-x_0)(x-x_1)...(x-x_{n-1})f[x_0,x_1,...,x_n]\\ \end{align}称为牛顿插值多项式R_n(x)=f[x,x_0,x_1,...,x_n]\omega_{n+1}(x)称为牛顿插值多项式的余项


3.4 算法步骤

(1) 输入x,x_i,y_i(i=0,1,...,n)
(2) 对i=0,1,...,n计算f_i=y_i
(3)对i=1,2,...,n计算f_k=\frac{f_{k-1}-f_k}{x_{k-1}-x_k}(k=n,n-1,...,i)
(3) 计算p=f_0+\sum\limits_{k=0}^n{f_k(\prod\limits_{j=0}^{k-1}(x-x_j))}
(4) 输出p \approx f(x),结束


4 Hermite插值

4.1 Hermite插值多项式及其余项

Hermite插值多项式:H_{2n+1}(x)=\sum\limits_{j=0}^n[y_j\alpha_j(x)+y_j'\beta_j(x)]其中\alpha_j(x)=\left[1-2(x-x_j)\sum\limits_{k=0,k\neq j}^n\frac{1}{x_j-x_k}\right]l^2_j(x) \beta_j(x)=(x-x_j)l_j^2(x)余项:R_{2n+1}(x)=\frac{f^{(2n+2)}}{2n+2}\omega^2_{n+1}(x)其中\omega_{n+1}(x)=\prod\limits_{i=0}^n(x-x_i),\xi\in [a,b]


4.2 两点三次Hermite插值多项式

已知y=f(x)[a,b]上的节点x_0,x_1上的函数值y_0,y_1及一阶导数值y_0',y_1',则三次Hermite插值多项式\begin{align} H_3(x)=&y_0\alpha_0(x)+y_1\alpha_1(x)+y_0'\beta_0(x)+y_1'\beta_1(x)\\ =&y_0\left(1-2\frac{x-x_0}{x_0-x_1}\right)\left(\frac{x-x_1}{x_0-x_1}\right)^2+y_1\left(1-2\frac{x-x_1}{x_1-x_0}\right)\left(\frac{x-x_1}{x_0-x_1}\right)^2\\ &+y_0'(x-x_0)\left(\frac{x-x_1}{x_0-x_1}\right)^2+y_1'(x-x_1)\left(\frac{x-x_0}{x_1-x_0}\right)^2\\ \end{align}余项R_3(x)=\frac{f^{(4)}(\xi)}{4!}(x-x_0)^2(x-x_i)^2,\xi\in[a,b]


5 分段低次插值

5.1 龙格现象

随着插值多项式次数的增大,插值函数L_n(x)在两端会发生激烈的震荡,这就是龙格现象

5.2 分段线性插值

对给定区间[a,b]做分割:a=x_0<x_1<...<x_n=b,在每个小区间[x_i,x_{i+1}]上以x_i,x_{i+1}为节点作f(x)的线性插值:S_i(x)=\frac{x-x_{i+1}}{x_i-x_{i+1}}f(x_i)+\frac{x-x_i}{x_{i+1}-x_i}f(x_{i+1}),x\in[x_i,x_{i+1}]把每个小区间上的线性插值函数连起来,就得到了分段线性插值函数S(x)
误差公式为|f(x)-S(x)|\leq\frac{M_2}{8}(x_i-x_{i+1})^2,M_2=\max\limits_{a\leq x\leq b}|f''(x)|

5.3 分段三次Hermite插值

对给定区间[a,b]做分割:a=x_0<x_1<...<x_n=b,在每个小区间[x_i,x_{i+1}]上以x_i,x_{i+1}为节点作分段三次Hermite插值:\begin{align} S_i(x)=&f(x_i)\left(1-2\frac{x-x_i}{x_i-x_{i+1}}\right)\left(\frac{x-x_{i+1}}{x_i-x_{i+1}}\right)^2\\ &+f(x_{i+1})\left(1-2\frac{x-x_{i+1}}{x_i-x_{i+1}}\right)\left(\frac{x-x_i}{x_{i+1}-x_{i}}\right)^2\\ &+f'(x_i) (x-x_i)\left(\frac{x-x_{i+1}}{x_i-x_{i+1}}\right)^2\\ &+f'(x_{i+1}) (x-x_{i+1})\left(\frac{x-x_i}{x_{i+1}-x_{i}}\right)^2\\ \end{align}误差公式为|f(x)-S(x)|\leq\frac{h^4}{384}\max\limits_{x_i\leq x \leq x_{i-1}}|f^{(4)}(x)|,h=\max\limits_{0\leq i \leq n-1}|x_{i+1}-x_i|


5 最小二乘拟合

定义 确定a_k(k=0,1,...,m使得R(a_0,a_1,...,a_m)=\sum\limits_{k=1}^n(\varphi(x_k)-y_k)^2最小问题称为观测数据的最小二乘拟合问题。若函数系\{b_k(x)\}为幂函数系\{x^k\},此时的到的\varphi(x)称为回归曲线


5.1 最小二乘法

由于R({{a}_{0}},{{a}_{1}},...,{{a}_{m}})\ge 0,且为连续函数,故一定存在一组{{a}_{k}}(k=0,1,...,m)使其达到极小值,这时我们只需要求出驻点即可。
因此我们假设y=f(x)的观测数据为({{x}_{k}},{{y}_{k}})(k=1,2,...,n),对于\varphi(x)m次回归曲线,通过求解正规方程组可以求出{{a}_{k}}(k=0,1,...,m)的值,可求得近似函数f(x)\left( \begin{matrix} n & \sum\limits_{k=1}^n x_k & \sum\limits_{k=1}^n x^2_k & \cdots & \sum\limits_{k=1}^n x^m_k\\ \sum\limits_{k=1}^n x_k & \sum\limits_{k=1}^n x^2_k & \sum\limits_{k=1}^n x^3_k & \cdots & \sum\limits_{k=1}^n x^{m+1}_k\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \sum\limits_{k=1}^n x^m_k & \sum\limits_{k=1}^n x^{m+1}_k & \sum\limits_{k=1}^n x^{m+2}_k& \cdots & \sum\limits_{k=1}^n x^{2m}_k\\ \end{matrix} \right) \left( \begin{matrix} a_0 \\ a_1 \\ \vdots \\ a_m \\ \end{matrix} \right)= \left( \begin{matrix} \sum\limits_{k=1}^n y_k \\ \sum\limits_{k=1}^n x_ky_k \\ \vdots \\ \sum\limits_{k=1}^n x_k^my_k \\ \end{matrix} \right)

解题时,先写出正规方程组所需数据的数据表,再求解即可得到参数


5.2 最小二乘法的病态现象

衡量一个线性方程组是否“病态”及其病态程度,可通过矩阵的条件数理论来完成。若线性方程组系 数矩阵A的条件数 Cond(A)\gg 1,则该方程组“病态”,并且系数矩阵的条件数越大,方程组的“病态”程度就越严重,其解随系数矩阵或自由项的变化(灵敏度)就越大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352