第五章 插值与逼近

5.1 离散问题

定义给定一组点{xi,yi}(i=0,1,,n)

并且x0<x1<<xn,若函数f(x)使得

f(xi)=yi(i=0,1,,n)

成立,则y=f(x)就是这一组数据点的一个插值函数,求y=f(x)的过程称为函数插值。

函数插值不是唯一的。

其他处理离散点的方式允许存在误差,因此没有必要要求函数一定要准确地通过给定的数据点。

5.2 一般插值问题

5.2.1 对插值函数的要求

  • 插值函数应该有比被插值函数具有更简单的形式;
  • 插值函数应当继承被插值函数的某些特性,包括但不限于单调性、凹凸性、周期性;
  • 简单程度
  • 性态方面的接近程度

5.2.2 多项式插值

1)多项式插值的定义

定义给定一组点{xi,yi}(i=0,1,,n),且

x0<x1<<xn

求次数不超过n的多项式pn(x)使得

pn(xi)=yi,i=0,1,n

成立,其中xi称为插值节点,pn(x)称为n次插值多项式。

5.2.3 单项式基底下的多项式插值

设n次插值多项式为pn(x)=t0+t1x+t2x2++tnxn

根据插值条件,得到

pn(x)=t0+t1xi+t2xi2++tnxi2,i=0,1,,n

[1xixin][t0t1tn]=[y0y1yn]

上述关系就是一个关于t0,t1,,tn的线性方程组:

[1x0x0n1x1x1n1xnxnn][t0t1tn]=[y0y1yn]

用矩阵符号记之为At=y,其中A称为插值矩阵。

矩阵A是Vandermonde矩阵,当xi互不相同时,A可逆。

但通常不会这么做:①工作量大 ②A通常是一个病态矩阵

5.2.4 一般基底下的插值多项式

假设有一组Pn的基底:φ0(x),φ1(x),,φn(x)Pn

任意次数不超过n的多项式可写成:Pn(x)=t0φ0(x)+t1φ1(x)++tnφn(x)

写成矩阵形式At=y

[φ0(x0)φ1(x0)φn(x0)φ0(x1)φ1(x1)φn(x1)φ0(xn)φ1(xn)φn(xn)][t0t1tn]=[y0y1yn]

A称为一般插值矩阵。

什么情况下,At=y能够被快速求解?显然,当A=I时,系统求解起来最为方便。

当插值矩阵是单位阵时,对应的就是Lagrange插值多项式。

5.3 常用插值公式和算法

5.3.1 Lagrange型插值多项式

当矩阵A是单位阵时,对角线上元素为1,其他元素为0,得到

φj(xi)=δij={1,i=j,i=0:n,0,ij

若可以求出这样的φj(x)它们就称为Lagrange插值基,并记为lj(x),它们又称基本插值多项式。

由于要求插值矩阵是单位阵,那么

lj(xi)=0(ij),lj(xj)=1

lj(x)=αj(xx0)(xxj1)(xxj+1)(xxn)

由上式知,αj=1i=0,ijn(xjxi),则lj(x)=i=0,ijn(xxi)i=0,ijn(xjxi)

pn(x)=y0l0(x)+y1l1(x)++ynln(x)=j=0nyjlj(x)=j=0nyji=0,ijn(xxi)i=0,ijn(xjxi),称pn(x)为n次Lagrange插值多项式。

5.3.2 插值误差余项

f(x)在包含n+1个互异节点x0,x1,,xn的区间[a,b]上具有n阶连续倒是,且在(a,b)内存在n+1阶导数,则对于任意的x[a,b],有Rn(x)=f(x)pn(x)=f(n+1)(ξ)(n+1)!Wn+1(x),其中ξ(a,b),Wn+1(x)=(xx0)(xx1)(xxn)

引入差商的原因

Lagrange插值多项式存在缺点:当增加/减少插值节点时,Lagrange插值多项式必须重新计算。

因此设想一个构造Lk(x)的方法。

为此考察g(x)=Lk(x)Lk1(x)

显然g(x)是一个次数不超过k的多项式,且对j=0,1,,k1

g(xj)=Lk(xj)Lk1(xj)=f(xj)f(xj)=0

这样g(x)有零点x0,x1,,xk1,那么有g(x)=ak(xx0)(xx1)(xxk1)

亦可等价为Lk(x)=Lk1(x)+ak(xx0)(xx1)(xxk1)

递推有Ln(x)=a0+a1(xx0)+a2(xx0)(xx1)++an(xx0)(xx1)(xxn1)

求解ak,令x=xk,代入Lk(x)=Lk1(x)+ak(xx0)(xx1)(xxk1)

由于计算麻烦,遂引入差商。

5.3.4 差商与Newton插值

设0阶差商为f[xi]=f(xi),则1阶差商定义为f[xi,xj]=f[xj]f[xi]xjxi,2阶差商定义为f[xi,xj,xk]=f[xj,xk]f[xi,xj]xkxi,k阶差商定义为f[x0,x1,,xk]=f[x1,,xk]f[x0,,xk1]xkx0

对比上节我们发现αk=f[x0,x1,,xk],即插值多项式为pn(x)=f[x0]+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)++f[x0,x1,,xn](xx0)(xxn1)

