第二章多项式插值 (2)
- 格式:ppt
- 大小:1.04 MB
- 文档页数:48
第二章 插值法⏹ 多项式插值的存在性 ⏹ Lagrange 插值 ⏹ Newton 插值 ⏹ Hermit 插值 ⏹ 分段低次插值 ⏹ 三次样条插值在生产实践和科学研究所遇到的大量函数中,相当一部分是通过测量或实验得到的。
虽然其函数关系)(x f y =在某个区间[]b a ,是客观存在的,但是却不知道具体的解析表达式,只能通过观察、测量或实验得到函数在区间a ,b]上一些离散点上的函数值、导数值等,因此,希望对这样的函数用一个比较简单的函数表达式来近似地给出整体上的描述。
还有些函数,虽然有明确的解析表达式,但却过于复杂而不便于进行理论分析和数值计算,同样希望构造一个既能反映函数的特性又便于计算的简单函数,近似代替原来的函数。
插值法就是寻求近似函数的方法之一.在用插值法寻求近似函数的过程中,根据所讨论问题的特点,对简单函数的类型可有不同的选取,如多项式、有理式、三角函数等,其中多项式结构简单,并有良好的性质,便于数值计算和理论分析,因此被广泛采用。
本章主要介绍多项式插值、分段多项式插值和样条插值. 2.1 插值多项式的存在唯一性 2.1.1 插值问题设函数)(x f y =在区间],[b a 上有定义,且已知函数在区间],[b a 上n+1个互异点n x x x ,,,10 处的函数值)(i i x f y = i=0,1,…,n ,若存在一个简单函数)(x p y =,使其经过)(x f y =上的这n+1个已知点),(,),,(),,(1100n n y x y x y x (图5-1),即n i y x p i i ,,1,0 ,)( == (2.1.1)那么,函数)(x p 称为插值函数,点n x x x ,,,10 称为插值节点,],[b a 称为插值区间,求)(x p 的方法称为插值法,)(x f 称为被插函数。
若)(x p 是次数不超过n 的多项式,记为)(x p n ,即n n n x a x a a x p +++= 10)(则称)(x p n 为n 次插值多项式,相应的插值法称为多项式插值;若)(x p 为分段多项式,称为分段插值,多项式插值和分段插值称为代数插值。
在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。
许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。
如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。
这样的多项式称为拉格朗日(插值)多项式。
数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。
拉格朗日插值法最早被英国数学家爱德华·华林于1779年发现[1],不久后(1783年)由莱昂哈德·欧拉再次发现。
1795年,拉格朗日在其著作《师范学校数学基础教程》中发表了这个插值方法,从此他的名字就和这个方法联系在一起[2]。
对于给定的若n+1个点,对应于它们的次数不超过n 的拉格朗日多项式只有一个。
如果计入次数更高的多项式,则有无穷个,因为所有与相差的多项式都满足条件。
定义对某个多项式函数,已知有给定的k + 1个取值点:其中对应着自变量的位置,而对应着函数在这个位置的取值。
假设任意两个不同的x j都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为:其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:[3]拉格朗日基本多项式的特点是在上取值为1,在其它的点上取值为0。
存在性对于给定的k+1个点:,拉格朗日插值法的思路是找到一个在一点取值为1,而在其他点取值都是0的多项式。
这样,多项式在点取值为,而在其他点取值都是0。
而多项式就可以满足在其它点取值为0的多项式容易找到,例如:它在点取值为:。
由于已经假定两两互不相同,因此上面的取值不等于0。
于是,将多项式除以这个取值,就得到一个满足“在取值为1,而在其他点取值都是0的多项式”:这就是拉格朗日基本多项式。
唯一性次数不超过k的拉格朗日多项式至多只有一个,因为对任意两个次数不超过k的拉格朗日多项式:和,它们的差在所有k+1个点上取值都是0,因此必然是多项式的倍数。
第2章 插值法1、当x=1,-1,2时,f(x)=0,-3,4,求f(x)的二次插值多项式。
(1)用单项式基底。
(2)用Lagrange 插值基底。
(3)用Newton 基底。
证明三种方法得到的多项式是相同的。
解:(1)用单项式基底设多项式为:2210)(x a x a a x P ++=,所以:6421111111111222211200-=-==x x x x x x A 37614421111111424113110111)()()(222211200222221112000-=-=---==x x x x x x x x x f x x x f x x x f a 2369421111111441131101111)(1)(1)(12222112002222112001=--=--==x x x x x x x x f x x f x x f a 6565421111111421311011111)(1)(1)(12222112002211002=--=---==x x x x x x x f x x f x x f x a 所以f(x)的二次插值多项式为:2652337)(x x x P ++-= (2)用Lagrange 插值基底)21)(11()2)(1())(())(()(2010210-+-+=----=x x x x x x x x x x x l)21)(11()2)(1())(())(()(2101201------=----=x x x x x x x x x x x l)12)(12()1)(1())(())(()(1202102+-+-=----=x x x x x x x x x x x lLagrange 插值多项式为:372365)1)(1(314)2)(1(61)3(0)()()()()()()(22211002-+=+-⨯+--⨯-+=++=x x x x x x x l x f x l x f x l x f x L所以f(x)的二次插值多项式为:22652337)(x x x L ++-= (3) 用Newton 基底: 均差表如下:Newton 372365)1)(1(65)1(230))(](,,[)](,[)()(21021001002-+=+-+-+=--+-+=x x x x x x x x x x x x f x x x x f x f x N所以f(x)的二次插值多项式为:22652337)(x x x N ++-= 由以上计算可知,三种方法得到的多项式是相同的。
第二章插值法2.在区间[-1,1]上分别取n=10,20用两组等距节点对龙哥函数f(x)=1/(1+25*x^2)做多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。
(1)多项式插值①先建立一个多项式插值的M-file;输入如下的命令(如牛顿插值公式):function [C,D]=newpoly(X,Y)n=length(X);D=zeros(n,n)D(:,1)=Y'for j=2:nfor k=j:nD(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));endendC=D(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)))m=length(C);C(m)= C(m)+D(k,k);end②当n=10时,我们在命令窗口中输入以下的命令:clear,clf,hold on;X=-1:0.2:1;Y=1./(1+25*X.^2);[C,D]=newpoly(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.2:1;z=1./(1+25*xp.^2);plot(xp,z,'r')得到插值函数和f(x)图形:③当n=20时,我们在命令窗口中输入以下的命令:clear,clf,hold on;X=-1:0.1:1;Y=1./(1+25*X.^2);[C,D]=newpoly(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.1:1;z=1./(1+25*xp.^2);plot(xp,z,'r')得到插值函数和f(x)图形:(2)三次样条插值①先建立一个多项式插值的M-file;输入如下的命令:function S=csfit(X,Y,dx0,dxn)N=length(X)-1;H=diff(X);D=diff(Y)./H;A=H(2:N-1);B=2*(H(1:N-1)+H(2:N));C=H(2:N);U=6*diff(D);B(1)=B(1)-H(1)/2;U(1)=U(1)-3*(D(1));B(N-1)=B(N-1)-H(N)/2;U(N-1)=U(N-1)-3*(-D(N));for k=2:N-1temp=A(k-1)/B(k-1);B(k)=B(k)-temp*C(k-1);U(k)=U(k)-temp*U(k-1);endM(N)=U(N-1)/B(N-1);for k=N-2:-1:1M(k+1)=(U(k)-C(k)*M(k+2))/B(k);endM(1)=3*(D(1)-dx0)/H(1)-M(2)/2;M(N+1)=3*(dxn-D(N))/H(N)-M(N)/2;for k=0:N-1S(k+1,1)=(M(k+2)-M(k+1))/(6*H(k+1));S(k+1,2)=M(k+1)/2;S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2))/6;S(k+1,4)=Y(k+1);end②当n=10时,我们在命令窗口中输入以下的命令:clear,clcX=-1:0.2:1;Y=1./(25*X.^2+1);dx0= 0.0739644970414201;dxn= -0.0739644970414201; S=csfit(X,Y,dx0,dxn)x1=-1:0.01:-0.5;y1=polyval(S(1,:),x1-X(1));x2=-0.5:0.01:0;y2=polyval(S(2,:),x2-X(2));x3=0:0.01:0.5; y3=polyval(S(3,:),x3-X(3));x4=0.5:0.01:1;y4=polyval(S(4,:),x4-X(4));plot(x1,y1,x2,y2,x3,y3,x4,y4, X,Y,'.')结果如图:②当n=20时,我们在命令窗口中输入以下的命令:clear,clcX=-1:0.1:1;Y=1./(25*X.^2+1);dx0= 0.0739644970414201;dxn= -0.0739644970414201; S=csfit(X,Y,dx0,dxn)x1=-1:0.01:-0.5;y1=polyval(S(1,:),x1-X(1));x2=-0.5:0.01:0;y2=polyval(S(2,:),x2-X(2));x3=0:0.01:0.5; y3=polyval(S(3,:),x3-X(3));x4=0.5:0.01:1;y4=polyval(S(4,:),x4-X(4));plot(x1,y1,x2,y2,x3,y3,x4,y4, X,Y,'.')结果如图:第三章函数逼近与快速傅里叶变换2.试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线,用图示数据曲线及相应的三种拟合曲线。
第二章 插值法1.当1,1,2x =-时,()0,3,4f x =-,求()f x 的二次插值多项式。
解:0120121200102021101201220211,1,2,()0,()3,()4;()()1()(1)(2)()()2()()1()(1)(2)()()6()()1()(1)(1)()()3x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------==-+--则二次拉格朗日插值多项式为220()()k k k L x y l x ==∑0223()4()14(1)(2)(1)(1)23537623l x l x x x x x x x =-+=---+-+=+- 2.给出()ln f x x =的数值表用线性插值及二次插值计算的近似值。
解:由表格知,01234012340.4,0.5,0.6,0.7,0.8;()0.916291,()0.693147()0.510826,()0.356675()0.223144x x x x x f x f x f x f x f x ======-=-=-=-=-若采用线性插值法计算ln 0.54即(0.54)f , 则0.50.540.6<<2112122111122()10(0.6)()10(0.5)()()()()()x x l x x x x x x l x x x x L x f x l x f x l x -==----==---=+6.93147(0.6) 5.10826(x x =--- 1(0.54)0.62021860.620219L ∴=-≈-若采用二次插值法计算ln 0.54时,1200102021101201220212001122()()()50(0.5)(0.6)()()()()()100(0.4)(0.6)()()()()()50(0.4)(0.5)()()()()()()()()()x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x L x f x l x f x l x f x l x --==------==-------==----=++500.916291(0.5)(0.6)69.3147(0.4)(0.6)0.51082650(0.4)(0.5x x x x x x =-⨯--+---⨯--2(0.54)0.615319840.615320L ∴=-≈- 3.给全cos ,090x x ≤≤ 的函数表,步长1(1/60),h '== 若函数表具有5位有效数字,研究用线性插值求cos x 近似值时的总误差界。
第一章 误差1 问3.142,3.141,722分别作为π的近似值各具有几位有效数字?分析 利用有效数字的概念可直接得出。
解 π=3.141 592 65…记x 1=3.142,x 2=3.141,x 3=722.由π- x 1=3.141 59…-3.142=-0.000 40…知3411110||1022x π--⨯<-≤⨯ 因而x 1具有4位有效数字。
由π- x 2=3.141 59…-3.141=-0.000 59…知2231021||1021--⨯≤-<⨯x π因而x 2具有3位有效数字。
由π-722=3.141 59 …-3.142 85…=-0.001 26…知231021|722|1021--⨯≤-<⨯π因而x 3具有3位有效数字。
2 已知近似数x*有两位有效数字,试求其相对误差限。
分析 本题显然应利用有效数字与相对误差的关系。
解 利用有效数字与相对误差的关系。
这里n=2,a 1是1到9之间的数字。
%5101211021|*||*||)(|1211*=⨯⨯≤⨯≤-=+-+-n ra x x x x ε3 已知近似数的相对误差限为0.3%,问x*至少有几位有效数字?分析 本题利用有效数字与相对误差的关系。
解 a 1是1到9间的数字。
1112*10)1(2110)19(21102110003%3.0)(--⨯+≤⨯+⨯=⨯<=a x r ε 设x*具有n 位有效数字,令-n+1=-1,则n=2,从而x*至少具有2位有效数字。
4 计算sin1.2,问要取几位有效数字才能保证相对误差限不大于0.01%。
分析 本题应利用有效数字与相对误差的关系。
解 设取n 位有效数字,由sin1.2=0.93…,故a 1=9。
411*10%01.01021|*||*||)(-+-=≤⨯≤-=n r a x x x x ε解不等式411101021-+-≤⨯n a 知取n=4即可满足要求。
计算方法作业第二章插值1.(1(2)用二次Lagrange插值多项式求当X=0.15时Y的近似值。
(3)写出余项R(x)=f(x)-Pn(x)的表达式。
解:(1)Pn (x) =knknkjj jkj yxxxx)(00∑∏=≠=--n=3P 3(x)=321321))()(())()((yxxxxxxxxxxxx------+13121132))()(())()((yxxxxxxxxxxxx------+23212231))()(())()((yxxxxxxxxxxxx------+32313321))()(())()((yxxxxxxxxxxxx------x 0=0.0 x1=0.1 x2=0.2 x3=0.3y 0=0.0000 y1=0.0998 y2=0.1987 y3=0.2955P 3(x)=0000.0)3.00.0)(2.00.0)(1.00.0()3.0)(2.0)(1.0(⨯------xxx+0998.0)3.01.0)(2.01.0)(0.01.0()3.0)(2.0)(0.0(⨯------xxx+1987.0)3.02.0)(1.02.0)(0.02.0()3.0)(1.0)(0.0(⨯------xxx+2955.0)2.03.0)(1.03.0)(0.03.0()2.0)(1.0)(0.0(⨯------xxx(2) y(0.15) = P2(0.15) = 0.1494(3)R(x) = f(x)-Pn (x)=)!1()()1(++nf nξnk0=∏(x - x k)=!4)(4ξf(x – 0.0) (x – 0.1)(x – 0.2)(x – 0.3)第三章 方程求根5.求解方程12-3x+2cosx=0的迭代法n n x x cos 3241+=+(1)证明对于任意的x 0€R 均有*lim x x n x =∞→ (x *为方程的根)(2)取x 0=4,用此迭代法求方程根的近似值,误差不超过10-3,列出各次的迭代值。
第一章:数值分析与科学计算引论截断误差:近似 解与精确解之间的误差。
近似值的误差:(.为准确值):e*-x*-x近似值的误差限一: 1疋近似值相对误差(较小时约等)近似值相对误差限 :函数值的误差限 :苗⑺“ Ifool 叱)近似值;一士心:化叙…®)"八■有n 位有效数字:第二章:插值法P (对J =0.1/*%?] Oo + %呵+…+偽!曙=九 % +如股+…+ %!珥=Y1 % +舸斗1 +…+ %坊=儿 2•拉格朗日插值 (x- x k )6J n+1(x k ) .次插值基函数: (X- x)-(x-x fc -i)(x-曲十 1)…a — X JJ ) (Xk - X 0)-(X k - X k_i) (x k - x k¥1)-(x k - X…)1•多项式插值其中:P(x) = a()+ OjX + …+ a n ^I>k — O.L —.n = _xl(r -n+l引入记号:^n+l(X)={X-Xo)(A?-粗)…(#- Xj余项:=f(x} - SG)=:;:;詁+W > 5 e 3:3•牛顿插值多项式: ^nW = /(^0)+f 必珀("叼)+・”+/■[和巧严如(龙-坯”心-*_』〔阶均差(把中间去掉,分别填在左边和右边) :店”“皿]丿杯Fmr gd余项:4•牛顿前插公式(令心'小,计算点值,不是多项式):PQ +t h )=/o +帧 + 忖A 讥 + - + 心1)::*%°〔阶差分:AVo = A n "7i -余项:严(和E 3J5•泰勒插值多项式:•阶重节点的均差:6.埃尔米特三次插值:p (x ) -f (^X Q )十打和尤』仗—如+f 1叼公1也](JC-衍)(工一 Xi ) +人(尤-叼)(黑-衍)o — x 2)其中,A 的标定为:咋沪f (社)7.分段线性插值:第三章:函数逼近与快速傅里叶变换p n (x) = 7(X Q ) + f(x Q )(x -和)+ “•+警(U血屯“匈1.-:-属于’.维空间:5(玄)=。