Lagrange插值多项式
第二节 插值多项式的构造
π
π
π
π
l1 ( x ) =
− 1296
π4
1296
x( x −
π
4
)( x −
π
3
)( x −
π
2
)
l2 ( x) =
l3 ( x ) = −
π
4
x( x −
π
6
)( x −
π
4
)( x −
π
2
)
x( x − )( x − )( x − ) π 6 3 2 144 π π π l4 ( x ) = 4 x ( x − )( x − )( x − ) π 6 4 3
x − x1 x − x0 + y1 x0 − x1 x1 − x0
解 :f ( x ) = ln x , x 0 = 1 0 , x1 = 1 1, x = 1 0 .5
10.5 − 11 10.5 − 10 ln(10.5) ≈ P(10.5) = × 2.303 + × 2.398 = 2.350 5 10 − 11 11 − 10
f ( n +1) (ξ ) ω n +1 ( x ) ξ ∈ [ a , b ] 截 断 误 差 :R n ( x ) = f ( x ) − Pn ( x ) = ( n + 1)! ω n +1 ( x ) = ( x − x 0 )( x − x1 ) ⋯ ( x − x n )
(1)n = 1 时线性插值 在两个互异节点x0 , x1处的函数 值y0 , y1 , 构造线性函数 p1 ( x) = a0 + a1 x 求出p1 ( x) = y0l0 ( x) + y1l1 ( x) x − x0 x − x1 其中l0 ( x) = ,l1 ( x) = x0 − x1 x1 − x0
研究生数值分析(14)拉格朗日(Lagrange)插值多项式 共22页PPT资料
事实上,
s5 i0 n 0 L 1 (5 ) 0 0 .01 ; s 05 i0 1 n 0 L ~ 1 ( 0 5 ) 0 0 .005
因此做线性内插时取 x00.2,x10.3 相应地 y01 .2 2 1 4 ,y11 .3 4 9 9
由线性插值公式,得
L 1 (x ) 0 x .2 0 0 .3 .3 1 .2 2 1 4 0 x .3 0 0 .2 .2 1 .3 4 9 9
所得近似值为
e 0 . 2 8 5 L 1 ( 0 . 2 8 5 ) 0 0 . 2 . 2 8 5 0 0 . 3 . 3 1 . 2 2 1 4 0 0 . 2 . 3 8 5 0 . 0 2 . 2 1 . 3 4 9 9 1 . 3 3 0 6
由线性插值余项公式
所以
s in 5 0 0 L 1 ( 5 0 ) 1 2 2 3 ( 1 8 0 )2 2 0 5 0 .0 1 3 1 9 0
同理,由
s5 i 0 n L ~ 0 1 ( 5 ) 1 2 0 ( s) i1 n ( ) 2 ( 8 5 4 0 0 ) 5 5 ( 6 0 )3 0 0 0 6 0
插值多项式⑤称为拉格朗日插值多项式,记作 L n ( x )
当n=2时,由⑤式可得三点插值公式
L 2 ( x ) y 0 ( ( x x 0 x x 1 1 ) ) ( ( x x 0 x x 2 2 ) ) y 1 ( ( x x 1 x x 0 0 ) ) ( ( x x 1 x x 2 2 ) ) y 2 ( ( x x 2 x x 0 0 ) ) ( ( x x 2 x x 1 ) 1 ) 这是一个二次函数。用二次函数 L 2 ( x ) 近似
第5章 实四Lagrange插值多项式
第5章 实验四Lagrange 插值多项式实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。
5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)()()(,)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n ij j j i j i n i i i 。
其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。
)(x l i 的这种表示具有较好的对称性。
公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。
(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。
5.2 Lagrange 插值多项式源代码I% 功能: 对一组数据做Lagrange 插值 % 调用格式:yi=Lagran_(x,y,xi) % x,y 数组形式的数据表 % xi:待计算y 值的横坐标数组 % yi 用Lagrange 插值算出的y 值数组 function fi=Lagran_(x,f,xi)fi=zeros(size(xi)); np1=length(f); for i=1:np1z=ones(size(xi)); for j=1:np1if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end endfi=fi+z*f(i); end return例5.1 已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。
写出这4个数据点的Lagrange 插值公式,并计算出横坐标xi=[2.101,4.234]时对应的纵坐标。
解:4个数据点的Lagrange 插值公式为:)9.36.1(*)7.26.5(*)6.16.5()9.3(*)7.2)(6.1(*94.2)6.59.3(*)7.29.3(*)6.19.3()6.5(*)7.2(*)6.1(*9.3)6.57.2(*)9.37.2(*)6.17.2()6.5(*)9.3(*)6.1(*22.4)6.56.1(*)9.36.1(*)7.26.1()6.5(*)9.3(*)7.2(*3.3)(3------+------+------+------=x x x x x x x x x x x x x L清单5.1 clearx=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; yi=Lagran_(x,y,xi); xx=1.5:0.05:6.5; yy=Lagran_(x,y,xx); plot(xx,yy,x,y,'o')其结果为:yi =1.0596 6.6457xg (x ):-, d a t a p o i n t s :o图5.1 插值多项式曲线图5.3 Lagrange插值多项式源代码II% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。
Lagrange插值多项式
Y=sin(X),
Matlap 中没有现成的 Lagrange 插值函数 Ln( x) yk lk ( x) ,所以先编写一个 M 文件实现 Lagrange 插值。 设 n 个节点数据以数组 x, y 输入, 输入我们想求的 x0, 就可获得结果 z。 以 y=sin(x)为例, 取[-pi, pi], 节点为 X=-pi:0.1:pi, Y=sin(X), 画出 Lagrange 插值多项式的图像和被插值函数的图像,观察两个函数的拟合程度。 三、 计算过程 (1) 实现 lagrange 插值多项式函数程序如下: function z=lagrange(x,y,x0) n=length(x); s=0; l=1; for i=1:n; for j=1:n if j~=i; l=l*(x0-x(j))/(x(i)-x(j)); end end s=s+l*y(i) end z=s; (2)m文件调用lagrange插值函数 x=-pi:0.1:pi;y=sin(x);plot(x,y,'r') hold on x0=-3:0.1:3; y1=[]; n=length(x0); for i=1:n z=lagrange(x,y,x0(i)); y1=[y1,z]; end
问题的分析涉及的理论知识与求解的方法等matlap中没有现成的lagrange插值函数所以先编写一个m文件实现lagrange个节点数据以数组xy输入输入我们想求的x0就可获得结果z
实验报告一
班级: 数学与应用数学
学号:
姓名:
成绩:
一、 实验问题 编写一个函数实现 Lagrange 插值多项式, 要求 (1)输入: 节点 X, 及节点上的函数值 Y, 某个数 x, 输出: 输出 x 对应的 Lagrange 插值多项式的值。 (2)以 y=sin(x)为例, 取[-pi, pi], 节点为 X=-pi:0.1:pi, 画出 Lagrange 插值多项式的图像和被插值函数的图像。 二、 问题的分析(涉及的理论知识与求解的方法等)
多项式插值_Lagrange插值
l1( x)
(x ( x1
x0 x0
)( )(
x x2) x1 x2 )
l2
(
x)
(x ( x2
x0 x0
)( )(
x x1 ) x2 x1 )
则有
l j ( xi
)
ij
1, 0,
i j i j
称 l0(x) , l1(x),l2(x)为二次插值多项式的基函数。
An
(
xn
x0 )(
xn
yn x1)( xn
xn1 )
将
A0
(
x0
x1 )(
x0
y0 x2 )(x0
xn )
A1
(
x1
x0
)(
x1
y1 x2
)(
x1
xn
)
代入下式:
,
An
(xn
x0
)(
xn
yn x1 )(
xn
xn1 )
Ln(x) A0(x x1)( x x2 )(x xn ) A1(x x0 )( x x2 )(x xn )
xi yi
x0 y0
x1 y1
求解 L1(x)=a1 x+a0
使得 f(x) ≈ L1(x), x ∈[x0 , x1].
根据点斜式得到
L1( x)
y0
y1 x1
y0 x0
(x
x0 )
拉格朗日插值多项式推导
拉格朗日插值多项式是一种近似函数,它可以通过给定一组离散数据点,来估算出其他数据点的值。
拉格朗日插值多项式是由18世纪法国数学家Joseph-Louis Lagrange提出的,他是一位杰出的数学家和物理学家。
拉格朗日插值多项式的推导可以从一个简单的例子开始。
假设我们有一组离散的数据点{(x1, y1), (x2, y2), …, (xn, yn)},我们想要通过这些点来拟合一个函数,使得在这些点上的函数值与给定的数据点相等。
首先,我们假设要拟合的函数是一个n-1次多项式:P(x) = a0 + a1x + a2x^2 + … + an-1x^n-1我们的目标是找到多项式中的系数a0, a1, …, an-1,使得在给定的数据点上函数值与数据点的y值相等。
根据插值的思想,我们希望在每个数据点上函数值与给定的数据点相等,即对于每个数据点(xi, yi)都满足:P(xi) = yi我们可以将这个条件用一个方程表示出来。
将插值多项式代入方程中,我们得到:a0 + a1xi + a2xi^2 + … + an-1xi^n-1 = yi现在我们有n个方程,通过解这个方程组,我们可以求解出多项式的系数。
为了方便求解,我们引入拉格朗日基函数。
拉格朗日基函数Li(x)的定义是一个n 次多项式,它可以满足以下条件:1.对于所有的i≠j,Li(xj) = 02.Li(xi) = 1根据拉格朗日基函数,我们可以将插值多项式表示为:P(x) = L0(x)y0 + L1(x)y1 + … + Ln-1(x)yn-1其中Li(x)可以表示为:Li(x) = (x - x0)(x - x1)…(x - xi-1)(x - xi+1)…(x - xn-1) / (xi - x0)(xi - x1)…(xi - xi-1)(xi - xi+1)…(xi - xn-1)现在我们可以使用拉格朗日基函数来表示插值多项式,并求解多项式的系数。
Lagrange插值多项式
1
lk (x)
1
lk 1 ( x)
o
xk
xk 1
x
o
xk
xk 1
x
(2) n 2 :已知 f ( xk 1 ) yk 1 ,f ( xk ) yk ,f ( xk 1 ) yk 1 , 求L2 ( x) , L2 ( xi ) yi ,i k 1 ,k ,k 1 ; 即求过 ( xk 1 ,yk 1 ) ,( xk ,yk ) ,( xk 1 ,yk 1 ) 的抛物线; 考虑L2 ( x) lk 1 ( x) yk 1 lk ( x) yk lk 1 ( x) yk 1,其中li ( x) 为二次多项式,且满足: 1 ,i j li ( x j ) ij ,i ,j k 1 ,k ,k 1 ; 0 ,i j 易得:lk 1 ( x) A( x xk )( x xk 1 ) ,再由lk 1 ( xk 1 ) 1 ,
—六位有效
高度(m) 0 100 300 1000 1500 2000 . 压强 (kgf/m2) 0.9689 0.9322 0.8969 0.8515 0.7984 0.7485
试用二次插值法求1200米处的压强值.
解:设x为高度,y为大气压强的值, 选取(1000,0.8515) ,(1500,0.7984), (2000,0.7485)三点构造二次插 值多项式 (x-x1)(x-x2) (x-x0)(x-x2) (x-x0)(x- x1) p2(x)=------------------ y0 + --------------- y1 + --------------- y2 (x0-x1)(x0-x2) (x1-x0)(x1-x2) (x2-x0)(x2-x1) 代入已知的数值,得 p2(1200)=0.8515(1200-1500)(12002000)/(1000-1500)(1000-2000)+0.7984(1200-1000)(12002000)+0.7485(1200-1000)(1200-1500)/(2000-1000)(20001500)=300*800*0.8515/500/1000+200*800*0.7984/500/500200*300*0.7485/500/1000=0.82980 所以 y(1200) p2(1200)= 0.82980 (kgf/m2)
数值分析Lagrange插值多项式
其余的将M值及f2[x_]修改即可,得到插值函数修改分f3[x_]即可。
1 n+1 !
f
n+1
(εx )
n i=0(x
− xi )
其中 εx 为区间内一点
但 Lagrange 插值法没有承接性,可以进行改良。
【Lagrange 插值算法描述】 1. 对给定函数选取其区间上的一系列节点并计算其函数值,得到点列 (x0 , y0 ),…,( xn , yn ); 2. 通过上述点列构造 Lagrange 基函数li x = 出 Lagrange 插值函数Ln x =
【实验】 通过 Mathematica 编写程序得到如下结果: N=5: 1. 取xi = 5 −
10 N
i , i = 0,1, … ,N 得到:
(1) 插值点为:
(2) 由上述插值点构造出 Lagrange 插值函数:
(3)由题目所给出的条件计算误差得到:
插值函数与原函数的图像为:
其中蓝色为原函数图像,红色为插值函数图像,可以看出在 0 点误差最大,与 我们的计算结果相吻合。
n k=0 yk lk (x); n x −x i j=0 x −x i j j ≠i
,并由该基函数构造
3. 由多项式插值误差定理来估计其误差: f x −p x =
1 n+1 !
f
n+1
(εx )
n i=0(x
− xi )
其中 εx 为区间内一点
但此题有自己的估计误差的要求,则我们依照题意估计误差。
n x −x i j=0 x −x i j j ≠i
,
li x = δij
n k=0 yk lk (x)
来构造 Lagrange 插值多项式: Ln x =
拉格曼公式
拉格朗日插值多项式(Lagrange Interpolation Polynomial)是一种用于在已知数据点之间进行插值的方法。
它可以用一个简单的公式表示如下:
假设有n+1个互不相同的数据点(x0, y0), (x1, y1), ..., (xn, yn),其中xi和yi分别是已知的数据点的横纵坐标。
那么拉格朗日插值多项式可以表示为:
L(x) = Σ(yi * li(x))
其中,i从0到n,li(x)是拉格朗日基础多项式(Lagrange basis polynomial),其表达式为:
li(x) = Π[(x - xj) / (xi - xj)], j ≠ i
在这个公式中,Σ表示求和运算,Π表示连乘运算。
这样得到的L(x)就是通过拉格朗日插值法得到的插值多项式。
需要注意的是,拉格朗日插值多项式在实际应用中可能会因为龙格现象(Runge's phenomenon)而导致插值结果出现震荡,因此在实际工程中可能会考虑其他插值方法或者对数据进行适当处理来减少这种影响。
多项式插值,Lagrange插值,Lagrange反插值,牛顿插值
数学软件实验任务书实验一 多项式插值1实验原理()y f x =在区间[,]a b 上的1n +个互异点01n a x x x b =<<= 出得值为012,,,,n y y y y ,存在次数不超过n 的多项式:2012()n n n P x a a x a x a x =++++使得满足条件:()()n i i p x f x =2 数据来源X=[1 1.4 1.8 2.0]Y=[-2 -0.8 0.4 1.2]3 实验程序clcclear allX=[1 1.4 1.8 2.0];Y=[-2 -0.8 0.4 1.2]';n=length(X);A=zeros(n,n);for i=1:nfor j=1:n-1A(i,j+1)=X(i)^j;endendB=zeros(n,1);for i=1:nB(i,1)=1;endA(:,1)=B;A1=A;%%%%%%%%范德蒙行列式a=inv(A1)*Ysyms x;f=a(1)+a(2)*x+a(3)*x^2+a(4)*x^3%%%%%检验subs(f,1)4 实验结果%%%%%%%%%%多项式系数a =-9.200012.5333-7.00001.666723()0.9212.537 1.67f x x x x =-+-+%%%%%%%%%%%%%%%代入1x =检验subs(f,1)ans =-2.000000003实验二 Lagrange 插值1 实验原理通过平面上不同两点可以确定一条直线经过这两点,这就是拉格朗日线性插值问题,对于不在同一条直线的三个点得到的插值多项式为抛物线。
这里给出一般的插值公式,拉格朗日插值的基多项式为:10(),0,1,2,,n i j i jj i x x l x i n x x =≠-==-∏ 有了基函数以后就可以直接构造插值多项式,插值多项式为:0()()nn i i i p f x l x ==∑2 数据来源X=[0 1 2 4]Y=[1 9 23 3]3 实验程序function laglange(X,Y,x0)syms xn=length(X);w=1;for i=1:nw=w*(x-X(i));enda=diff(w,x);f=0;for i=1:nb=w/(x-X(i));l=b/(subs(a,x,X(i)));f=f+l*Y(i);endf=expand(f)%subs(f,x,x0)sprintf('f(%f)=%f',x0,subs(f,x,x0))end4 实验结果运行程序在Matlab 窗口显示f =3 2- 11/4 x + 45/4 x - 1/2 x + 1 即:3211451()1442f x x x x =-+-+ 实验三 牛顿插值1 实验原理函数()f x 的差商定义为:[]()k k f x f x =111[][][,]k k k k k kf x f x f x x x x ----=-111[,,][,,][,,,]k j k k j k k k j k k k j f x x f x x f x x x x x -+------=-下面给出牛顿插值多项式为:001001011()[][,]()[,,,]()()()n n n N x f x f x x x x f x x x x x x x x x -=+-++---如果记:011()()(),1,2,,k k w x x x x x x k n -=---=则牛顿插值可以表达为: 001101()[][,][,,,]n n n N x f x f x x w f x x x w =+++2 数据来源X=[1.0 1.3 1.6 1.9 2.2]Y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623] 3 实验程序1 计算差商表程序clcclearX=[1.0 1.3 1.6 1.9 2.2];Y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623]; f0=Y;n=length(X);f=zeros(n);f(1,:)=Y;for i=1:n-1f(2,i)=(f0(i+1)-f0(i))/(X(i+1)-X(i))endfor k=2:n-1for i=1:n-kf(k+1,i)=(f(k,i+1)-f(k,i))/(X(k+i)-X(i)) endend2 牛顿差值程序function s=niudun(x,y,t)syms p;s=y(1);xishu=0;dxs=1;n=length(x);%%构造牛顿插值方法for(i=1:n-1)for(j=i+1:n)xishu(j) = (y(j)-y(i))/(x(j)-x(i));endtemp1(i)=xishu(i+1);dxs=dxs*(p-x(i));s=s+temp1(i)*dxs;y=xishu;endsimplify(s)end4 实验结果差商表:f =0.7652 0.6201 0.4554 0.2818 0.1104-0.4837 -0.5489 -0.5786 -0.5715 0-0.1087 -0.0494 0.0118 0 00.0659 0.0681 0 0 00.0018 0 0 0 0在命令窗口输入x=[1.0 1.3 1.6 1.9 2.2];y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623]; yt=niudun(x,y,1.5)得到结果yt =[0.5118199945]。
拉格朗日(Lagrange)插值算法
拉格朗⽇(Lagrange)插值算法拉格朗⽇插值(Lagrange interpolation)是⼀种多项式插值⽅法,指插值条件中不出现被插函数导数值,过n+1个样点,满⾜如下图的插值条件的多项式。
也叫做拉格朗⽇公式。
这⾥以拉格朗⽇3次插值为例,利⽤C++进⾏实现:1//利⽤lagrange插值公式2 #include<iostream>3using namespace std;45double Lx(int i,double x,double* Arr)6 {7double fenzi=1,fenmu=1;8for (int k=0;k<4;k++)9 {10if (k==i)11continue;12 fenzi*=x-Arr[k];13 fenmu*=Arr[i]-Arr[k];14 }15return fenzi/fenmu;16 }1718int main()19 {20double xArr[4]={};21double yArr[4]={};22//输⼊4个节点坐标23 cout<<"请依次输⼊4个节点的坐标:"<<endl;24for (int i=0;i<4;i++)25 cin>>xArr[i]>>yArr[i];2627//输⼊要求解的节点的横坐标28 cout<<"请输⼊要求解的节点的横坐标:";29double x;30 cin>>x;31double y=0;32for (int i=0;i<4;i++)33 y+=Lx(i,x,xArr)*yArr[i];34 printf("x=%lf时,y=%lf\n",x,y);3536//分界,下⾯为已知y求x37 cout<<"请输⼊要求解的节点的纵坐标:";38 cin>>y;39 x=0;40for (int i=0;i<4;i++)41 x+=Lx(i,y,yArr)*xArr[i];42 printf("y=%lf时,x=%lf\n",y,x);4344 system("pause");45return0;46 }作者:耑新新,发布于转载请注明出处,欢迎邮件交流:zhuanxinxin@。
Lagrange 插值多项式与Newton插值
专业序号姓名日期实验1Lagrange 插值多项式【实验目的】1.掌握用MATLAB计算拉格朗日插值方法,改变节点的数目,对插值结果进行初步分析;2.掌握用MATLAB的插值方法并通过实例学习用插值解决实际问题。
3. 观察Runge现象的演示。
【实验内容】Lagrange 插值多项式按照 P74 图4-4 的方法编 Lagrange 插值多项式function y = mylagpoly(X,Y,x)X,Y 采样点x 自变量(向量)y 多项式的函数值要特别注意大小写,x,y 和 t 都是向量【程序如下】:% exp4_2.m --- Runge现象的演示(内含 L 和 N 插值多项式)function try_Runge% 见 P84f = inline('1./(1+25*x.^2)'); % 定义函数n = 11;X = linspace(-1,1,n); % n 等分( n+1 个点),插值点横坐标Y = f(X); % 插值点纵坐标x = -1 : 0.01 : 1; % 加细 xy = mylagpoly(X,Y,x)plot(x,f(x),'r',X,Y,'o',x,y,'b')title('Runge现象') % 加标题legend('y=1/(1+25*x^2)','插值点 ','等分的10次插值多项式',0) % 加标签function y = mylagpoly(X,Y,x)n = length(X);y = zeros(size(x));for i = 1:nt=1;for j = 1:nif j ~= it = t.*((x-X(j))/(X(i)-X(j))); % 注意这里是点乘,字母与书上不同,此时t变成向量了endendy=y+ t.*Y(i);end【运行结果如下】:【结果分析】:拉格朗日插值实验通过离散的点来构造一个函数来逼近原来的函数,理论上应该是点越多,构造函数应该会越来越逼近原函数,但是却发生了Range现象,所以在利用拉格朗日插值法来构造函数来逼近原函数时,应该选择适当的点来逼近原函数,但即使如此,依然不能有效的避免Range现象。
Lagrange插值多项式
成 绩 评 定 表 类 别 评 分 标 准 积极出勤、遵守纪律 主动完成设计任务 比较规范、基本正确 功能达到实验要求 及时递交、填写规范 内容完整、体现收获 分值 30 分 30 分 40 分 得分 合 计
上机表现 程序代码 实验报告
计算机科学与工程学院
说明:
评阅教师:
日 期:
年
月
日
2
计算机科学与工程学院
已知函数 y=f(x)在若干点 xi 的函数值 y i = f xi (i=0,1, ,n) 一个差值问题就是 求一“简单”的函数 p(x):p( xi )= y i ,i=0,1, ,n, (1)
则 p(x)为 f(x)的插值函数,而 f(x)为被插值函数会插值原函数, x 0 , x1 , x 2 ,..., xn 为插值节点,式(1)为插值条件,如果对固定点 x 求 f( x )数值解,我们称 x 为一 个插值节点,f( x ) p( x )称为 x 点的插值,当 x [min( x 0 ,x1 ,x 2 ,..., xn ),max( x 0 ,
4
计算机科学与工程学院 cin>>x; y=lagrange(x,count); cout<<y<<endl; } else { cout<<"输入有误"<<endl; } }
测试用例:
线性插值内插
线性插值外插
5
计算机科学与工程学院
抛物线插值
实验总结:
由测试用例可知,一般来说,内插时插值收敛于实际函数,一旦超出内插的范围,插值函 数会发散,且离插值区间越远外推误差越大。使用不用的插值方法在同一点外推的值也会 相差很多,这说明外推本身就存在很大的不确定性。相对来说,线性插值内插比外插较为 准确, 抛物线插值比线性插值更为准确, 函数变化陡峭时节点增多可以增加插值的准确性。
拉格朗日(Lagrange)插值
18
x1 x2 利用 x0 = π , x1 = π L1 ( x ) = x π / 4 × 1 + x π / 6 × 1 6 4 π / 6 π / 4 2 π / 4 π / 6 2 π sin 50 0 ≈ L1 ( 5 ) ≈ 0.77614 这里 f ( x) = sin x , f (2) (ξ x ) = sinξ x , ξ x ∈(π , π ) 内插通常优于外插。 ) 18 内插通常优于外插。2选择 6 3 ( f (ξ x ) 而 1要计算的3x 所在的区间的x π )( x π ) , R1 ( x) = ( < sinξ x < 2 2 2! 6 4 端点,插值效果较好。 端点,插值效果较好。 sin 50° = 0.7660444… 0.01319 < R1 ( 5π ) < 0.00762 18
+1)
( n + 1) ! Nhomakorabeax
Rn ( x) =
(n + 1) !
∏( x x )
i i =0
注:
M n +1 n 作为误差估计上限。 将 ( n + 1)! ∏ | x x i | 作为误差估计上限。 i =0
通常不能确定 ξx , 而是估计
f ( n + 1 ) ( x ) ≤ M n + 1, x∈(a,b) ∈
这样求Lagrange插值多项式计算量大,不便于实际应用。 Lagrange插值多项式计算量大 注: 这样求Lagrange插值多项式计算量大,不便于实际应用。 过两点直线。 一次多项式插值 --- 过两点直线。 过三点抛物线。 二次多项式插值 --- 过三点抛物线。 则插值多项式不唯一 不唯一。 若不将多项式次数限制为 n ,则插值多项式不唯一。
拉格朗日(Lagrange)插值
( n 1) !
i0
( ( 1 0 (x Rolle’s f ( x ) Ln (若)至少个有 n+1根 ( x 0 ) Rnx)x )K ( x),则 xi ) R n ( x ) Theorem: x ( x ) 充分光滑, i 0 n 存在 ( x 0 , x 1 ) 使得 ( ) 0 。 任意固定 x xi (i = 0, 求导 考察 ( t ) Rn ( t ) K ( x ) ( t x i ) 注意这里是对 t …, n), 0 ( x 0 , x 1 ), 1 i ( 0 1 , x 2 ) x 推广:若 ( x 0 ) ( x 1 ) ( x 2 ) 0 (x)有 n+2 个不同的根x0) …0xn x ( , ( n) 1 ) ( x ) 0(, ) ( a , b ) x 0 使得 ( 0 ) ( 1 0 1 使得
于是 : L 2 ( x )
再利用 l 0 ( x 0 ) 1 C
1 ( x 0 x 1 )( x 0 x 2 )
( x x0 )( x x1 ) l2 ( x ) ( x2 x0 )( x2 x1 )
l ( x) y
i i0
2
i
l 0 ( x ) y 0 l1 ( x ) y1 l 2 ( x ) y 2
i0 n
[证明]上式的左端为插值基函数的线性组合,其组合 系数均为1。显然,函数f(x) 1在这n +1个节点取值 为1,即yi=f (xi) 1 (i=0,1,…,n), 它的n次Lagrange插值多项式为:
Ln ( x ) l i ( x ) y i l i ( x )
lagrange插值法
lagrange 插值法实验基本原理: lagrange 插值法是用来解决离散点的插值问题。
若给定两个插值点),(),,(1100y x y x 其10x x ≠,在公式中取1=n ,则La g r a n g e 插值多项式为:)()()()()()(001010010110101x x x x y y y x x x x y x x x x y x p ---+=--+--=是经过),(),,(1100y x y x 的一条直线,故此法称为线性插值法。
2、若函数给定三个插值点 2,1,0),,(=i y x i i ,,其中i x 互不相等,在公式中取1=n ,则Lagrange 插值多项式为: ))(())(())(())(())(())(()(1202102210120120102102x x x x x x x x y x x x x x x x x y x x x x x x x x y x p ----+----+----=是一个二次函数,若2,1,0),,(=i y x i i 三点不在一条直线上,则该曲线是一条抛物线,这种插值法称为二次插值或抛物插值。
为了解决这个问题,我们为此构造了这个矩阵⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----+---.........))(())(()())((12010212010212010x x x x x x x x x x x x x x x x 就可以找到相应系数。
实验结果分析:在应用拉格朗日插值法时应注意以下几个问题:1、在能获得原始资料时应尽量获取原始资料, 不能盲目地用组数据代入公式来估计未知数据。
2、在利用拉格朗日多项式进行插值估计时, 要求所研究范围的值的变化不受特殊或偶照因素的影响, 即的值是在正常条件下的。
3、如果有两组值(i x ,iy ),(j x ,j y ) 的i x =j x ;则这两组值只能取一组代入多项式计算, 否则便会出现 i y 与j y 的项分母为零的情况这种情况对于这种情况, 用哪组值代入多项式估计更好, 往往不易确定。
数值分析(12)Lagrange插值与Newton插值(1)
y
( g ( x i ) f ( x i )) m in
2 i =0
● ●
●
(xn ,yn)
y=g(x)
(x2 ,y2)
●
(x0 ,y0) o x0
(x1 ,y1) x1 x2 xn x
●
数值分析
数值分析
问题2:水深和流速的关系
在水文数据的测量中,不同水深的流速是不同的。水文 数据的测量是天天进行的,为了减少测量的工作量,希望确定 水深和流速之间的关系。为此测量了一系列不同水深和流速值, 下表给出了对某河流的测量数据
● ● ● ●
y0
y1 x1
y2
x2
y=f(x) ● g(x) yn
xn x
数值分析
o
x0
数值分析
问题1:机床加工 机翼断面的下轮廓线如图所示,下表给出了下 轮廓线上的部分数据。用程控铣床加工时,每一刀 只能沿x方向和y方向走非常小的一步。例如,如果 工艺要求铣床沿x方向每次只能移动0.1单位,这时 就需要求出当x坐标每改变0.1单位时的y坐标。试完 成加工所需的数据,画出曲线。 xi 0 yi 0
数值分析
数值分析
xi
f(xi)
x0 f(x0)
x1 f(x1)
… …
xn f(xn)
而不知道函数在其他点x上的取值,这时只能用一
个经验函数y=g(x)对真实函数y=f(x)作近似。 下面两类方法常用来确定经验函数y=g(x) (1)插值法 (2)拟合法
根据问题的不同,有时要用插值技术来解决, 有时则应该采用拟合的方法才合理。
即:F (x) , F (x)
n
c
i i=0
n
i
Lagrange插值法和Newton插值法
插值法函数逼近一、实验目的:通过上机操作掌握插值法函数逼近的算法实现,掌握Lagrange 插值法和Newton 插值法的思想和区别。
二、实验内容:Lagrange 插值法和Newton 插值法的算法实现。
三、理论基础:(一)、Lagrange 插值法:n 次Lagrange 插值基函数:ni x x x x x l j i j ij j i ...,1,0,)()()(n0=--∏=≠= ,l i ,i=0,1,…,n 是n 次多项式并满足 l i (x j )=⎩⎨⎧≠=.,0,j 1i j i ,n 次Lagrange 插值多项式: ,)()()(0n ∑==ni i i x l x f x L显然,L ,n n P ∈并满足插值条件 L )()(n j j x f x =,j=0,1,…,n. (二)、Newton 插值法均差: f[x k ]=f(x k ), f[x k ,x k+1]=(f[x k+1]-f[x k ])/(x k+1-x k ) f[x k ,x k+1]=(f[x k+1]-f[x k ])/(x k+1-x k )为f 在x k 上的零阶均差,在x 1,+k k x 上的一阶均差和在21,,++k k k x x x 上的二阶均差. n 次Newton 插值多项式:f(x)=f(x 0)+f[x 0,x 1](x-x 0)+f[x 0,x 1,x 2](x-x 0)(x-x 1)+…+f[x 0,x 1,…x n ](x-x 0)(x-x 1)…(x-x n )Lagrange 插值法:代码:function yh= lagrange( x,y,xh ) n=length(x); m=length(xh); x=x(:); y=y(:); xh=xh(:);yh=zeros(m,1);c1 = ones(1,n-1);c2 = ones(m,1);for i=1:n,xp = x([1:i-1 i+1:n]);yh = yh + y(i) * prod((xh*c1-c2*xp')./(c2*(x(i)*c1-xp')),2); end运行结果:x(1)=0.4;x(2)=0.50;x(3)=0.70;x(4)=0.80;y(1)=-0.916281;y(2)=-0.693147;y(3)=-0.356675;y(4)=-0.223144;xh=0.6;lagrange(x,y,xh)ans =-0.5100Newton 插值法:代码:function newtoncz(a,b,n,f)ln=length(n);for k=1:lnm=n(k)-1;y=zeros(1,m+1);A=zeros(m+1);w=zeros(1,m+1);h=(b-a)/m;for i=1:m+1x(i)=a+(i-1)*h;y(i)=subs(f,findsym(f),x(i));endA(:,1)=y';for i=2:m+1for j=i:m+1A(j,i)=(A(j,i-1)-A(j-1,i-1))/(x(j)-x(j-i+1));endendp=A(1,1);w=vpa(w,4);syms X;w(1)=X-x(1);for i=2:m+1w(i)=w(i-1)*(X-x(i));p=A(i,i)*w(i-1)+p;p=simplify(p);endp=vpa(p,4);fprintf('n=%d的newton插值多项式为:',n(k));disp(p);运行结果:>> a=-1;>> b=1;>> n=[5,7,13];>> syms X;>> f=1/(1+25*X.^2);>> newtoncz(a,b,n,f)n=5的newton插值多项式为:3.316*X^4-4.277*X^2+1.n=7的newton插值多项式为:-13.13*X^6+20.96*X^4+.3475e-14*X^3-8.784*X^2-.2420e-15*X+1.n=13的newton插值多项式为:909.9*X^12-.3411e-12*X^11-2336.*X^10+.6632e-12*X^9+2202.*X^8-.1573 e-12*X^7-955.4*X^6+.2341e-12*X^5+198.7*X^4-.3535e-13*X^3-19.58*X^2 +.7881e-15*X+1.000四、比较分析:Lagrange插值多项式结构简单紧凑,在理论分析中甚为方便,在数值分析中经常使用,但在使用过程中也存在不便之处,当插值节点增加(相应的插值多项式的次数增加)、减少(相应的插值多项式的次数减少)时,构造差值多项式的基函数均需重新构造。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
已知 f( x ) 在 n 1 个节点上的值 ,求一个简单函 ( x ),
替代 f( x ),以 ( x )的性态来近似替代 f( x )的性态;
(x) — f (x)关于节点 xi的插值函数; (xi ) yi —插值条件;
p ( x y x , j 0 , 1 , , n 的 n 次多项式: n j) j f( j)
n p ( x ) a a x a x n 0 1 n 是存在且唯一的;
证明: 只要证得 系数 a ,由 pn(xj ) yj i存在唯一即可
n 1 n a0 a an1x0 anx0 y0 1x 0 n 1 n x a x a x a0 a 1 1 n 1 1 n 1 y 1 , n 1 n a a x an1xn anxn yn 0 1n
y y k 1 k L ( x ) y (x x 1 k k) ——点斜式 x x k 1 k x x x x k 1 k 或 L ( x ) y y 1 k k 1 ——两点式 x x x x k 1 k k 1 k
y y x x x x x x 1 1 2 1 y y y 1 2 y y x x x x x x 2 1 2 1 2 1 2 1
), lk ( x ) 为线性(一次)插值基函数, 基函数法:称 lk(x 1
或称为基本插值多项式,则线性插值可以看 作线性插值基函数的线性组合。
(i)
n T 类比: R 的一组基 ( 0 , , 1 , , 0 ) , i 1 ,2 , ,n , i n T 则 x R ,有 x ( x , x , , x ) x 1 2 n i i。 i 1 y y n
1 A 1 1 由 Cramer
n i 1
x0 x1 xn
i 1 j0
x0 x1 xn
n 1 n 1
x0 x1 xn
n n
n 1
n
( xi x j ) 0
Vandermond行列式
法则 ,得证。
注:若不限定次数,则插值多项式不唯一;
n i 0
xx xx k 1 k 记 lk (x ) , lk ( x ) , 1 x x k x k 1 k 1 x k 则有: L x ) lk (x )y lk x )y 1( k 1( k 1; , ij 1 即 li (xj )i j , i, j k, k 1 ; ij 0,
( 1 )n 1 :已知 f( x ) y , f( x ) y ,求 L ( x ) , k k k 1 k 1 1 L ( x y i k , k 1 ; 1 i) i, 即求过 ( x y ), ( x , y ) 的直线 k, k k 1 k 1
如:若 p ( x ) 满足插值条件,则 p ( x ) ( x x 亦满足 n n i)
二、Lagrange插值多项式——
1、线性插值与抛物插值
pn ( x) 的构造
元方 由Th1知,pn ( x) 中系数的计算只需求解一个 n 1 程组,如此不但计算复杂,且难以得到 pn ( x) 的简单表达 式;下面来介绍便于使用的简单插值多项式 pn ( x) ,先看 特殊情形:
x i 1 , 2 , , n ) 问题:无法求出不在表中的某点 x i( 处的函数值,因而亦无从研究函数的相关性质,如求
函数 y f (x )的零点、导数、积分等等。
插值法基本思想:
( x x y i 0 , 1 , 2 , , n ,以 ( x )近似 i)f( i) i ,
第1章 插值法 本章内容
§4.1 Lagrange插值多项式 §4.2 Newton插值多项式 §4.3 分段低次插值
逼近
—近似代替,计算法中最基本的概念和方法之一。
实际问题中,经析表达式,需要根据实验数据 或其他方法来确定与自变量的某些值相对应的函数值 函数虽然有明显的解析表达式,但是使用很不方便 需要对实际使用的函数建立一个简单的便于处理和计算的
近似表达式,即用一个简单的函数表达式来近似代
替原来复杂的函数。
常用寻求近似函数的方法 插值、曲线拟合
问题的提出
实际问题中,往往要研究变量之间的函数关系,但多数
情形下只能由测量或实验观察,得到一系列的数据:
x x x 0 1 x 2 x n y y y 0 1 y 2 y n
y f (x) ? ,
§4.1
Lagrange插值多项式
本节内容提要
插值多项式的存在唯一性 Lagrange插值多项式
线性插值、抛物插值、 Lagrange插值多项式、 插值余项、 Hermite插值
一、插值多项式 pn ( x)的存在唯一性
Th1: 已知 x x , x 是 n 1 个互异节点 , 则满足条件 0, 1, n
分类:
( 1 ) 若插值点 x 位于 x , x , , x —内插 0 1 n所在区间之内
注:简单函数:可用四则运算进行计算的函数,常指多项式函数、
( 2 ) 若插值点 x 位于 x , x , , x —外推 0 1 n所在区间之外
分段多项式函数、有理函数;
相应插值法称为:代数插值法、分段插值、有理函数插值; 我们主要介绍插值函数为多项式的插值,相应的 ( x)称为 插值多项式,记作 p n ( x ) 。 特别: n 1 ,所求 p x )是过两点的直线 ——线性插值 1( ——抛物线插值 n2 ,所求 p x )是过三点的二次曲线 2(