当前位置:文档之家› MATLAB与插值

MATLAB与插值


返回
26
用MATLAB作网格节点数据的插值 作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值 节点
被插值点
插值方法
‘nearest’ ‘nearest’ 最邻近插值 nearest linear’ ‘linear 双线性插值 cubic’ ‘cubic 双三次插值 缺省时, 缺省时, 双线性插值 要求x0,y0单调;x,y可取为矩阵,或x取行向量, 要求x0,y0单调; 可取为矩阵, 取行向量, x0,y0单调 为矩阵 取为列向量,x,y的值分别不能超出x0,y0的范围 的值分别不能超出x0,y0的范围。 y取为列向量,x,y的值分别不能超出x0,y0的范围。
13
三次样条插值
S ( x) = {si ( x), x ∈ [ xi 1 , xi ], i = 1,L n}
1 ) s i ( x ) = a i x 3 + b i x 2 + c i x + d i ( i = 1, L n ) 2 ) S ( x i ) = y i ( i = 0 ,1, L n ) 3) S ( x ) ∈ C 2 [ x0 , x n ]
6
拉格朗日(Lagrange)插值
特别地: 特别地 两点一次(线性 插值多项式: 线性)插值多项式 两点一次 线性 插值多项式
x x0 x x1 L1 ( x ) = y0 + y1 x0 x1 x1 x0
三点二次(抛物 插值多项式 三点二次 抛物)插值多项式 抛物 插值多项式:
(x x1)(x x2 ) y + (x x0 )(x x2 ) y + (x x0 )(x x1) y L2(x) = (x0 x1)(x0 x2 ) 0 (x1 x0 )(x1 x2 ) 1 (x2 x0 )(x2 x1) 2
1 0.9 0.8 0.7 0.6 n=40
n= 20
0.5 0.4 0.3 0.2 0.1 0 -6
返 回
-4 -2 0 2 4 6
-4
-2024来自612三次样条插值
比分段线性插值更光滑。 比分段线性插值更光滑。
y
a
xi-1
xi
b
x
在数学上,光滑程度的定量描述是:函数(曲线)的 k阶导数存在且连续,则称该曲线具有k阶光滑性。 光滑性的阶次越高,则越光滑。是否存在较低次 的分段多项式达到较高阶光滑性的方法?三次样条插值 就是一个很好的例子。
Pn (x) = ∑Li (x) yi
i=0
n
其中Li(x) 为n次多项式:
(x x0 )(x x1 )L(x xi1 )(x xi+1 )L(x xn ) Li (x) = (xi x0 )(xi x1 )L(xi xi1 )(xi xi+1 )L(xi xn )
称为拉格朗日插值基函数 拉格朗日插值基函数。 拉格朗日插值基函数
27
测得平板表面3*5网格点处的温度分别为: 3*5网格点处的温度分别为 例:测得平板表面3*5网格点处的温度分别为: 82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 试作出平板表面的温度分布曲面z=f(x,y)的图形。 z=f(x,y)的图形 试作出平板表面的温度分布曲面z=f(x,y)的图形。
y
*
节点可视为由 产生, y = g (x ) 产生
g 表达式复杂 表达式复杂,
或无封闭形式, 或无封闭形式 或未知。 或未知。
4
x0 x1 x
*
xn
求解插值问题的基本思路
构造一个(相对简单的 函数 通过全部节点, 构造一个 相对简单的)函数 y = f ( x ), 通过全部节点 即 相对简单的 再用 计算插值, f (x) 计算插值,即 y = f ( x ).
双线性插值
y (x1, y2) (x2, y2) x
(x1, y1) (x2, y1)
O
双线性插值是一片一片的空间二次曲面构成。 双线性插值函数的形式如下: f (x, y) = (ax + b)(cy + d) 其中有四个待定系数,利用该函数在矩形 的四个顶点(插值节点)的函数值,得到四个 代数方程,正好确定四个系数。
返回
0.1 0 -5
-4
-3
-2
-1
0
1
2
3
4
5
15
三种插值的比较
拉格朗日插值(高次多项式插值): 拉格朗日插值(高次多项式插值):
曲线光滑; 曲线光滑;误差估计有表达式 收敛性不能保证(振荡现象) 收敛性不能保证(振荡现象) 用于理论分析, 用于理论分析,实际意义不大
分段线性插值: 分段线性插值:
xi处的插 xi处的插 值结果 插值节点 被插值点 插值方法
‘nearest’ :最邻近插值 线性插值; ‘linear’ : 线性插值; 三次样条插值; ‘spline’ : 三次样条插值; 立方插值。 ‘cubic’ : 立方插值。 缺省时: 分段线性插值。 缺省时: 分段线性插值。 注意:所有的插值方法都要求x是单调的, 注意:所有的插值方法都要求x是单调的, 并且xi不能够 超过x的范围 的范围。 并且 不能够 超过 的范围。
x
O
将四个插值点(矩形的四个顶点)处的函数值依次 简记为: f (xi, yj)=f1,f (xi+1, yj)=f2,f (xi+1, yj+1)=f3,f (xi, yj+1)=f4
24
分两片的函数表达式如下: 第一片(下三角形区域): (x, y)满足
插值函数为: f (x, y) = f1 + (f 2 f1 )(x xi ) + (f3 f 2 )(y y j ) 第二片(上三角形区域):(x, y)满足 y j+1 y j y> (x xi ) + yi xi+1 xi 插值函数为: f (x, y) = f1 + (f 4 f1 )(y y j ) + (f3 f 4 )(x xi ) 注意:(x, y)当然应该是在插值节点所形成的矩形区 注意 域内。显然,分片线性插值函数是连续的; 返回 25
第二种(散乱节点): 第二种(散乱节点):
y
0
x
21
已知n个节点 已知 个节点 其中 构造一个二元函数 互不相同, 互不相同, 通过全部已知节点,即 通过全部已知节点 即
再用
计算插值, 计算插值,即
返回
22
最邻近插值
y (x1, y2) (x2, y2) x
收敛性良好 只用两个节点,且线性, 只用两个节点,且线性,简单实用 曲线不光滑
三次样条插值:(*) 三次样条插值:(*)
曲线2阶光滑, 曲线 阶光滑,收敛性有保证 阶光滑 实际中应用广泛 误差估计较难
返回
16
用MATLAB作插值计算 MATLAB作插值计算
一维插值函数: 一维插值函数:
yi=interp1(x,y,xi,'method') , , ,
17