这种类型的插值多项式称为n次Newton型插值多项式。相当于把1,xx0,(xx0)(xx1),,(xx0)(xx1)(xxn1)作为多项式空间Pn的一组基。

1)Newton型插值多项式的计算流程

给定数据点(x0,y0)(x1,y1)(xn,yn)

列差商表

k xk 0阶 1阶 2阶 3阶
0 x0 f[x0] f[x0,x1] f[x0,x1,x2] f[x0,x1,x2,x3]
1 x1 f[x1] f[x1,x2] f[x1,x2,x3]
2 x2 f[x2] f[x2,x3]
3 x3 f[x3]

根据第一行结果,得到插值多项式为N3(x)=f[x0]+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+f[x0,x1,x2,x3](xx0)(xx1)(xx2)

2)差商的性质

性质2 差商具有对称性 f[x0,x1,x2,x3]=f[x3,x0,x1,x2]

性质3 差商同高阶导数具有如下关系 f[x0,x1,,xk]=f(k)(η)k!η(min0ik{xi},max0ik{xi})

性质4 上性质的推论 f[x0,x1,,xk,x]=f(k+1)(ξ)(k+1)!ξ(min{x0,x1,,xi,x},max{x0,x1,,xi,x})

可以证明Newton误差余项可以写成Rk(x)=f(x)N(x)=f[x0,x1,,xk,x]Wk+1(x)

差分及等距节点Newton插值多项式

上节讨论的是节点任意分布的Newton插值多项式。但在实际使用时又是碰到等距节点的情况,即节点为xi=a+ih(i=0,1,,n)这里h称为步长,此时插值多项式可以进一步简化,同时可以避免做除法运算。

定义:已知函数f(x)在等距节点xi上的函数值为f(xi)=fi(i=0,1,,n),称fi+1fixi处以h为步长的1阶差分,记作Δfi,即Δfi=fi+1fi,类似的,称Δkfi=Δk1fi1Δk1fif(x)xi处以h为步长的k阶向前差分,简称k阶差分。

和差商的计算一样,可构造差分表

k xk fk Δfk Δ2fk Δ3fk Δ4fk
0 x0 f0 Δf0 Δ2f0 Δ3f0 Δ4f0
1 x1 f1 Δf1 Δ2f1 Δ3f1
2 x2 f2 Δf2 Δ2f2
3 x3 f3 Δf3
4 x4 f4

应用数学归纳法可以证明差分和差商有如下关系:f[xi,xi+1,,xi+k]=Δkfik!hk

x=x0+th,则j=0k1(xxj)=j=0k1[(x0+th)(x0+jh)]=hkj=0k1(tj)

代入到Newton插值多项式Nn(x)=k=0nf[x0,x1,,xk]j=0k1(xxj)

得到Nn(x0+th)=k=0nΔkf0k!j=0k1(tj)

