第三章 插值法和最小二乘法 第三章 插值法和最小二乘法 3.1 插值法§ 3.2 插值多项式中的误差§ 3.3 分段插值法§ 3.4 Newton插值§ 3.5 Hermite插值§ 3.6 三次样条 插值§ 3.7 数据拟合§ 本章要点 用简单的函数 (如多项式函数 )作为一个 复杂函数的近似 ,最简单实用的方法就是 插值 ,而数据拟合则是另外一类的函数近 似问题 . 本章主要介绍有关插值法的一些基本概念 , 及多项式插值的基础理论和几个常用的插 值方法 :Lagrange插值 、 分段线性插值 、 Newton插值 、 Hermite插值和三次样条插值 在本章的最后介绍了拟合的最小二乘法 本章引例 : Hooker定律 定律 :一定范围内服从的作用下伸长弹簧在力 ker, HooxF 现在得到下面一组为弹性系数即成正比与 ,,, kkxFxF = 可以看出 ,如图坐标下作图并在如表数据 ).(),(),(, FxFx 试由数据确定律就不服从达到一定数值后当 .ker, HooF .ker, 定律时的近似公式并给出不服从定 Hook 1.216.206.198.186.157.116.69.35.1)( 1715131297421)( kgF cmx 0 2 4 6 8 10 12 14 16 18 0 5 10 15 20 25 力 F 伸 长 x 3.1 插值法§ 且不利于在计算机上其函数形式可能很复杂对函数 ,),(xf 个不同的点上的一组 在区间可以获得量假如可以通过实验或测运算 1 ],[)(,, +n baxf bxxxxa n ≤<<<<≤ L210 nixfy ii ,,2,1,0),( L==上的函数值 能否存在一个性能优良 、 便于计算的函数 满足比如多项式函数 ),(xP 一 、 插值问题 niyxP ii ,,2,1,0)( L== )()( xfxP 近似代替并且用 ------(1) 这就是插值问题 , (1)式为插值条件 , 的插值函数为函数称函数 )()( xfxP 则称之为插值多项式为多项式函数如果 ,)(xP 称为插值节点点 ,,,2,1,0, nixi L= 称为插值区间区间 ],[ ba 个等分点上若给定如函数 5],0[,sin pxy = 其插值函数的图象如图 0 0.5 1 1.5 2 2.5 3 3.5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 sinx的 插 值 x y 的 插 值 x yyy )()( xPxf 和插值函数对于被插函数 处的函数值必然相等在节点 ix )()( xfxP 的值可能就会偏离但在节点外 必然存在着误差近似代替因此 )()( xfxP 二 、 代数插值多项式的存在唯一性 整体误差的大小反映了插值函数的好坏 为了使插值函数更方便在计算机上运算 ,一般插值函 数都使用代数多项式和有理函数 本章讨论的就是代数插值多项式 上的代数插值多项式为在区间设函数 ],[)( baxfy = n nn xaxaxaaxP ++++= L 2 210)( 且满足 niyxP iin ,,2,1,0)( L== --------(2) --------(3) 满足线性方程组的系数即多项式 nn aaaaxP ,,,,)( 210 L 00 2 02010 yxaxaxaa n n =++++ L 11 2 12110 yxaxaxaa n n =++++ L n n nnnn yxaxaxaa =++++ L 2 210 LLLL?? ? ??? ? --------(4) 上述方程组的系数行列式为 n+1阶范德蒙 ( Vandermond) 行列式 n nnn n n xxx xxx xxx V L LLLLL L L 2 1 2 11 0 2 00 1 1 1 = ∏ ∏ ? = += ?= 1 0 1 )( n i n ij ij xx ji xx ≠≠ 0 定理 1. 由 Cramer法则 ,线性方程组 (4)有唯一解 n nn xaxaxaaxP ++++= L 2 210)( niyxP iin ,,2,1,0)( L== --------(2) --------(3) ),( jixx ji ≠≠若插值节点 则满足插值条件 的插值多项式 存在且唯一 . 虽然线性方程组 (4)推出的插值多项式存在且唯一 但通过解 线性方程组 (4)求插值多项式却不是好方法 三 、 Lagrange插值多项式 维的间是的多项式构成的线性空所有次数不超过 n 1+n 根据线性空间的理论 个多项式组成维线性空间的基底也由这个 11 ++ nn 并且形式不是唯一的 表示次多项式可由基底线性而任意一个 n 且在不同的基底下有不同的形式 维线性空间的一个基底为上述设 1)(,),(),( 10 +nxxx njjj L 线性表示可由次多项式且任意 )(,),(),()( 10 xxxxPn nn jjj L 线性无关显然 )(,),(),( 10 xxx njjj L )()()()( 1100 xaxaxaxP nnn jjj +++= L 的插值函数为某个函数如果 )()( xfxPn 为插值基函数则称 )(,),(),( 10 xxx njjj L --------(5) niyxP iin ,,2,1,0)( L== -------(6)且满足 (1)式 为插值节点其中 nixi ,,2,1,0, L= nixfy ii ,,2,1,0)( L== 上的一组节点为区间如果 ],[210 babxxxxa n ≤<<<<≤ L njxln j ,,2,1,0),( L=次多项式我们作一组 )())(())(( )())(())(()( 1110 1110 njjjjjjj njj j xxxxxxxxxx xxxxxxxxxxxl ????? ?????= +? +? LL LL ∏ ≠ = ? ?= n ji i ij i xx xx 0 )( )( nj ,,2,1,0 L= -------(7) )())(( 10 nxxxxxx ??? L=+ )(1 xnw令 =′+ )(1 jn xw则 )())(())(( 1110 njjjjjjj xxxxxxxxxx ????? +? LL n+1次多项式 )())(())(( )())(())(()( 1110 1110 njjjjjjj njj j xxxxxxxxxx xxxxxxxxxxxl ????? ?????= +? +? LL LL nj ,,2,1,0 L= -------(7') 且 )( ij xl ??? ≠== ji ji01 nji ,,2,1,0, L= -------(8) 线性无关显然 )(,),(),(),( 210 xlxlxlxl nL ))(( )( 1 1 jjn n xxx x ?′= + + w w 从而 的插值基函数作如果用 )()(,),(),(),( 210 xfyxlxlxlxl n =L 则的插值多项式为而 ,)()( xfxPn )()()()( 1100 xlaxlaxlaxP nnn +++= L 为待定参数、、、其中 naaa L10 )( in xP niyxf ii ,,2,1,0)( L===令 即 ∑ = n j ijj xla 0 )( niyi ,,2,1,0 L== 由 (8)式 ,可得 niya ii ,,2,1,0 L== -------(9) -------(10) 为记为项式为插值基函数的插值多 以上在节点于是 ))(( ),,1,0()(,),,1,0()(, xL nixlnixxfy n ji LL === )()()()( 1100 xlyxlyxlyxL nnn +++= L )(xl j ∏ ≠ = ? ?= n ji i ij i xx xx 0 )( )(其中 -------(7,7') -------(11) 插值多项式的为式称 LagrangexfyxLn )()()11( = 插值基函数次为称 Lagrangennixl j ),,1,0()( L= ))(( )( 1 1 jjn n xxx x ?′= + + w w 例 1: 15)225(,13)169(,12)144()( === fffxf 满足已知 .)175(,)( 的近似值并求插值多项式的二次作 fLagrangexf 解 : 225,169,144 210 === xxx设 )(0 xl 插值基函数为的二次则 Lagrangexf )( ))(( ))(( 2010 21 xxxx xxxx ?? ??= 2025 )225)(169( ??= xx )(1 xl ))(( ))(( 2101 20 xxxx xxxx ?? ??= 1400 )225)(144( ? ??= xx )(2 xl ))(( ))(( 1202 10 xxxx xxxx ?? ??= 4536 )169)(144( ??= xx 15,13,12 210 === yyy 插值多项式为的二次因此 Lagrangexf )( )()()()( 2211002 xlyxlyxlyxL ++= 且 )175(f )175(2L≈ )175(15)175(13)175(12 210 lll ++= 73158230.13= 在例 1中 ,如果只给出两个节点 169和 225,也可以作插值 多项式 ,即 1次 Lagrange插值多项式 ,有两个插值基函数 , 这种插值方法称为 Lagrange线性 插值 ,也可以在 n+1个 节点中取相邻的两个节点作线性插值 11 ,,, ++ kkkk yyxx 函数值节点 Lagrange线性插值基函数为 )(xlk 1 1 + + ? ?= kk k xx xx )( 1 xlk + kk k xx xx ? ?= +1 Lagrange线性插值多项式为 )()()( 111 xlyxlyxL kkkk +++= 1 1 + + ? ?= kk k k xx xxy kk k k xx xxy ? ?+ + + 1 1 参见图 例 2. ).175(1 fLagrange 中的线性插值多项式求例用 之间与在由于插值点 225169175 21 === xxx解 : 为插值节点与因此取 225169 21 == xx )(1 xl 21 2 xx xx ? ?= 56 225 ? ?= x )( 2 xl 12 1 xx xx ? ?= 56 169?= x Lagrange插值基函数为 Lagrange线性插值多项式为 )()()( 22111 xlyxlyxL += 5622513 ???= x 56 16915 ??+ x )175(f 5622517513 ???≈ 5616917515 ??+ 71285214.13= 所以 Lagrange插值多项式的缺点 : 插值基函数计算复杂 高次插值的精度不一定高