Matlab一维插值interp1例子及可视拟合界面

上传人:M****1 文档编号:464115814 上传时间:2022-10-08 格式:DOC 页数:9 大小:389.50KB
返回 下载 相关 举报
Matlab一维插值interp1例子及可视拟合界面_第1页
第1页 / 共9页
Matlab一维插值interp1例子及可视拟合界面_第2页
第2页 / 共9页
Matlab一维插值interp1例子及可视拟合界面_第3页
第3页 / 共9页
Matlab一维插值interp1例子及可视拟合界面_第4页
第4页 / 共9页
Matlab一维插值interp1例子及可视拟合界面_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Matlab一维插值interp1例子及可视拟合界面》由会员分享,可在线阅读,更多相关《Matlab一维插值interp1例子及可视拟合界面(9页珍藏版)》请在金锄头文库上搜索。

1、维插值:离散点上的数据集,即在点集X上对应的函数值Y,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。MATLAB 命令:yi=interp1(X, Y, xi, method)一些个人经验说明: 关于拟合参数的,X必须是向量,行向量或列向量均可,不可以是复数 Y是向量或矩阵.但必须满足行数与length(X)相同即size(Y,1)=length (X) 针对以上说明的例子function tu x=5 1 2 20 14 21y=rand(6,2)%按列计算的xi=linspace(0,21,100);yi=interp1(x,y,xi,cub

2、ic)plot(x,y,o,xi,yi)size(x)size(y,1)length(x)结果size(x)61size(y,1)6length(x)6该命令用指定的算法找出一个一元函数 ,然后以给出处的值。xi可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以以下方法之一:nearest最近邻点插值,直接完成计算;spline三次样条函数插值;linear线性插值(缺省方式),直接完成计算;cubic三次函数插值;对于min(xi,max(xi外的值,MATLAB使用外推的方法计算数值。%- 09-4-1 下午 8:38 -%数据t=1900:10:1990;p=75.9

3、95,91.972,105.711,123.203,131.669,150.697,179.323,203.212,226.505,249.633; x=1900:0.01:1990;%使用不同的方法进行一维插值yi_linear=interp1(t,p,x); % 线性插值yi_spline=interp1(t,p,x,spline);%三次样条插值yi_cubic=interp1(t,p,x,cubic);%三次多项式插值yi_v5cubic=interp1(t,p,x,v5cubic);%matlab5中使用的三次多项式插值%绘制图像比照subplot(2,1,1);plot(t,p,k

4、o);hold on;plot(x,yi_linear,g,LineWidth,1.5);grid on;plot(x,yi_spline,y,LineWidth,1.5);title(Linear VS Spline )subplot(2,1,2);plot(t,p,ko);hold onplot(x,yi_cubic,g,LineWidth,1.5);grid on;plot(x,yi_v5cubic,y,LineWidth,1);title(Cubic VS V5cubic );%创立新图形窗口figureyi_nearest=interp1(t,p,x,nearest);%最邻近插值法

5、plot(t,p,ko);hold onplot(x,yi_nearest,g,LineWidth,1.5);grid on;title(Nearest Method);%以下是根据拟合估计msg=year Cubic Linear Nearest Spline;for i=0:8n=10*i;year=1905+n;pop(i+1,1)=year;pop(i+1,2)=yi_cubic(year-1900)/0.01+1);pop(i+1,3)=yi_linear(year-1900)/0.01+1);pop(i+1,4)=yi_nearest(year-1900)/0.01+1);pop(

6、i+1,5)=yi_spline(year-1900)/0.01+1);endP=round(pop);disp(msg)disp(P)结果如图:由此可见,各种插值的优劣,在速度上,Nearest最快,然后是Linear再到Cubic,最慢的 是Spline.但是精度和曲线的平滑度恰好相反,Nearest甚至不连续系统默认的是LinearyearCubicLinearNearestSpline190584849285191599991069819251151141231151935127127132128194S14014115113919551651651791651965192191203

7、19219752152152272151985238238250238当然也可以用图形界面更易理解Basic Fitting 一 1nsnSelect data data 1 0 Center snd scale X dat株Numerical resultsPlot ItsCheck to display fits on figurespline interpolantshape-preserving interpolant linearquadraticcubic4th degres polynomial5th degres polynomial6th dees polynomial7th

8、 degree polynomial 8th degres polynomial 9th degres polynomial10th degree polynomial回 Show equationsSigniticant digits: 2 vFit: quadraticvCoeflicients and norm of residuals y = pl*xA2 + j2*x*l + p3Coeffici iits: pl = 8.4985 p2 = 58 339 p3 = 146.14form o r esi duals = 10.107Bar plotVSubplotVp Show no

9、rtn of residualsSave to workspace .300y = 5日*汇十 1,5e-H)D2y = 8.5* + 69x5t 4*T.6e4Q02y = 0.15*x3 + 3.5*x2 十 56*x + 1 5e+002y = _*/ +0 15*x3 + 2Q*x2 + 59S 4-1.4a4C02附录:Matlab样条工具箱(Spline ToolBox)【信息来源教师博客】Matlab样条工具箱中的函数提供了样条的建立,操作,绘制等功能;一.样条函数的建立第一步是建立一个样条函数,曲线或者曲面。这里的样条函数,根据前缀,分为4类:cs*三次样条pp*分段多项式样条

10、,系数为 tAn的系数sp* B样条,系数为基函数B_nAit的系数 rp*有理B样条二.样条操作样条操作包括:函数操作:求值,算术运算,求导求积分等等 节点操作:主要是节点重数的调节,设定,修改等等附:样条工具箱函数1. 三次样条函数csapi插值生成三次样条函数csape生成给定约束条件下的三次样条函数csaps平滑生成三次样条函数cscvn生成一条内插参数的三次样条曲线getcurve动态生成三次样条曲线2. 分段多项式样条函数ppmak生成分段多项式样条函数ppual计算在给定点处的分段多项式样条函数值3. B样条函数spmak生成B样条函数spcrv生成均匀划分的 B样条函数spap

11、i插值生成B样条函数spap2用最小二乘法拟合生成B样条函数spaps对生成的B样条曲线进行光滑处理spcol生成B样条函数的配置矩阵4. 有理样条函数rpmak生成有理样条函数rsmak生成有理样条函数5. 样条操作函数fnval计算在给定点处的样条函数值fmbrk返回样条函数的某一局部如断点或系数等fncmb对样条函数进行算术运算fn2fm把一种形式的样条函数转化成另一种形式的样条函数fnder求样条函数的微分即求导数fndir求样条函数的方向导数fnint求样条函数的积分fnjmp在间断点处求函数值fnplt画样条曲线图fnrfn在样条曲线中插入断点。fntlr生成tarylor系数或taylor多项式6. 样条曲线端点和节点处理函数augknt在节点数组中添加一个或多个节点aveknt求出节点数组元素的平均值brk2knt增加节点数组中节点的重次knt2brk从节点数组中求得节点及其重次knt2mlt从节点数组中求得节点及其重次sorted求出节点数组的元素在另一节点数组中属于第几个分量aptknt求出用于生成样条曲线的节点数组newknt对分段多项式样条函数进行重分布optknt求出用于内插的最优节点数组chbpnt求出用于生成样条曲线的适宜节点数组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号