多项式拟合与插值的计算方法
2.对 y=cosx 的数据进行插值,比较各种插值方法
程序如下: x=[-2*pi:0.5*pi:2*pi]; y=cos(x); x1=-2*pi:0.3*pi:2*pi; y_nearest=interp1(x,y, x1,'nearest'); y_linear= interp1(x,y,x1); y_spline= interp1(x,y,x1, 'spline' ); y_cubic= interp1(x,y,x1, 'cubic' ); plot(x,y,'o',x1,y_nearest,'-',x1,y_linear, 'r* ', x1,y_spline,'k:',x1,y_cubic,'k -'); legend ('original data','nearest','linear','spline','cubic') 3.在某处测得海洋不同深处水温 如下: 深度(m) 水温(° C) 446 7.04 714 4.28 950 3.40 1422 2.54 1634 2.13
2.27 2.1 1.83 1.53 1.7
1.9 2.35 2.54 2.9
程序如下: x=37:0.5:43; y=[3.4,3,3,2.27,2.1,1.83,1.53,1.7,1.8,1.9,2.35,2.54,2.9]; plot(x,y,'*'); p=polyfit(x,y,2) y1=0.1660*x.^2-13.3866*x+271.6231 plot(x,y,'*',x,y1,'r*-')) R=sum((polyval(p,x)-y).^2)
-6
-4
-2
0
2
4
6
8
3.
8 original data spline 7
6
5
4
3
2 400
600
800
1000
1200
1400
1600
1800
思考题: 何时应采取多项式拟合? 通常,在解决实际问题时先将已知数据的散点图画出,然后设计拟合的曲线类型,最后根据某 种准则选定最佳的曲线.
4
成 绩
5
试求在深度为 500 米,1000 米,1500 米处的水温。 h=[446,714,950,1422,1634]; w=[7.04,4.28,3.40,2.54,2.13];
1
hi=[500,1000,1500]; p=spline(h,w); ci=ppval(p,hi) plot(h,w, 'or') ,hold on,plot(hi,ci,'*') legend ('original data','spline')
安徽财经大学统计与数学模型分析实验中心 《数学软件》实验报告
实验名称:曲线拟合与插值 实 验 目 的 使用软件: Matlab
熟练掌握多项式拟合与插值的计算方法
1.某种合金中的主要成分为 A,B 两种金属,经过试验发现:这两种金属成分之和 x 与合金的 实 验 内 容 (具 体题 目及 程 序) 膨胀系数 y 有如下关系,建立描述这种关系的数学表达式. x y 37 3.4 37.5 3 38 3 38.5 39 39.5 40 40.5 41 1.8 41.5 42 42.5 43
2
实 验
1. 首先作出散点图:
3.4
结 果 分 析
3.2 3 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 37
38
39
40
41
42
43
发现: 有点像抛物线,故选二次函数拟合. p= 0.1660 -13.3866 271.6231 所以 y 0.166x 13.3866x 271.6231
2
将两个图形进行比较:
4
3.5
3
2.5
2
1.5 3738ຫໍສະໝຸດ 394041
42
43
误差平方和: R=sum((polyval(p,x)-y).^2)= 0.2523 2.
3
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -8 original data nearest linear spline cubic