已知飞机下轮廓线上数据如下, 每改变0.1时的 已知飞机下轮廓线上数据如下,求x每改变 时的 值。 每改变 时的y值
X Y
0 3 5 7 9 1 1 1 1 1 1 2 3 4 5 0 12 17 20 21 20 18 12 10 16 . . . . . . . . .
y 机翼下 轮廓线
直接验证可知 , L n ( x )满足插值条件 .
7

1 g(x) = , 5 ≤ x ≤ 5 2 1+ x
采用拉格朗日多项式插值:选取不同插值 节点个数n+1,其中n为插值多项式的次数,当n 分别取2,4,6,8,10时,绘出插值结果图形.
To Matlab lch(larg1)
拉格朗日多项式插值的 这种振荡现象叫 Runge现象 现象
Mathematical modeling
数学建模与数学实验
插 值
山东建筑大学
1

一、插值的定义 二、插值的方法



拉格朗日插值 分段线性插值
三次样条插值 三、用Matlab解插值问题 解插值问题 返回
2
二维插值
一、二维插值定义 二、网格节点插值法
最邻近插值 分片线性插值 双线性插值
Matlab解插值问题 三、用Matlab解插值问题
11
1 0.9 0.8 0.7 0.6 0.5 n=4 0.4 0.3 0.2 0.1 0 -6
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -6
n= 10
-4
-2
0
2
4
6
-4
-2
0
2
4
6
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -6
返回
8
2 1.5 1 0.5 0 -0.5 n=8 -1 -1.5 -5 y=1/(1+x 2 ) n=4 n=2 n=10
n=6
0
5
9
分段线性插值
y o
Ln ( x) =
xj-1 xj xj+1 xn x
x0

n
j=0
y jl j ( x )
x x j 1 , x j 1 ≤ x ≤ x j x j x j 1 x x j +1 , x j ≤ x ≤ x j +1 l j (x) = x j x j +1 0, 其它
(x1, y1) (x2, y1)
O
二维或高维情形的最邻近插值,与被插值点最邻近的 节点的函数值即为所求。 注意: 注意:最邻近插值一般不连续。具有连续性的最简单 的插值是分片线性插值。
相关主题