MATLAB插值
Pn ( x) a0 a1x a2 x2 an xn
使其满足
—插值多项式
Pn(xi)=yi,i=0,1,…,n. (插值条件)
即
2 a0 a1 x0 a2 x0 an x0n y0 2 n a a x a x a x 0 11 2 1 n 1 y1 a a x a x 2 a x n y n n n 0 1 n 2 n
Degrees Celsius
35 30 25 20 15 10 5 0 2 4 6 Hour 8 10 12
To MATLAB
插值曲线
23
(temp)
例2 已知飞机下轮廓线上数据如下,求x每改变0.1 时的y值。
x y 0 0 3 1.2 5 1.7 7 2.0 9 2.1 11 2.0 12 1.8 13 1.2 14 1.0 15 1.6
分段线性插值
三次样条插值
三、用Matlab解插值问题
返回
7
二维插值
一、二维插值定义 二、网格节点插值法
最邻近插值 分片线性插值 双线性插值
三、用Matlab解插值问题
网格节点数据的插值 散点数据的插值
返回
8
一维插值的定义
问题的提法:
已知 n+1个互异节点 x j ( j 0,1,, n) 及其相应函数 值 yj , 不妨设
定理 n+1个插值条件可以唯一确定一个n阶插值多项式.
11
由拉格朗日插值多项式的唯一性,为了避免求解方程组,可 以用如下方法求得拉格朗日插值多项式!
Pn ( x) Li ( x) yi —拉格朗日插值公式
其中Li(x) 为n阶多项式:
i 0
n
( x x0 )( x x1 ) ( x xi 1 )( x xi 1 ) ( x xn ) Li ( x) ( xi x0 )( xi x1 ) ( xi xi 1 )( xi xi 1 ) ( xi xn )
ych
返回
21
用MATLAB作插值计算
一维插值函数:
yi=interp1(x,y,xi,'method')
xi处的插 值结果 插值节点 被插值点 插值方法
‘nearest’:最邻近插值(即用离被插值点最近的插值
节点的函数值作为被插值点的近似值);
‘linear’ :线性插值(默认值); ‘spline’ :三次样条插值(二阶可导且连续); ‘cubic’ :保形插值(一阶可导且连续)。
x xi x xi 1 Pi ( x) yi 1 yi xi 1 xi xi xi 1
计算量与n无关;n越大,误差越小。
lim P( x) g ( x), x0 x xn
n
16
例3
1 g ( x) , 5 x 5 2 1 x
1.在[-5,5]中平均选取5个点作插值(xch11) 2.在[-5,5]中平均选取11个点作插值(xch12) 3.在[-5,5]中平均选取21个点作插值(xch13) 4.在[-5,5]中平均选取41个点作插值(xch14)
70 65
网 格 图
2.5 2 4 5
注意这里平面上的 点是网格点!
t
60 3
y 1.5
3 2 1 1
x
5
问题4 在某海域测得一些点(x,y)处的水深z由下表给出, 船的吃水深度为5英尺,在矩形区域(75,200)* (-50,150)里的哪些地方船要避免进入?
x y z x y z 129 140 103.5 88 185.5 7.5 141.5 23 147 22.5 4 8 6 8 6 157.5 107.5 77 81 162 -6.5 -81 3 56.5 -66.5 9 9 8 8 9
a x0 x1 xn b,
求任一插值点 x *( x j ) 处的插值 y *.
y1 y0
y
*
节点可视为由
y g ( x) 产生, g 表达式复杂,或
未知
9
x0 x1 x*
xn
解决方法: 构造一个(相对简单的)函数 y f ( x), 使之在节点处与被插函数的值相等,即满足 f ( x j ) y j ( j 0,1,, n) —插值条件 再用
已知飞机下轮廓线上数据如下,求x每改变0.1时的y值。
x y 0 0 3 1.2 5 1.7 7 2.0 9 2.1 11 2.0 12 1.8 13 1.2 14 1.0 15 1.6
2.5 2 1.5 1 0.5 0 0
散 点 图
2.5 5 7.5 10 12.5 15
和问题1完全相同!
这就是一维插值问题!
数 学 建 模
插 值 篇
1
目的
1、掌握插值的基本内容。 2、了解用Matlab求解插值问题的基本函数。
内容
[1] 问题的提出
[2] 一维插值 [3] 二维插值 [4] 实验作业
2
问题1
在1-12的11小时内,每隔1小时测量一次温度,测得的温度 依次为:5,8,9,15,25,29,31,30,22,25,27,24 试估计每隔1/10小时的温度值。
0
x
28
已知n个节点
其中 构造一个二元函数 互不相同, 通过全部已知节点,即
0
n=40
2.5
5
0
2.5
5
0
2.5
5
18
返回
三次样条插值
是一种分段插值,比分段线性插值更光滑!
y
a
xi-1
xi
b
x
在数学上,光滑程度的定量描述是:函数(曲线) 的k阶可导且连续,则称该曲线具有k阶光滑性。 光滑性的阶次越高,则越光滑。为了得到具有 较高阶光滑性的分段低次插值多项式,我们介绍三 次样条插值。
14
例2
1 g ( x) , 5 x 5 2 1 x
采用拉格朗日多项式插值:选取不同插值 节点个数n+1,其中n为插值多项式的次数,当n 分别取2,4,6,8,10时,绘出插值结果图形.
To Matlab
lch(larg1)
2 1.5
拉格朗日多项式插值的 1 这种振荡现象叫 Runge现象
n=10 y=1/(1+x 2) n=2 n=4 n=6
0.5 0 -0.5
n=8
返回
-1.5 -5 0 5
-1
15
分段线性插值
y
0
xj-1 xj xj+1 xn x
x0
P( x) P i ( x)
x [ xi 1, xi ](i 1, 2, , n)
其中
150 100 50
195 105 137.5 85.5 8 8 162 117.5 84 -33.5 4 9
易见,这里所给的平 面上的数据点不再是 网格点! 这就是二维插值问题!
返回
0 -50 -100 50 100 X 150 200
散 点 图
Y
6
一维插值
一、插值的定义 二、插值的方法
拉格朗日插值
19
定义
S ( x) {si ( x), x [ xi1 , xi ], i 1,, n}
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 2 [ x0 , xn ]
称之为拉格朗日插值基函数。 容易验证,由拉格朗日插值公式确定的插值多项式满足 插值条件,因此即为所求拉格朗日插值多项式!
12
特别地,
两点一次(线性)插值多项式为:
x x0 x x1 P y0 y1 1 x x0 x1 x1 x0
三点二次(抛物)插值多项式为:
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
用分段线性插值法求插值,并观察插值误差.
To MATLAB
xch11,xch12, xch13,xch14, xch1234
绘出的图形见下页 (xch1234.m):
17
n=4
n=10
1 0.5
1 0.5
0 -5 -2.5 1 0.5 0 -5 -2.5
0
n=20
2.5
5
0 -5 -2.5 1 0.5 0 -5 -2.5
13
例1
试用拉格朗日插值逼近 sin x ( x [0, 2 ]) 分别取n=2,4,8,20,画出图形。
To MATLAB
lagsin(lagr1)
1
0.5
0 origin n=2 n=4 n=8 n=20
-0.5
-1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5
注意:所有的插值方法都要求x是单调的,并且xi不能够超过x 的范围。 22
例1 在1-12的11小时内,每隔1小时测量一次温度, 测得的温度依次为:5,8,9,15,25,29,31,30, 22,25,27,24。试估计每隔1/10小时的温度值。
Matlab下的实现:
hours=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; h=1:0.1:12; t=interp1(hours,temps,h,'spline'); %直接输出数据将是很多的 plot(hours,temps,'+',h,t) %作图 xlabel('Hour'),ylabel('Degrees Celsius’)