其中t=xx0h,称为n次Newton前插公式。

5.3.8 一种带导数的插值

带导数插值问题的一种处理手段就是,先用函数值数据构造一个低次多项式,然后找到二者的联系,最后再用倒数条件确定一些未知的系数,需要指出的是,并非任意一个带导数插值问题都有解或唯一解,要具体问题具体分析。

5.3.9 Hermite插值

给定区间[a,b]中n+1个互异节点xi(i=0,1,,n)上的函数值以及直到mi阶的导数值f(xi),f(xi),,f(mi)(xi),令m=i=0n(mi+1)1。若存在次数不超过m的多项式Hm(x),使得每个xi(i=0,1,,n)Hm(xi)=f(xi),Hm(xi)=f(xi),,Hmmi(xi)=f(mi)(xi)

则称Hm(x)f(x)的m次Hermite插值多项式。

Hermite插值又称为重节点上的插值。

当被插值函数f(x)在节点xi处具有mi阶连续导数时,Hermite插值多项式Hm(x)存在且唯一。

f(x)C(m+1)[a,b]时,Hermite插值的误差余项为f(x)Hm(x)=f(m+1)(ξ)(m+1)!i=0n(xxi)mi+1,ξ(a,b)

2)Newton型Hermite插值多项式

重节点上的差商可以这样计算:f[x0,x0]=f(x0)

更多节点时:f[x0,,x0k+1]=f(k)(x0)k!

有了重节点上的差商,Hermite插值多项式:Hm(x)=f[x0]+f[x0,x0](xx0)++f[x0,,x0](xx0)m0+f[x0,,x0,x1](xx0)m+1+f[x0,,x0,x1,x1](xx0)m0+1(xx1)+

5.4.2 分段线性插值

2)分段线性插值简介

最简单的分段插值是分段线性插值,所谓分段线性插值,简而言之就是用折现直接把数据点连接起来,然后就形成一个分段函数。

理论分析

x x0 x1 xn1 xn
f(x) f(x0) f(x1) f(xn1) f(xn)

hi=xi1xi,h=max0in1{hi}[xi,xi+1]上进行线性插值,得到L1,i(x)=f(xi)+f[xi,xi+1](xxi)根据误差余项公式,子区间上的插值误差余项为f(x)L1,i(x)=12f(ξ)(xxi)(xxi+1),ξi(xi,xi+1)

因此小区间上的误差估计为maxxixxi+1|f(x)L1,i(x)|hi28maxxixxi+1|f(x)|

L~1(x)={L1,0(x),x[x0,x1)L1,1(x),x[x1,x2)L1,n2(x),x[xn2,xn1)L1,n1(x),x[xn1,xn)就得到了分段线性插值函数L1~(x),它的误差(整体误差)为

maxaxb|f(x)L~1(x)|=max0in1maxxixxi+1|f(x)L~1,i(x)|max0in1hi28maxxixxi+1|f(x)|h28maxaxb|f(x)|

3)分段线性插值多项式的总结

优点:能消除高次插值的过分振荡和不收敛现象。

缺点:在插值函数的光滑性方面有所欠缺。

5.4.4 样条插值与三次样条插值

3)三次样条函数的高效计算

关键点:假设Mj=S(xj),称之为力矩。

对小区间[xj,xj+1]来说,Mj,Mj+1足够表示出样条函数的2阶导数,并且同下一个区间[xj+1,xj+2]共用同一个力矩Mj+1

根据Lagrange插值,在小区间[xj,xj+1]上,有S(x)=Mjxj+1xhj+Mj+1xxjhj,x[xj,xj+1]

积分有S(x)=Mj(xj+1x)22hj+Mj+1(xxj)22hj+Aj,其中Aj是待定的常数

再次积分得到样条函数为S(x)=Mj(xj+1x)36hj+Mj+1(xxj)36hj+Ajx+Bj

通过S(xj)=yj,S(xj+1)=yj+1,求解Aj,Bj,发现是关于Mj的表达式。

