一维插值
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多项式的次数,当n分别为2,4,6,8,10 时的插值计算结果如下页图.
上一页
下一页
主 页
2
1.5
n=10
1 y=1/(1+x 2)
0.5 n=6 n=2 0 n=4 -0.5 n=8 -1
-1.5 -5
-4
-3
-2
-1
0
1
2
3
4
5
lim Ln ( x) g ( x), 3.63 x 3.63
j=1,2,…,n
可以证明,
lim q( x) f ( x)
n
f(x)为被插值函数。
上一页 下一页 主 页
用MATLAB作分段线性插值计算
分段线性插值命令:
y=interp1(x0,y0,x)
xi处的插值结果
插值节点
被插值点
上一页
下一页
主 页
用MATLAB作分段线性插值计算
例:在1-12的11小时内,每 隔1小时测量一次温度,测得的 温度依次为:5,8,9,15,25, 29,31,30,22,25,27,24。 试估计每隔1/10小时的温度值。
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
上述方程组的矩阵形式为
n n x0 x0 1 1 X , A x n x n 1 1 n n
XA Y
( 2)
an y0 , Y a0 yn
上一页 下一页 主 页
三次样条插值
三次样条函数 S(x), x∈[a, b] , 满足: 1) S(x) 在每一个小区间[xi-1,xi]上是 一个三次多项式函数 ; 2) 在整个区间[a,b]上,其二阶导数存在 且连续。 y
a
xi-1 xi
上一页
b
x
下一页 主 页
2 x0
x0 1 x1 1 0 x2 1
上一页 下一页 主 页
x12
2 x2
方程组有唯一解
拉格朗日(Lagrange)多项式插值
x j 互不相同,不妨设 a x0 x1 xn b),
求过这n+1个点的多项式。 已知 n+1个节点 ( x j , y j ) ( j 0,1,n )其中
上一页 下一页 主 页
M文件 yangcha.m
返 回
上一页
下一页
主 页
插值方法的比较
例:以
1 g ( x) , 5 x 5 2 1 x
为例,作三种插值的比较
上一页
下一页
主 页
n=11;m=101; M文件 x=-5:10/(m-1):5; chazhi1.m y=1./(1+x.^2); z=0*x; hold on, plot(x,z,'y',x,y,'k:') plot(x,y2,'b'), pause gtext('Pies.Lin.'), x0=-5:10/(n-1):5; pause,hold off, y0=1./(1+x0.^2); y3=interp1(x0,y0,x,… y1=lagr1(x0,y0,x); 'spline'); hold on, hold on,plot(x,y3,'m'), plot(x,y1,'r'), gtext('Spline') gtext('Lagr.'), s=' x y y1 y2 y3' pause,hold off, [x' y' y1' y2' y3'] y2=interp1(x0,y0,x);
实验目的
[1] 了解一维插值的基本原理,了解拉格朗日插 值、线性插值、样条插值的基本思想; [2] 掌握用MATLAB计算三种一维插值的方法,并 对结果作初步分析; [3] 通过实例学习如何用插值方法解决实际问题。 [4] 通过撰写实验报告,促使自己提炼思想,按 逻辑顺序进行整理,并以他人能领会的方式表达 自己思想形成的过程和理由。提高写作、文字处 理、排版等方面的能力。
det( X ) 0, (2) 有唯一解
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
已知函数f(x)在n+1个点x0,x1,…,xn处的函数值为 y0,y1,…,yn 。求一n次多项式函数Pn(x),使其满足: Pn(xi)=yi,i=0,1,…,n. 解决此问题的拉格朗日插值多项式公式如下
n
返 回 上一页 下一页 主 页
三次样条插值
y
a
xi-1 xi
b
x
比分段线性 插值更 光滑
在数学上,光滑程度的定量描述是:函数 (曲线)的k阶导数存在且连续,则称该曲线具有k 阶光滑性。 光滑性的阶次越高,则越光滑。是否存在 较低次的分段多项式达到较高阶光滑性的方法? 三次样条插值就是一个很好的例子。
温度 ... 25.2 24.9 24.6 24.3 24
上一页
下一页
主 页
上一页
返 回 下一页 主 页
拉格朗日(Lagrange)多项式插值
已知三点(x0,y0), (x1,y1), (x2,y2), 求过这三点的多项式。
L2 ( x ) a 2 x 2 a1 x a 0
则
2 a 2 x 0 a1 x 0 a 0 y 0 2 a 2 x1 a1 x1 a 0 y1 a x 2 a x a y 1 2 0 2 2 2
y y1 y0
*
x 0 x1 x *
xn
返 回 上一页 下一页 主 页
分段线性插值
设函数 g(x)在 n+1个点 x0,x1,…,xn 处的 函数值已知,为 y0,y1,…,yn 。求一个分段 ( 共n段)线性函数q(x),使其满足: q(xj)=yj , j=0,1,…,n. 这n+1个点( xj, yj) (j=0,1,2,...,n) 为插值节点,q(x) 称为插值函数。
y=f(x)近似表示y=g(x)
上一页 下一页 主 页
引
y
言
y +
+ + x + + x
函数f(x)的产生办法:插值和拟合。 第一步:适当选择函数的形式; 第二步:确定函数的参数。
上一页 下一页 主 页
引例:机床加工
X=0 3
y
机翼下 轮廓线 5 7 9 11 12 13 14 15
Y=0 1.2 1.7 2 2.1 2 1.8 1.2 1 1.6
x
返 回 上一页 下一页 主 页
求解插值问题的基本思路
构造一个(相对简单的)函数y=f(x)通过全部 节点, 即 f(xj)=yj (j=0, 1, …, n)
f(x)的不同选择构成各种不同的插值方法计 算插值,比如选为多项式函数,就有拉格朗日插 值。
x0
xj-1 xj xj+1 xn
主 页
上一页
下一页
分段线性插值
根据直线的两点式方程变形得到q(x)在第j 段 [xj-1, xj] 上的表达式为:
q( x )
x xj x j1 x j
y j1
x x j1 x j x j1
yj
x j1 x x j
/6 /2
精确值:cos (/6)=0.8660
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
n=2时: (x0,y0)=(0,1), (x1,y1)=(/4,0.7071), (x2,y2)=(/2,0), P2(x)=y0L0+y1L1+y2L2
=8(x-/4)(x-/2)/2-16x(x-/2)0.7071/2 P2(/6)=0.8508
xlabel('Hour'),ylabel('Degrees Celsius')
上一页 下一页 主 页
用MATLAB作分段线性插值计算
程序运行结果:
时间 1 1.1 1.2 1.3 1.4 1.5 1.6
温度 5 5.3 5.6 5.9 6.2 6.5 6.8 时间 ... 11.6 11.7 11.8 11.9 12
上一页 下一页 主 页
用MATLAB作三次样条插值计算
1 , 5 x 5 例:在 g ( x) 2 1 x
上取11个点,作三次样条插值, 观
察三次样条插值曲线与g(x)的误差.
上一页
下一页
主 页
用MATLAB作三次样条插值计算
x0=linspace(-5,5,11);
y0=1./(1+x0.^2); x=linspace(-5,5,100); y=interp1(x0,y0,x,'spline'); x1=linspace(-5,5,100); y1=1./(1+x1.^2); plot(x1,y1,'k',x0,y0,'+',x,y,'r');
上一页
下一页
主 页
用MATLAB作分段线性插值计算
hours=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; h=1:.1:12;
t=interp1(hours,temps,h)
plot(hours,temps,'+',h,t)
title('线性插值下的温度曲线'),
上一页 下一页 主 页
主要内容
插值基本原理 分段线性插值 拉格朗日插值 插值基本方法 三次样条插值 用MATLAB作插值计算 引言与引例 插值方法的比较和总结 范例 地图绘制问题 估计水塔的水流量
上一页
返回
下一页 主 页
引
y
言
y +
+ + x + + x
wk.baidu.com
y=g(x)(很复杂、或未知或无封闭形式) 实验观测数据(xi,yi),i=0,1,…,n
称为拉格朗日插值基函数。
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
例 将[0,/2] n等分,在g(x)=cos(x)上 取n+1个节点,作Pn(x)(取n=1,2) ,计算 Pn(/6),与 cos(/6)比较, 观察误差。 解: n=1, (x0,y0)=(0,1), (x1,y1)=(/2,0), x x0 x x1 L0 , L1 x 0 x1 x1 x 0 1 P1(x)=y0L0+y1L1=1-2x/, P1(/6)=0.6667
应满足的条件: 1) si ( x ) ai x 3 bi x 2 ci x d i (i 1, n ) 2) S ( xi ) yi (i 0,1, n )
3) S ( x ) C [ x0 , xn ]
2
4) S ( x0 ) S ( xn ) 0 ( 自然边界条件)
Ln ( x) an x an1 x
n
n 1
a1 x a0 (1)
a n x 0n a n1 x 0n1 a1 x 0 a 0 y 0 a n x1n a n1 x1n1 a1 x1 a 0 y1 n n a n x n a n 1 x n 1 a 1 x n a 0 y n
精确值:cos (/6)=0.8660
是否n越大,插值 的误差就越小?
/6
/4 /2
下一页 主 页
上一页
拉格朗日多项式插值的振荡现象
1 , 5 x 5 Runge现象: g ( x) 2 1 x
采用拉格朗日多项式插值:选取
不同插值节点个数n+1,其中n为插值
返 回 上一页 下一页 主 页
用MATLAB作插值计算
一维插值函数:
yi=interp1(x,y,xi,'method')
xi处的插 值结果
插值节点 被插值点 插值方法
Method可取: ‘nearest’ :最邻近插值;‘spline’ :三次样条插 值; ‘cubic’ : 立方插值;缺省时: 分段线性插值。 注意:所有的插值方法都要求x是单调的,并且xi不
三次样条插值
问题:给定 n+1个节点( x0, y0 ), (x1, y1 ) ,…, (xn, yn), 求一个三次样 条函数S(x),使其满足: S(xi)=yi,i=0,1,…,n.
如何确定三次样条函数在每一 个小区间上的三次多项式函数 的系数?
上一页 下一页 主 页
三次样条插值函数
S ( x) {si ( x), x [ xi 1 , xi ], i 1,n}
上一页
下一页
主 页
待定系数和方程个数
参数:每个小段上4个,n个小段共计4n个。 方程:1) 每个小段上由给定函数值得到2个, n个小段共计2n个; 2) 光滑性要求每一个内部节点的一阶 二阶导数连续,得出其左右导数相等,因此, 每个节点产生2个方程,共计2(n1) 个 。现 在得到了4n2个方程,还差两个。为此,常 用的方法是对边界节点除函数值外附加要求, 这就是所谓的边界条件。需要两个,正好左 右两个端点各一个。
Pn ( x ) L i ( x ) y i
i 0
n
其中Li(x) 为n次多项式:
( x x 0 )( x x 1 ) ( x x i 1 )( x x i 1 ) ( x x n ) L i (x) ( x i x 0 )( x i x 1 ) ( x i x i 1 )( x i x i 1 ) ( x i x n )
上一页
下一页
主 页
2
1.5
n=10
1 y=1/(1+x 2)
0.5 n=6 n=2 0 n=4 -0.5 n=8 -1
-1.5 -5
-4
-3
-2
-1
0
1
2
3
4
5
lim Ln ( x) g ( x), 3.63 x 3.63
j=1,2,…,n
可以证明,
lim q( x) f ( x)
n
f(x)为被插值函数。
上一页 下一页 主 页
用MATLAB作分段线性插值计算
分段线性插值命令:
y=interp1(x0,y0,x)
xi处的插值结果
插值节点
被插值点
上一页
下一页
主 页
用MATLAB作分段线性插值计算
例:在1-12的11小时内,每 隔1小时测量一次温度,测得的 温度依次为:5,8,9,15,25, 29,31,30,22,25,27,24。 试估计每隔1/10小时的温度值。
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
上述方程组的矩阵形式为
n n x0 x0 1 1 X , A x n x n 1 1 n n
XA Y
( 2)
an y0 , Y a0 yn
上一页 下一页 主 页
三次样条插值
三次样条函数 S(x), x∈[a, b] , 满足: 1) S(x) 在每一个小区间[xi-1,xi]上是 一个三次多项式函数 ; 2) 在整个区间[a,b]上,其二阶导数存在 且连续。 y
a
xi-1 xi
上一页
b
x
下一页 主 页
2 x0
x0 1 x1 1 0 x2 1
上一页 下一页 主 页
x12
2 x2
方程组有唯一解
拉格朗日(Lagrange)多项式插值
x j 互不相同,不妨设 a x0 x1 xn b),
求过这n+1个点的多项式。 已知 n+1个节点 ( x j , y j ) ( j 0,1,n )其中
上一页 下一页 主 页
M文件 yangcha.m
返 回
上一页
下一页
主 页
插值方法的比较
例:以
1 g ( x) , 5 x 5 2 1 x
为例,作三种插值的比较
上一页
下一页
主 页
n=11;m=101; M文件 x=-5:10/(m-1):5; chazhi1.m y=1./(1+x.^2); z=0*x; hold on, plot(x,z,'y',x,y,'k:') plot(x,y2,'b'), pause gtext('Pies.Lin.'), x0=-5:10/(n-1):5; pause,hold off, y0=1./(1+x0.^2); y3=interp1(x0,y0,x,… y1=lagr1(x0,y0,x); 'spline'); hold on, hold on,plot(x,y3,'m'), plot(x,y1,'r'), gtext('Spline') gtext('Lagr.'), s=' x y y1 y2 y3' pause,hold off, [x' y' y1' y2' y3'] y2=interp1(x0,y0,x);
实验目的
[1] 了解一维插值的基本原理,了解拉格朗日插 值、线性插值、样条插值的基本思想; [2] 掌握用MATLAB计算三种一维插值的方法,并 对结果作初步分析; [3] 通过实例学习如何用插值方法解决实际问题。 [4] 通过撰写实验报告,促使自己提炼思想,按 逻辑顺序进行整理,并以他人能领会的方式表达 自己思想形成的过程和理由。提高写作、文字处 理、排版等方面的能力。
det( X ) 0, (2) 有唯一解
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
已知函数f(x)在n+1个点x0,x1,…,xn处的函数值为 y0,y1,…,yn 。求一n次多项式函数Pn(x),使其满足: Pn(xi)=yi,i=0,1,…,n. 解决此问题的拉格朗日插值多项式公式如下
n
返 回 上一页 下一页 主 页
三次样条插值
y
a
xi-1 xi
b
x
比分段线性 插值更 光滑
在数学上,光滑程度的定量描述是:函数 (曲线)的k阶导数存在且连续,则称该曲线具有k 阶光滑性。 光滑性的阶次越高,则越光滑。是否存在 较低次的分段多项式达到较高阶光滑性的方法? 三次样条插值就是一个很好的例子。
温度 ... 25.2 24.9 24.6 24.3 24
上一页
下一页
主 页
上一页
返 回 下一页 主 页
拉格朗日(Lagrange)多项式插值
已知三点(x0,y0), (x1,y1), (x2,y2), 求过这三点的多项式。
L2 ( x ) a 2 x 2 a1 x a 0
则
2 a 2 x 0 a1 x 0 a 0 y 0 2 a 2 x1 a1 x1 a 0 y1 a x 2 a x a y 1 2 0 2 2 2
y y1 y0
*
x 0 x1 x *
xn
返 回 上一页 下一页 主 页
分段线性插值
设函数 g(x)在 n+1个点 x0,x1,…,xn 处的 函数值已知,为 y0,y1,…,yn 。求一个分段 ( 共n段)线性函数q(x),使其满足: q(xj)=yj , j=0,1,…,n. 这n+1个点( xj, yj) (j=0,1,2,...,n) 为插值节点,q(x) 称为插值函数。
y=f(x)近似表示y=g(x)
上一页 下一页 主 页
引
y
言
y +
+ + x + + x
函数f(x)的产生办法:插值和拟合。 第一步:适当选择函数的形式; 第二步:确定函数的参数。
上一页 下一页 主 页
引例:机床加工
X=0 3
y
机翼下 轮廓线 5 7 9 11 12 13 14 15
Y=0 1.2 1.7 2 2.1 2 1.8 1.2 1 1.6
x
返 回 上一页 下一页 主 页
求解插值问题的基本思路
构造一个(相对简单的)函数y=f(x)通过全部 节点, 即 f(xj)=yj (j=0, 1, …, n)
f(x)的不同选择构成各种不同的插值方法计 算插值,比如选为多项式函数,就有拉格朗日插 值。
x0
xj-1 xj xj+1 xn
主 页
上一页
下一页
分段线性插值
根据直线的两点式方程变形得到q(x)在第j 段 [xj-1, xj] 上的表达式为:
q( x )
x xj x j1 x j
y j1
x x j1 x j x j1
yj
x j1 x x j
/6 /2
精确值:cos (/6)=0.8660
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
n=2时: (x0,y0)=(0,1), (x1,y1)=(/4,0.7071), (x2,y2)=(/2,0), P2(x)=y0L0+y1L1+y2L2
=8(x-/4)(x-/2)/2-16x(x-/2)0.7071/2 P2(/6)=0.8508
xlabel('Hour'),ylabel('Degrees Celsius')
上一页 下一页 主 页
用MATLAB作分段线性插值计算
程序运行结果:
时间 1 1.1 1.2 1.3 1.4 1.5 1.6
温度 5 5.3 5.6 5.9 6.2 6.5 6.8 时间 ... 11.6 11.7 11.8 11.9 12
上一页 下一页 主 页
用MATLAB作三次样条插值计算
1 , 5 x 5 例:在 g ( x) 2 1 x
上取11个点,作三次样条插值, 观
察三次样条插值曲线与g(x)的误差.
上一页
下一页
主 页
用MATLAB作三次样条插值计算
x0=linspace(-5,5,11);
y0=1./(1+x0.^2); x=linspace(-5,5,100); y=interp1(x0,y0,x,'spline'); x1=linspace(-5,5,100); y1=1./(1+x1.^2); plot(x1,y1,'k',x0,y0,'+',x,y,'r');
上一页
下一页
主 页
用MATLAB作分段线性插值计算
hours=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; h=1:.1:12;
t=interp1(hours,temps,h)
plot(hours,temps,'+',h,t)
title('线性插值下的温度曲线'),
上一页 下一页 主 页
主要内容
插值基本原理 分段线性插值 拉格朗日插值 插值基本方法 三次样条插值 用MATLAB作插值计算 引言与引例 插值方法的比较和总结 范例 地图绘制问题 估计水塔的水流量
上一页
返回
下一页 主 页
引
y
言
y +
+ + x + + x
wk.baidu.com
y=g(x)(很复杂、或未知或无封闭形式) 实验观测数据(xi,yi),i=0,1,…,n
称为拉格朗日插值基函数。
上一页 下一页 主 页
拉格朗日(Lagrange)多项式插值
例 将[0,/2] n等分,在g(x)=cos(x)上 取n+1个节点,作Pn(x)(取n=1,2) ,计算 Pn(/6),与 cos(/6)比较, 观察误差。 解: n=1, (x0,y0)=(0,1), (x1,y1)=(/2,0), x x0 x x1 L0 , L1 x 0 x1 x1 x 0 1 P1(x)=y0L0+y1L1=1-2x/, P1(/6)=0.6667
应满足的条件: 1) si ( x ) ai x 3 bi x 2 ci x d i (i 1, n ) 2) S ( xi ) yi (i 0,1, n )
3) S ( x ) C [ x0 , xn ]
2
4) S ( x0 ) S ( xn ) 0 ( 自然边界条件)
Ln ( x) an x an1 x
n
n 1
a1 x a0 (1)
a n x 0n a n1 x 0n1 a1 x 0 a 0 y 0 a n x1n a n1 x1n1 a1 x1 a 0 y1 n n a n x n a n 1 x n 1 a 1 x n a 0 y n
精确值:cos (/6)=0.8660
是否n越大,插值 的误差就越小?
/6
/4 /2
下一页 主 页
上一页
拉格朗日多项式插值的振荡现象
1 , 5 x 5 Runge现象: g ( x) 2 1 x
采用拉格朗日多项式插值:选取
不同插值节点个数n+1,其中n为插值
返 回 上一页 下一页 主 页
用MATLAB作插值计算
一维插值函数:
yi=interp1(x,y,xi,'method')
xi处的插 值结果
插值节点 被插值点 插值方法
Method可取: ‘nearest’ :最邻近插值;‘spline’ :三次样条插 值; ‘cubic’ : 立方插值;缺省时: 分段线性插值。 注意:所有的插值方法都要求x是单调的,并且xi不
三次样条插值
问题:给定 n+1个节点( x0, y0 ), (x1, y1 ) ,…, (xn, yn), 求一个三次样 条函数S(x),使其满足: S(xi)=yi,i=0,1,…,n.
如何确定三次样条函数在每一 个小区间上的三次多项式函数 的系数?
上一页 下一页 主 页
三次样条插值函数
S ( x) {si ( x), x [ xi 1 , xi ], i 1,n}
上一页
下一页
主 页
待定系数和方程个数
参数:每个小段上4个,n个小段共计4n个。 方程:1) 每个小段上由给定函数值得到2个, n个小段共计2n个; 2) 光滑性要求每一个内部节点的一阶 二阶导数连续,得出其左右导数相等,因此, 每个节点产生2个方程,共计2(n1) 个 。现 在得到了4n2个方程,还差两个。为此,常 用的方法是对边界节点除函数值外附加要求, 这就是所谓的边界条件。需要两个,正好左 右两个端点各一个。
Pn ( x ) L i ( x ) y i
i 0
n
其中Li(x) 为n次多项式:
( x x 0 )( x x 1 ) ( x x i 1 )( x x i 1 ) ( x x n ) L i (x) ( x i x 0 )( x i x 1 ) ( x i x i 1 )( x i x i 1 ) ( x i x n )