数值分析例题 下载本文

例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)的函数值表如下