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