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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据插值和函数逼近

1 数据插值

由已知样本点,以数据更为平滑为目标,求出其他点处的函数

值。在信号处理与图像处理上应用广泛。

求解方法:

y1=interp1(x,y,x1,'方法')

z1=interp2(x,y,z,x1,y1,'方法')

1.1 一维数据的插值

例:假设样本点来自x e x x x f x sin )53()(52-+-=,进行插值处理,得到平

例:草图样条曲线功能。

function sketch()

x=[]; y=[]; gca;

hold on; axis([0 1,0 1]);

while 1

[x0,y0,button]=ginput(1);

if(isempty(button)) break; end;

x=[x x0]; y=[y y0];

plot(x,y,'*');

end;

xx=[x(1):(x(end)-x(1))/100:x(end)];

yy=interp1(x,y,xx,'spline');

plot(xx,yy,x,y,'*');

end

1.2 二维网格数据的插值

例3:假设样本点来自xy y x e x x z ----=2

2)2(2,进行插值处理,得到平滑的曲

1.3 二维一般分布数据的插值

例4:假设样本点来自xy y x e

x x z ----=22)2(2,进行插值处理,得到平滑的曲

2 样条插值函数逼近

由已知样本点,求能对其较好拟合的函数表达式。

求解方法:

S=csapi(x,y); % 定义一个三次样条函数类

S=spapi(k,x,y); % 定义一个k 次B 样条函数类

ys=fnval(S,xs); % 计算插值结果

fnplt(S); % 绘制插值结果

例:从)sin(x y =中取样本点,计算三次样条函数。

练习:利用上例中的变量S,生成各个曲线段的参数方程,并绘

例:从)sin(x y =中取样本点,计算三次B 样条函数。

3 多项式的插值与函数逼近

3.1 多项式的基本运算

设多项式为:116251234++-x x x 直接输入系数向量创建多项式

p1=[1 -12 0 25 116];

y=poly2sym(p1);

求多项式的根

r=roots(p1);

由多项式的根逆推多项式

p2=poly(r); p2和p1等价

求多项式的值

polyval (p1,[1 2; 3 4]); % 以数组为运算单位

polyvalm(p1,[1 2; 3 4]); % 以矩阵为运算单位

求多项式的微积分

q=polyder(p); % 导数

r=polyint(q); % 积分

设多项式为:322++x x 与2+x 。

a=[1 2 3]; b=[1 2];

c=conv(a,b); % 乘积

[q,r]=deconv(a,b); % 相除

q=1 0 %商多项式

r=0 0 3 %余多项式

3.2 Lagrange 插值算法

∑∏=≠=--=N i N i j j

i i

x x x x y x 1,1)(φ

3.3 多项式函数逼近

求解方法:

p=polyfit (x,y,n); 计算n 次多项式的降幂排列的系数向量 y=polyval (p,x); 计算多项式的值

主要用于针对实验数据,进行解析描述。

例:假设样本点来自x e x x x f x sin )53()(52-+-=,比较3次、5次多项式插

4 函数设计中的参数逼近

4.1 函数线性组合的参数逼近

已知某函数是若干已知函数的组合,

C F x f c x f c x f c y n n ⋅=+++=)()()(2211 ,已知数据

),(11y x ,),(22y x ,……),(M M y x ,则有方程组:

Y C F =⋅

⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=M n M n M M n n y y y Y c c c C x f x f x f x f x f x f x f x f x f F 2121212222

111211,,)()()()()()()()()( 有n 个待求的未知系数,有M 个方程,所以只能求方程的最小

二乘解: Y F C \=

例:已知函数原型为2443321)2cos()(x c e x c e

c c x g x x +-++=--,已知以下数

C

4.2 函数中的参数逼近

已知数据),(11y x ,),(22y x ,……),(N N y x ,满足函数),(x a f ,其中a

是待定系数的向量。目标是求出a 。

即定义最优化问题:∑=-=N

i i i a x a f y J 12)],([min

[a,res]=lsqcurvefit(fun,a0,x,y)

例:设采样点如下:

x=0:1:10;

y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);

已知数据满足)sin(*),(5314

2x a e a e a x a f x a x a --+=,求最佳拟合的参

数。

4 多项式运算

相关文档
最新文档