例2 已给sin0.32=0.314567,sin0.34=0.333487, sin0.36=0.352274, 用线性插值及抛物插值计算 sin0.3367 的值并估计截断误差。
解: 由题意取x0=0.32, y0=0.314567 , x1=0.34 ,y1=0.333487 , x2=0.36 , y2=0.352274 。 用线性插值及抛物插值计算,取 x0=0.32 及 x1=0.34 , 又由公式得
sin0.3367?L1(0.3367)= y0?y1?y0*(0.3367 -x0)
x1?x0=0.314567? 0.01892*0.0167 =0.330365 .
0.02其截断误差得
R(x)?M21//2(x?x0)(x?x1)
其中M?maxf(x) ,因 f(x)=sinx,f//(x)= -sinx, 2x0?x?x1可取M?2maxx?x?x0Sin(x)?Sin(x1)?0.3335,于是
1
?R1(0.3367)?=?sin 0.3367 –L1(0.3367)? ?1/2(0.3335)(0.0167)(0.0033)?0.92?10–5, 若取x1=0.34,x2=0.36为节点,则线性插值为
?yysin0.3367?L1(0.3367)?y?(0.3367?x)?xx ,
~221111
?0.333487?
0.018787(?0.0033)?0.3303870.02~其截断误差为R1(x)?M2//2(x?x1)(x?x2),
其中
M2?~fmaxx?x?x12(x)?0.3523
于是
R1(0.3367)?sin0.3367?L1(0.3367)1?(0.3523)(0.0023)(0.0233)?1.36?10?52~
用抛物插值计算 sin0.3367时,可得 sin0.3367?y?L2(0.3367)0.7689?10?43.89?10?4?0.5511?10?4?0.314567??0.333487??0.352274?0.00080.00040.0008?0.330374(x?x1)(x?x2)?0(?)(?)x0x1x0x2y(1x?x)(x?x)1012(x?x0)(x?x2)?y2(x2?x0)(x2?x1)(x?x0)(x?x1)
这个结果与六位有效数字的正弦函数表完全一样,这说明查表时用二次插值精度已相当高了。其截断误差得
其中M?3 于是
1(0.3367)?sin0.3367?(0.3367)?(0.828)(0.0167)(0.033)(0.0233) R2L26 ?0.178?10?6|R(x)|?M61///3(x?x0)(x?x1)(x?x2)
maxfx?x?x02(x)?cosx0?0.828
练习:已知函数y=ln x的函数表如下: x 10 11 12 13 14 y=ln x 2.3026 2.3979 2.4849 2.5649 2.6391 分别用Lagrange线性插值和抛物线插值求ln 11.5 的近似值,并估计误差。 解 线性插值。取两个节点x0?11,x1?12,插值基函数为
l0(x)?由式(1-4)得
x?x1x?x0??(x?12) l1(x)??x?11
x0?x1x1?x0L1(x)??2.3979(x?12)?2.4849(x?11)
将x?11.5代入,即得
ln11.5?L1(11.5)?2.3979?0.5?2.4849?0.5?2.4414
按式(1-12)得
R1(x)?因为(lnx)?????(lnx)??2!(x?11)(12?x)
1,?在11与12之间,故 2x?=(lnx)??于是
1?2?1?0.0082645 112R1(11.5)?1?0.0082645?0.5?0.5?1.03306?10?3 2抛物线插值。取x0?11,x1?12,x2?13,插值多项式为
L2(x)?2.3979(x?12)(x?13)(x?11)(x?13)?2.4849?(11?12)(11?13)(12?11)(12?13)
(x?11)(x?12)2.5649(13?11)(13?12)?1.19895(x?12)(x?13)?2.4849(x?11)(x?13)?
1.28245(x?11)(x?12)所以
ln11.5?L2(11.5)?1.19895?(?0.5)?(?1.5)?2.4849?0.5?(?1.5)?
1.28245?0.5?(?0.5)?2.442275
因为(lnx)????2,于是 x311?x?13max(lnx)????2?2 ?0.1503?10311因此用抛物线插值计算的误差为
R2(11.5)????(lnx)??3!(11.5?11)(11.5?12)(11.5?13)
1?0.1503?10?2?0.5?0.5?1.5 6?9.3938?10?5查表可得ln11.5?2.442347。
例 给定函数
y?f(x)的函数表
-2 17 0 1 1 2 2 17 x写出函数
f(x) 解 差商表如下: y?f(x)的差商表。
f(xi) 17 1 2 17 1阶差商 2阶差商 3阶差商 xi -2 0 1 2 -8 1 15 3 7 1 练习:试列出f(x)=x3 在节点x =0,2,3,5,6上的各阶差商值。 例 对上例的中的
f(x),求节点为x0,x1的一次插值多项式,节点为x0,x1,x2的二次插值多项式和节点为
解 差商表如下: x0,x1,x2,x3的三次插值多项式。
1阶差商 -8 1 15 2阶差商 3 7 3阶差商 1 xi -2 0 1 2
由上例知
f(xi) 17 1 2 17 f(x0)?17,
f[x0,x1]??8,
f[x0,x1,x2]?3,
f[x0,x1,x2,x4]?1,于是有
N1(x)?f(x0)?f[x0,x1](x?x0)N1(x)?17?8(x?2)??1?8xN2(x)?f(x0)?f[x0,x1](x?x0)?f[x0,x1,x2](x?x0)(x?x1)N2(x)??1?8x?3(x?2)x?3x2?2x?1N3(x)?f(x0)?f[x0,x1](x?x0)?f[x0,x1,x2](x?x0)(x?x1)?f[x0,x1,x2,x3](x?x0)(x?x1)(x?x2)
N3(x)?N2(x)?(x?2)x(x?1)?3x?2x?1?(x?2)x(x?1)?x?4x?4x?1
练习已知函数表(见下表),试用牛顿插值公式求N2(x),并计算
x f(x) 解:列出差商表:
xi 1 3 2 0阶差商 1 2 -1 1阶差商 0.5 3 2阶差商 2.5
1 1 3 2 2 -1 232
f(1.5)的近似值。
?N2(x)?f(x0)?(x?x0)f[x0,x1]?(x?x0)(x?x1)f[x0,x1,x2]?1?(x?1)?0.5?(x?1)(x?3)?2.5?2.5x2?9.5x?8f(1.5)?N2(1.5)????0.625
例. 给定单调连续函数y=f(x)的函数值表如下 x f(x) -2 -10 -1 -5 1 1 2 11 3 18 求方程f(x)=0的根的尽可能好的近似值
解:分析如果直接运用插值公式,可以求得4次插值多项式。从而可以得到一元4次方程。然而我们没有可靠的办法直接解高次方程。
因为函数y=f(x)单调连续,所以f(x)必存在反函数x=f -1(y) 利用已知函数值表可知 y=f(x) x=f -1(y) 建立差商表 yk -10 -5 1 11 18 f -1(yk) -2 -1 1 2 3 一阶差商 0.2 0.333333 0.1 0.142857 二阶差商 0.012121 -0.014583 0.002521 三阶差商 -0.001272 0.000744 四阶差商 0.000072 -10 -2 -5 -1 1 1 11 2 18 3 得到牛顿插值
N4(y)??2?0.2(y?10)?0.012121(y?10)(y?5)?0.001272(y?10)(y?5)(y?1)? 0.000072(y?10)(y?5)(y?1)(y?11)x?f?1(0)?N4(0)?0.709250
特别注意:反插值只有在y = f (x)为单调函数才能使用。 例.已知函数表
xi 0 1
yi 8 -7.5
求函数y=f(x)在[0,2]上零点的近似值
2 -18 解:由于yi是严格单调的,可用反插值求其零点。可先求出插值多项式x??(y),并令y=0
yi xi 8 0 -7.5 1 -18 2 x??(y)?x??(0) ? ?0.445(y?y0)(y?y2)(y?x0)(y?y1)(y?y1)(y?y2)x0?x1?x2(y0?y1)(y0?y2)(y1?y0)(y1?y2)(y2?y0)(y2?y1)(0?7.5)(0?18)(0?8)(0?18)(0?8)(0?7.5)?0??1??2(8?7.5)(8?18)(?7.5?8)(?7.5?18)(?18?8)(?18?7.5)练习. 给定单调连续函数y=f(x)的函数值表如下