数据插值和函数逼近MATLAB实现.docx

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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样条函数。

相关文档
最新文档