《计算方法》笔记之(七)数据近似之 分段插值

本文介绍了分段插值方法,包括分段线性、二次和三次样条插值。通过分段插值,可以减少误差并提高插值的准确性。三次样条插值在保证光滑性的同时,通过调整节点可有效减小误差。然而,三次样条插值的计算量相对较大,需要解决线性方程组并设定边界条件。
摘要由CSDN通过智能技术生成


多项式插值随着点数的增加,多项式的次数也在增加,由于 龙格现象,所以多项式插值的误差也增加了。

那怎么做才可以使增加节点,多项式插值误差减小呢?

这种方法叫做分段插值方法
先将区间划分为若干个小区间,然后在每个小区间用低次多项式代替单个多项式做插值,并将每个小区间上所得到的多项式连接成一条连续曲线。
所得的多项式称为 分段插值多项式

分段线性插值

即在每一个区间上使用一次多项式作为插值多项式,即每段一条直线。

a = x 0 &lt; x 1 &lt; x 2 &lt; . . . &lt; x n = b a = {x_0} &lt; {x_1} &lt; {x_2} &lt; ... &lt; {x_n} = b a=x0<x1<x2<...<xn=b,则节点把 [ a , b ] [a,b] [a,b]分成n个小区间,当插值点x在第i个小区间 [ x i − 1 , x i ] [{x_{i - 1}},{x_i}] [xi1,xi]时,

采用一次Lagrange插值多项式:
g 1 i ( x ) = x − x i x i − 1 − x i y i − 1 + x − x i − 1 x i − x i − 1 y i , x i − 1 ≤ x ≤ x i , i = 1 , 2 , . . . , n g_{1i}^{}(x) = \frac{ {x - {x_i}}}{ { {x_{i - 1}} - {x_i}}}{y_{i - 1}} + \frac{ {x - {x_{i - 1}}}}{ { {x_i} - {x_{i - 1}}}}{y_i},{x_{i - 1}} \le x \le {x_i},i = 1,2,...,n g1i(x)=xi1xixxiyi1+xixi1xxi1yi,xi1xxi,i=1,2,...,n

采用Newton插值多项式:
g 1 i ( x ) = y i − 1 + y [ x i − 1 , x i ] ( x − x i − 1 ) , x i − 1 ≤ x ≤ x i , i = 1 , 2 , . . . , n g_{1i}^{}(x) = {y_{i - 1}} + y[{x_{i - 1}},{x_i}](x - {x_{i - 1}}),{x_{i - 1}} \le x \le {x_i},i = 1,2,...,n g1i(x)=yi1+y[xi1,xi](xxi1),xi1xxi,i=1,2,...,n

