数据插值和函数逼近MATLAB实现.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据插值和函数逼近
1数据插值
由已知样本点,以数据更为平滑为目标,求出其他点处的函数
值。在信号处理与图像处理上应用广泛。求解方法:
yl=interpl (x, y, xl,'方法,)
zl=in terp2 (x, y, z, xl, yl,'方法,)
1. 1 一维数据的插值
例:假设样本点来自/(兀)=(亍_3兀+ 50叫山兀,进行插值处理,得到平滑的曲线。
x二0:0. 1:1; y二(x・”2-3*x+5). *exp (-5*x). *sin(x); plot (x, y,' ; hold on ;
xs二0:0. 01:1;
yl= interpl (x, y, xs) ; % 线性插值
y2= interpl (x, y, xs, 'cubic'、 % 分段 3 次Hermite 扌西值y3= interpl (x, y, xs, 'spline'、% 分段三次样条插值plot (xs, yl,,r , xs, y2,,g , xs, y3,,b,);
例:草图样条曲线功能。
function sketch()
x=[] ; y=[] ; gca;
hold on; axis([0 1, 0 1]); while 1
[xO, yO, button]二ginput (1);
16s
if (isempty (button)) break; end; x=[x xO]: y=[y yO]; plot (x, y,' ; end;
xx 二[x(l) : (x(end)-x(1))/100:x(end)]; yy=interpl (x, y, xx,' spline'); plot (xx, yy, x, y ,‘*'); end 1.2二维网格数据的插值
例3 :假设样本点来自2 = (/_2兀0宀宀卩,进行插值处理,得到平滑的曲 面。
[x, y]=meshgrid(-3:0. 6:3, -2:0. 4:2);
z 二(x.八 2 2*x)・ * exp (-x ・"2—y. ^2~x ・ *y) ; mesh (x, y, z);
[xl, yl]=meshgrid(-3:0. 2:3, -2:0. 2:2); zl=interp2 (x, y, z, xl, yl) ;mesh(xl, yl, zl);
zl=interp2 (x, y, z, xl, yl,' cubic') ;mesh (xl, yl, zl); zl=interp2 (x, y, z,
xl, yl, ' spline') ;mesh(xl, yl, zl);
/
4
-1 2
-2
-4
1.5
丫
1 . 0.5, 0. •0.5
、
f ・
K
、
1. 3二维一般分布数据的插值
例4 :假设样本点来自z = (x 2
-2兀)旷宀宀卩
面。
x=-3+6*rand(200, 1); y=~2+4*rand(200, 1);
z 二(x. ”2-2*x)・ *exp (-x. "2-y. 2-x. *y) ; plot3 (x, y, z,' ; [xl, yl]二meshgrid(-3:0・ 2:3, -2:0. 2:2); zl=griddata(x, y, z, xl, yl, ' cubic') ; mesh(xl, yl, zl) zl=griddata(x, y, z, xl, yl, ' v4') ; mesh(xl, yl, zl)
2样条插值函数逼近
由已知样本点,求能对其较好拟合的函数表达式。 求解方法: %定义一个三次样条函数类 %定义一个k 次E 样条函数类 %计算插值结果 %绘制插值结果
例:从
y = sin (
Q 中取样本点,计算三次样条函数。 %准备样本点
sin(t)
~Illi
x 二[0, 0. 4, 1, 2, pi, 1. 5*pi, 2*pi]; 1
y=si n(x);
05
-/ \ •
%计算三次样条函数
Oc
>
S=csapi (x, y);
\ /
); hold on;
•0.5
- \ /
ezplotC sin(t)', [0 2*pi]);
•1
1
1
1
1
1
fl
,进行插值处理,得到平滑的曲 S=csapi (x, y); S=spapi (k, x, y); ys=fnval (S,xs);
6个曲线段的参数方程的系数S・ coefs :
-0. 1393 -0.0250 1. 0059 0
-0. 1393 -0. 1923 0.9189 0.3894
-0・ 0268 -0. 4431 0. 5377 0. 8415
0. 1766 -0. 5236 -0. 4289 0.9093
0. 0688 0. 0813 -0.9339 0.0000
0. 0688 0. 4053 -0. 1697 -1.0000
第2个曲线段的参数方程:
S2(x) = -0.1393(%一0・4尸-o」923(兀一0.4)2 + 0.9189(兀一0.4) + 0.3894
练习:利用上例中的变量S,生成各个曲线段的参数方程,并绘制图形。
例:从y = sin(x)中取样本点,计算三次B样条函数。