当前位置:文档之家› 第四讲:曲线曲面的插值与拟合方法

第四讲:曲线曲面的插值与拟合方法


二维曲面等距插值函数interp2
interp2's syntax Two-dimensional data interpolation ZI = interp2(X,Y,Z,XI,YI,method) 'nearest' Nearest neighbor interpolation 'linear' Bilinear interpolation (default) 'spline' Cubic spline interpolation 'cubic' Bicubuc interpolation
分段三次埃尔米特插值条件数
9
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 的
分段三次埃尔米特插值: 线性插值在每一小段上(两点之间),用到2个条件 q(xi)=yi,所以确定了一个线性插值函数;三次埃 尔米特插值在每一小段上,用到4个条件q(xi)=yi, q'(xi)=y'i,所以确定一个3次多项式插值函数。 分段插值主要是为了避免高次插值可能出现的 大幅度振荡现象,在实际应用中通常采用分段低 次插值来提高近似程度,比如可用分段线性插值 或分段三次埃尔米特插值来逼近已知函数,但它 们的总体光滑性较差,为了克服这一缺点,三次 样条插值成为比较理想的工具。
面对工程实践和科学计算中的采集得到数据 (xi,yi),我们总是试图去揭示x与y之间的关系,即 用近似的y=f(x)来表示,那么我们通常可以采用两 种方法:插值与拟合 插值与拟合的区别在于—— 插值试图去通过已知点了解未知 点处的函数值;而拟合则在于在 整体上用某种已知函数去拟合数 据点列所在未知函数的性态。 关键区别在于插值要求必须经过已知点列,拟 合只求尽量靠近不必经过!拟合将在本讲下介绍~
第 四 讲 曲 线 曲 面 的
分段线性插值和拉格朗日插值
分段线性插值: 用直线(线性)连接数据点列上相邻的两点。 比如~在两点[xi-1,xi]上线性插值函数为~
插 值 与 拟 合 方 法
7
x xi x xi 1 第 q ( x) yi 1 四 xi 1 xi xi xi 1 讲 曲 x [ xi 1 , xi ], i 0,1, 2,..., n 线 曲 拉格朗日插值: 面 的 用n次拉格朗日插值多项式
x=0:2:24; y=[12,9,9,10,18,24,28,27,25,20,18,15,13]; plot(x,y,'-ro'); hold on; xi=15.1; yi=interp1(x,y,xi,'spline'), xi=0:1/3600:24; yi=interp1(x,y,xi,'spline'); plot(xi,yi,'b-');
x = rand(100,1)*16 - 8; y = rand(100,1)*16 - 8; r = sqrt(x.^2 + y.^2) + eps; z = sin(r)./r; plot3(x,y,z,'.','MarkerSize',15) hold on
20
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 xlin = linspace(min(x),max(x),33); 的 ylin = linspace(min(y),max(y),33); [X,Y] = meshgrid(xlin,ylin); Z = griddata(x,y,z,X,Y,'cubic'); mesh(X,Y,Z); axis tight;
Ln ( x)
yi
y
k 0
n
k
lk ( x)
连接数据点列上相邻的n+1个点。Pszjs71
拉格朗日插值基函数的构造
比如 在三个点[x0,x1,x2]上lagrange插值函数为 (线性插值是拉格朗日插值最简单的情形)
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
8
L2 ( x )
与 拟 合 方 法 讲 曲 线 曲 面 的
18
'linear' 'cubic' 'nearest' 'v4'
Triangle-based linear interpolation Triangle-based cubic (default) Nearest neighbor MATLAB 4 griddata method
函数查表与地图边界线绘制
引例1 函数查表问题: 已知标准正态分布函数表,求表中没有的值 (2.34)=0.99036 (2.35)=0.99061
插 值 与 拟 合 方 法 第 四 (2.3457)=? 求 ~ 讲 曲 (2.3457) ≈(2.35-2.3457)/(2.35-2.34)* (2.34)+ (2.3457-2.34)/(2.35-2.34)* (2.35) 线 曲 面 的 引例2 地图绘制问题:
MATLAB二维插值函数griddata, 可以将平面或曲面上的散乱点插值为规则网格
二维曲面散乱插值函数griddata
题例 粗糙山顶曲面的平滑处理(散乱情形)
rand('seed',0) x = rand(100,1)*4-2; y = rand(100,1)*4-2; z = x.*exp(-x.^2-y.^2); plot3(x,y,z,'o'); hold on
题例 在原始数据点中增倍插值
x=0:0.001:1; y=sin(2*pi*30*x)+sin(2*pi*60*x); yi=interp(y,4); subplot(1,2,1); stem(y(1:30)); title('Original Points'); subplot(1,2,2); stem(yi(1:120)); title('Interpolated Points');
拟曲 合线 方曲 法 面 的
x2
x1
q2
x0
q1
一维曲线等距插值函数interp
12
interp's syntax One-dimensional r times longer data interpolation y = interp(y,r)
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
一维曲线等距插值函数interp1
13
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 的
interp1's syntax One-dimensional data interpolation yi = interp1(x,y,xi,method) 'nearest' Nearest neighbor interpolation 'linear' Linear interpolation (default) 'spline' Cubic spline interpolation 'cubic ' Piecewise cubic Hermite interpolation 题例 在一天24小时内,从零点开始每间隔2小时测 得的环境温度,推测在15点6分的的温度
16
二维曲面等距插值函数interp2
题例 粗糙山顶曲面的平滑处理(等距情形)
17
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 的
二维曲面散乱插值函数griddata
griddata's syntax Data interpolation for scattered points ZI = griddata(x,y,z,XI,YI) [XI,YI,ZI] = griddata(x,y,z,xi,yi) 插第 值 四 [...] = griddata(...,method)
y
k 0
2
k
lk ( x )
y0l0 ( x ) y1l1 ( x ) y 2l 2 ( x ) ( x x1 )( x x2 ) L2 ( x ) y0 ( x0 x1 )( x0 x2 ) ( x x0 )( x x2 ) y1 ( x1 x0 )( x1 x2 ) ( x x0 )( x x1 ) y2 ( x2 x0 )( x2 x1 )
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
106*40原始图像: 左边: 最近邻插值 放大450% 右边: 双三次插值 放大450%
插值在图像三维重建中的应用
6
Surface recostruction from scattered points cloud
插 值 与 拟 合 方 法
三次样条(spline)插值的概念
10
样条的概念出自工程设计和机械加工(飞机、船 舶外形曲线设计)中的绘图工具(曲线尺),简单说 就是具有连续二阶导数的三次插值多项式函数。
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
三次样条(spline)插值的条件数
11
首先从段数n=2分析:我们知道在每一小段的 三次多项式有4个系数,所以如下图,总共需要有 4*2=8个方程来确定; 由q(xi)=yi可以确定2*2=4个 方程,又由内部节点q1'(xi)= q2'(xi)和q1''(xi)= 插第 值 四 q2''(xi)可以确定2*(2-1)=2个方程,看来剩下的8与 讲 (4+2)=2个方程只有靠外部给定(边界条件)了
3
假如我们在地图边界获取了一些边界点的坐标, 连接这些边界点形成闭合曲线,可以用来近似表 示真实边界线,如何更准确地逼近真实边界线?
相关主题