分段线型插值的误差:
E ( g 1 i ) = ∣ y ′ ′ ( ξ ) 2 ( x − x i − 1 ) ( x − x i ) ∣ ≤ M 2 , i 2 ∣ ( x − x i − 1 ) ( x − x i ) ∣ E({g_{1i}}) = \left| {\frac{ {y&#x27;&#x27;(\xi )}}{2}(x - {x_{i - 1}})(x - {x_i})} \right| \le \frac{ { {M_{2,i}}}}{2}\left| {(x - {x_{i - 1}})(x - {x_i})} \right| E(g1i)=2y(ξ)(xxi1)(xxi)2M2,i(xxi1)(xxi)
M 2 , i = max ⁡ x i − 1 ≤ x ≤ x i ∣ y ′ ′ ( x ) ∣ {M_{2,i}} = \mathop {\max }\limits_{ {x_{i - 1}} \le x \le {x_i}} \left| {y&#x27;&#x27;(x)} \right| M2,i=xi1xximaxy(x),表示在 [ x i − 1 , x i ] [x_{i-1},x_i] [xi1,xi]区间上的2阶导的绝对值最大值。
max ⁡ x ∣ ( x − x i − 1 ) ( x − x i ) ∣ = 1 4 ( x i − x i − 1 ) 2 \mathop {\max }\limits_x \left| {(x - {x_{i - 1}})(x - {x_i})} \right| = \frac{1}{4}{({x_i} - {x_{i - 1}})^2} xmax(xxi1)(xxi)=41(xixi1)2
因此 E ( g 1 i ) ≤ M 2 , i 8 ( x i − x i − 1 ) 2 \mathop {E({g_{1i}}) \le \frac{ { {M_{2,i}}}}{8}}\limits_{} {({x_i} - {x_{i - 1}})^2} E(g1i)8M2,i(xixi1)2

定理:
g 1 ( x ) {g_1}(x) g1(x)是在 a = x 0 &lt; x 1 &lt; ⋯ &lt; x n = b a = {x_0} &lt; {x_1} &lt; \cdots &lt; {x_n} = b a=x0<x1<<xn=b上插值 y ( x i ) y({x_i}) y(xi)的分段线型插值多项式,若 y ′ ′ ( x ) y&#x27;&#x27;(x) y(x) [ a , b ] [a,b] [a,b]上连续,则有误差估计:
E ( g 1 ) ≤ 1 8 M 2 Δ 2 E({g_1}) \le \frac{1}{8}{M_2}{\Delta ^2} E(g1)81M2Δ2
其中 M 2 = max ⁡ x M 2 , i = max ⁡ a ≤ x ≤ b ∣ y ′ ′ ( x ) ∣ , Δ = max ⁡ 1 ≤ i ≤ n ( x i − x i − 1 ) {M_2} = \mathop {\max }\limits_x {M_{2,i}} = \mathop {\max }\limits_{a \le x \le b} \left| {y&#x27;&#x27;(x)} \right|,\Delta = \mathop {\max }\limits_{1 \le i \le n} ({x_i} - {x_{i - 1}}) M2=xmaxM2,i=axbmaxy(x),Δ=1inmax(xixi1)

式中,只有 Δ \Delta Δ会随n的变化而改变。所以,只要增加的插值数据点在最长的子区间中,那么当节点数目增大时, Δ \Delta Δ将减小。所以按照这种方法增加插值数据点会使误差随n的增大而趋于0。

优缺点:
优点:计算量少,可以保证插值准确性。
缺点:曲线在节点处不可导,即光滑程度较差。

分段二次插值

既然线性插值的光滑程度较差,我们可以尝试提高次数,使用二次插值。

若将区间[a,b]分成偶数个子区间,在每相邻的两个子区间上做二次插值多项式 g 2 i ( x ) {g_{2i}}(x) g2i(x),即在子区间 [ x i − 1 , x i + 1 ] [{x_{i - 1}},{x_{i + 1}}] [xi1,xi+1]上, g 2 i ( x ) {g_{2i}}(x) g2i(x)是以 ( x i − 1 , y i − 1 ) , ( x i , y i ) , ( x i + 1 , y i + 1 ) ({x_{i - 1}},{y_{i - 1}}),({x_i},{y_i}),({x_{i + 1}},{y_{i + 1}}) (xi1,yi1),(xi,yi),(xi+1,yi+1)为插值点的插值多项式 ( i = 1 , 3 , . . . , n − 1 ) (i = 1,3,...,n - 1) (i=1,3,...,n1)

采用Newton插值多项式:
g 2 i ( x ) = y i − 1 + y [ x i − 1 , x i ] ( x − x i − 1 ) + y [ x i − 1 , x i , x i + 1 ] ( x − x i − 1 ) ( x − x i ) {g_{2i}}(x) = {y_{i - 1}} + y[{x_{i - 1}},{x_i}](x - {x_{i - 1}}) + y[{x_{i - 1}},{x_i},{x_{i + 1}}](x - {x_{i - 1}})(x - {x_i}) g2i(x)=yi1+y[xi1,xi](xxi1)+y[xi1,xi,xi+1](xxi1)(xxi)

余项为:
y ( x ) − g 2 i ( x ) = y ′ ′ ′ ( ξ i ) 3 ! ( x − x i − 1 ) ( x − x i ) ( x − x i + 1 ) , x ∈ [ x i − 1 , x i + 1 ] , ξ i ∈ [ x i − 1 , x i + 1 ] \begin{array}{l} y(x) - {g_{2i}}(x) = \frac{ {y&#x27;&#x27;&#x27;({\xi _i})}}{ {3!}}(x - {x_{i - 1}})(x - {x_i})(x - {x_{i + 1}}), x \in [{x_{i - 1}},{x_{i + 1}}],{\xi _i} \in [{x_{i - 1}},{x_{i + 1}}] \end{array} y(x)g2i(x)=3!y(ξi)(xxi1)(xxi)(xxi+1),x[xi1,xi+1],ξi[xi1,xi+1]

定理:
g 2 i ( x ) g_{2i}(x) g2i(x)是在 a = x 0 &lt; x 1 &lt; ⋯ &lt; x n = b a = {x_0} &lt; {x_1} &lt; \cdots &lt; {x_n} = b a=x0<x1<<xn=b上插值 y ( x i ) y({x_i}) y(xi)的分段二次插值多项式,若 y ′ ′ ′ ( x ) y&#x27;&#x27;&#x27;(x) y(x) [ a , b ] [a,b] [a,b]上连续,则有误差估计:
E ( g 1 ) ≤ M 3 12 Δ 3 E({g_1}) \le \frac{M_3}{12}{\Delta ^3} E(g1)12M3Δ3
其中 M 2 = max ⁡ a ≤ x ≤ b ∣ y ′ ′ ′ ( x ) ∣ {M_2} = \mathop {\max }\limits_{a \le x \le b} \left| {y&#x27;&#x27;&#x27;(x)} \right| M2=axbmaxy(x)


这里的 Δ \Delta Δ指相邻两个区间中较大的。

上述定理可以看出,分段二次插值当合理增加插值点数使 Δ \Delta Δ减小时,分段二次插值的误差也随之减小。光滑性相比样条插值得到了改善,但是仍然一个不可导节点相邻一个可导节点。

三次样条插值

要想让所有节点都“光滑”,按照二次函数的方法只能提高到n次,那就变成了多项式插值。
还有另外一种办法。
在每一个子区间 [ x i − 1 , x i ] [{x_{i - 1}},{x_i}] [xi1,xi]上是一个三阶多项式,这些多项式的曲线在节点 x i x_i xi处光滑的连接起来,这样的分段三次多项式称为 三次样条函数
通过数据点 { ( x i , y i ) } ( i = 0 , 1 , 2 , . . . , n ) \{ ({x_i},{y_i})\} (i = 0,1,2,...,n) { (xi,y

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值