再根据S(xj0)=S(xj+0)列写Mj1,Mj,Mj+1

接着对S(xj0)=S(xj+0)化简出等式的系数设为参数,而后会得到一个严格对角占优的三对角系统,即

{2M0+M1=d0μjMj1+2Mj+λjMj+1=dj,j=1,2,,n1,Mn1+2Mn=dn

定义参数:

{hj=xj+1xj,j=0:n1,λ0=1,d0=6h0(y1y0h0)y0,λj=hjhj1+hj,j=1:n1,μj=1λj=hj1hj1+hj,j=1:n1,dj=6hj1+hj(yj+1yjhjyjyj1hj1),j=1:n1,μn=1,dn=6hn1(ynynyn1hn1).

5.5 函数逼近

5.5.1 函数逼近简介

1)范数与距离

设X是一个线性空间,假设有函数||·||:XR,它满足:

||x||0,||x||=0x=0

||αx||=α||x||,αR

||x+y||||x||+||y||

则称||·||是X上的范数,定义了范数的线性空间被称为线性赋范空间。其中常用范数为

||f||1=ab|f(x)|dx,||f||=maxaxb|f(x)|,||f||2=ab[f(x)]2dx

2)最佳逼近定义

设X是一个线性赋范空间,MX,fX,若M中的元素φ满足:||fφ||||fψ||,ψM,则称φ为f在M中的最佳逼近元。

选择无穷范数时,得到最佳一致逼近;

选择2-范数时,得到最佳平方逼近。

5.5.2 最佳一致逼近简介

1)最佳一致逼近多项式

对函数来说,无穷范数度量的就是最大误差,即||fg||=maxaxb|f(x)g(x)|两个函数在某区间上的“最大”差别很小,二者的“整体”差别就很小,这也是一致的含义。所谓最佳一致逼近,就是求最大误差最小的逼近函数。

定义5.8,设fC[a,b],若pnPn,使得对qnPn,有

||fpn||||fqn||

则称pn(x)是f(x)的n次最佳一致逼近多项式。

定理5.8 设fC[a,b],则它的n次最佳一致逼近多项式存在且唯一。

定义5.9,设gC[a,b],如果xk[a,b]使得

|g(xk)|=||g||,则称xk为g(x)在[a,b]上的偏差点。

5.5.3 最佳平方逼近

1)为什么要研究最佳平方逼近

最佳一致逼近考虑的是整个区间上绝对误差的最大值,最佳一致逼近反而不能很好地反映真实情况。

2)内积与范数

设X是一个线性空间,对x,yX,都有唯一的师叔与之对应,我们记该实数为(x,y),若它满足:

x,yX,有(x,y)=(y,x); ②x,yX,λR,有(λx,y)=λ(x,y)

x,y,zX,有(x+y,z)=(x,z)+(y,x);④xX,有(x,x)0(x,x)=0x=0

则X称为内积空间,又称Hilbert空间。二元运算(·,·)称为内积运算,简称内积,它是一个具有对称性的双线性函数。

常用的内积有两个:①Rn:(x,y)=i=1nxiyi;②C[a,b]:(f,g)=abf(x)g(x)dx

4)离散情形的最佳平方逼近

[(φ0,φ0)(φ0,φm)(φ1,φ0)(φ1,φm)(φm,φ0)(φm,φm)][c0c1cm]=[(y,φ0)(y,φ1)(y,φm)]

5)超定方程组的最小二乘解

超定方程组的正规方程组为:ATAx=ATb

6)连续情形的最佳平方逼近

[(φ0,φ0)(φ0,φm)(φ1,φ0)(φ1,φm)(φm,φ0)(φm,φm)][c0c1cm]=[(f,φ0)(f,φ1)(f,φm)]

其中(φi,φj)=abφi(x)φj(x)dx,(f,φi)=abf(x)φi(x)dx

若基函数φi(x)=xi(i=0,1,,m),那么p(x)称为f(x)在区间[a,b]上的m次最佳平方逼近多项式。

posted @   uyest  阅读(172)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示