数值分析报告班级:专业:流水号:学号:姓名:常用的插值方法序言在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。
插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。
早在6世纪,中国的刘焯已将等距二次插值用于天文计算。
17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。
在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。
插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上 n+1个互不相同点x0,x1 (x)n处的值是f(x),……f(xn),要求估算f(x)在[a,b〕中某点的值。
其做法是:在事先选定的一个由简单函数构成的有n+1个参数C,C 1,……Cn的函数类Φ(C,C1,……Cn)中求出满足条件P(xi)=f(xi)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。
此处f(x)称为被插值函数,x0,x1,……xn称为插值结(节)点,Φ(C0,C1,……Cn)称为插值函数类,上面等式称为插值条件,Φ(C0,……Cn)中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为插值余项。
求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。
一.拉格朗日插值1.问题提出:已知函数()y f x =在n+1个点01,,,n x x x 上的函数值01,,,n y y y ,求任意一点x '的函数值()f x '。
说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。
2.解决方法:构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则用()n P x '作为函数值()f x '的近似值。
设()2012n n n P x a a x a x a x =++++,构造()n P x 即是确定n+1个多项式的系数012,,,,n a a a a 。
3.构造()n P x 的依据:当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数()n P x 逼近于原来的函数()f x 。
根据这个条件,可以写出非齐次线性方程组:20102000201121112012n n n n n n n n n na a x a x a x y a a x a x a x y a a x a x a x y ⎧++++=⎪++++=⎪⎨⎪⎪++++=⎩其系数矩阵的行列式D 为范德萌行列式:()2000211102111n n ijn i j nnn n x x x x x x D x x x x x ≥>≥==-∏故当n+1个点的横坐标01,,,n x x x 各不相同时,方程组系数矩阵的行列式D 不等于零,故方程组有唯一解。
即有以下结论。
结论:当已知的n+1个点的横坐标01,,,n x x x 各不相同时,则总能够构造唯一的n次多项式函数()n P x ,使()n P x 也过这n+1个点。
4.几何意义5.举例:已知函数()f x ()115f 。
分析:本题理解为,已知“复杂”函数()f x x=81,100,121,144时,其对应的函数值为:y=9,10,11,12,当x=115时,求函数值()115f 。
解:(1)线性插值:过已知的(100,10)和(121,11)两个点,构造1次多项式函数()1P x ,于是有()11211001011100121121100x x P x --=⨯+⨯--则()()111511510.71428571428572f P ≈=。
(2)抛物插值:构造2次多项式函数()2P x ,使得它过已知的(100,10)、(121,11)和(144,12)三个点。
于是有2次拉格朗日插值多项式:()()()()()()()()()()()()()2121144100144100121101112100121100144121100121144144100144121x x x x x x P x ------=⨯+⨯+⨯------则有()()2115115f P ≈=10.72275550536420 6.拉格朗日n 次插值多项式公式:()()()()()()()()()()()()()()()()()()()1200102002110121011011n n n n n n nn n n n x x x x x x P x y x x x x x x x x x x x x y x x x x x x x x x x x x y x x x x x x -----=------+---+---+---()()()()()00110nn n n k k k P x l x y l x y l x y l x y ==+++=∑其中()k l x 称为基函数(k=0,1,….,n ),每一个基函数都是关于x 的n 次多项式,其表达式为:()0nj k j k jj kx x l x x x =≠-=-∏拉格朗日公式特点:1.把每一点的纵坐标k y 单独组成一项;2.每一项中的分子是关于x 的n 次多项式,分母是一个常数;3.每一项的分子和分母的形式非常相似,不同的是: 分子是()x -,而分母是()k x -7.误差分析(拉格朗日余项定理)()()()()()()11!n nn k k f P x f x x x n ξ+=-=-+∏, 其中ξ在01,,,,n x x x x 所界定的范围内。
针对以上例题的线性插值,有()()()()()11151151151001151212!f P f ξ''-=--函数()f x ''在[100,115]区间绝对值的极大值为()4100 2.510f -''=⨯, 则有:()()11151150.011250.05P f -≤<于是近似值()()111511510.71428571428572f P ≈=有三位有效数字。
针对以上例题的抛物线插值,有()()()()()()21151151151001151211151443!f P f ξ'''-=--- 函数()f x '''在[100,115]区间绝对值的极大值为()6100 3.7510f -'''=⨯,则有()()21151150.00163125<0.005P f -≤于是近似值()()2115115f P ≈=10.72275550536420有四位有效数字。
8.拉格朗日插值公式的优点公式有较强的规律性,容易编写程序利用计算机进行数值计算。
9. 拉格朗日插值通用程序 程序流程图如下:y文件lagrange.m如下:%拉格朗日插值close alln=input('已知的坐标点数n=?');x=input('x1,x2,...,xn=?');y=input('y1,y2,...,yn=?');xx=input('插值点=?');syms t %定义t为符号量p=0;for k=1:nl=1;for j=1:k-1l=l*(t-x(j))/(x(k)-x(j));endfor j=k+1:nl=l*(t-x(j))/(x(k)-x(j));endp=p+l*y(k);endp=inline(p); %把符号算式p变为函数形式fplot(p,[min(min(x),xx)-1,max(max(x),xx)+1]); %画多项式函数hold onp(xx) %显示插值点plot(x,y,'o',xx,p(xx),'*'); %画已知点和插值点在MATLAB命令窗口输入:lagrange然后有以下对话过程和结果,已知的坐标点数n=?6x1,x2,...,xn=?[1,3,5,7,9,11]y1,y2,...,yn=?[-1,20,0,-1,12,3]插值点=?8ans =5.67187500000000有以下图形:二.牛顿插值拉格朗日插值的缺点:无承袭性(继承性)若算出3点的抛物插值精度不够,再进行4点的3次多项式插值时,必须从头算起,前面算出的3点抛物插值的计算结果不能利用。
而泰勒插值却是具有承袭性的,如线性插值的结果不精确,那么再加上一项,就变成了泰勒抛物插值,如:泰勒1次插值:()()()()1000P x f x f x x x '=+- 泰勒2次插值:()()()()()()20200002!f x P x f x f x x x x x '''=+-+-。
而牛顿插值就是具有承袭性的插值公式 1.差商的概念设n+1个点01,,,n x x x 互不相等,则定义:i x 和()j x i j ≠两点的一阶差商为:()(),i j i j i jf x f x f x x x x -⎡⎤=⎣⎦-i x ,,j k x x 三点的二阶差商为:,,,,i j j k i j k i kf x x f x x f x x x x x ⎡⎤⎡⎤-⎣⎦⎣⎦⎡⎤=⎣⎦- i x ,,,j k l x x x 四点的三阶差商为:,,,,,,,i j k j k l i j k l i lf x x x f x x x f x x x x x x ⎡⎤⎡⎤-⎣⎦⎣⎦⎡⎤=⎣⎦- …… n+1个点01,,,n x x x 的n 阶差商为:[][][]01112010,,,,,,,,,n n n nf x x x f x x x f x x x x x --=-差商具有对称性:,,i j j i f x x f x x ⎡⎤⎡⎤=⎣⎦⎣⎦;,,,,i j k j i k f x x x f x x x ⎡⎤⎡⎤=⎣⎦⎣⎦ 2.牛顿插值解决的问题与拉格朗日插值解决的问题相同 只是表述 n 次多项式()n P x 的公式不同。
3.牛顿插公式的推导 根据差商的概念,有:()()[]()000,f x f x f x x x x =+-…………………[]0,f x x 是0,x x 两点的一阶差商; [][][]()001011,,,,f x x f x x f x x x x x =+-……[]01,,f x x x 是01,,x x x 三点的二阶差商; ……[][][]()010101,,,,,,,,,,n n n n f x x x f x x x f x x x x x x -=+-把以上各式从后向前逐次代入,可以得到:()()[]()[]()()[]()()()[]()()()001001201010110101,,,,,,,,,,n n n n f x f x f x x x x f x x x x x x x f x x x x x x x x x f x x x x x x x x x x -=+-+--++---+---()()()n n f x P x R x =+ 其中()()[]()[]()()[]()()()00100120101011,,,,,,n n n P x f x f x x x x f x x x x x x x f x x x x x x x x x -=+-+--++---()[]()()()0101,,,,n n n R x f x x x x x x x x x x =---以上()n P x 的表达式称为牛顿插值公式,可以证明,n 次牛顿插值多项式与n 次拉格朗日插值多项式完全相同,只是表达形式不同。