当前位置:文档之家› 插值与拟合(使用插值还是拟合)

插值与拟合(使用插值还是拟合)

利用matlab实现插值与拟合实验张体强1026222张影晁亚敏[摘要]:在测绘学中,无论是图形处理,还是地形图处理等,大多离不开插值与拟合的应用,根据插值与拟合原理,构造出插值和拟合函数,理解其原理,并在matlab平台下,实现一维插值,二维插值运算,实现多项式拟合,非线性拟合等,并在此基础上,联系自己所学专业,分析其生活中特殊例子,提出问题,建立模型,编写程序,以至于深刻理解插值与拟合的作用。

[关键字]:测绘学插值多项式拟合非线性拟合[ Abstract]: in surveying and mapping, whether the graphics processing, or topographic map processing and so on, are inseparable from the interpolation and fitting application, according to the interpolation and fitting theory, construct the fitting and interpolation function, understanding its principle, and MATLAB platform, achieve one-dimensional interpolation, two-dimensional interpolation, polynomial fitting, non-linear fitting, and on this basis, to contact their studies, analysis of their living in a special example, put forward the question, modeling, programming, so that a deep understanding of interpolation and fitting function.[ Key words]:Surveying and mapping interpolation polynomial fitting nonlinear一: 引言通常在生产实际及科学研究中,我们经常要研究变量之间的函数关系y=f(x),若f(x)的表达式很复杂,或f(x)只是一张数据来表示,这都给研究带来困难,因此我们希望用一个函数P(x)来代替它,把研究f(x)的问题转化成研究,由于近似含义不同,就有插值和拟合两种情况。

Matlab是一款功能强大的科学数学计数器,利用matlab可以成功的完成插值与拟合等任务,在编写插值与拟合程序前,本人从以下步骤分析和实现插值与拟合。

图1 插值与拟合分析流程图二:拉格朗日插值原理和插值多项式构造一般地,已知函数y=f(x)在互异的n+1个点x 0 , x 1 ,…….x n 处的函数值y0,y1,y2…….yn 就是构造一个多项式L n (x)。

如果一个n 次多项式()(0,1,,)k l x k n =在n+1个互异的节点x 0 , x 1 ,…….x n 满足 则称()(0,1,,)k l x k n =为节点01,,,n x x x 上的n 次插值基函数,那么我们可以求出插值基函数为:于是满足条件()(0,1,,)n j j L x y j n ==,则称n 次插值多项式L n (x)为则L n (x)为拉格朗日插值多项式。

记插值余项为以下: 则1011'()()()()()n k k k k k k k n x x x x x x x x x ω+-+=----于是:101()()()'()nn n kk k n k x L x y x x x ωω+=+=-∑ 上面公式为完整的拉格朗日插值公式。

1,()0,k j kj j k l x j kδ⎧=⎪==⎨≠⎪⎩(,0,1,,)k j n =011011()()()()(),(0,1,,)()()()()k k n kk k k k k k n x x x x x x x x l x k n x x x x x x x x -+-+----==----0()()nn k k k L x y l x ==∑1010()()()()(),nn j n j x x x x x x x x x ω+==-=---∏三:拉格朗日插值事例分析1:一维插值Matlab在计算一维插值函数时使用函数interp1,该函数提供了四种插值函数方法选着,分别是:线性插值,三次样条插值,三次插值和最近点插值(linear,spline,cubic,nearest),其基本格式是:Intrer1(x,y,cx,’method’)其中x,y分别表示为数据点的横纵坐标,x必须单调,cx为需要的插值的坐标,不能超过x的范围,例:在12个小时内,东海某一特殊区域每相隔一小时水温大致分布如下:5,7,9,16,24,28,31,29,22,25,27,24.现在利用此数据分析东海该区域在第3.5小时,6.3小时.7.2小时的水温。

解:在matlab程序中输入以下程序hours=1:12;temps=[5,7,9,16,24,28,31,29,22,25,27,24];t=interp1(hours,temps,[3.5,6.3,7.2]);t =12.5000 28.9000 30.60002:二维插值在我们海洋测绘专业中,二维插值无处不在,在画海图的时候计算其水深分布,危险物分布,水温分布等,在山区测绘工作中用的十分广泛,例如画山区山形图,山形图像处理(如平滑,锐化)等,让其图像更清晰等,而matlab二维插值有以下:‘nearest’最邻近插值;‘linear’双线性插值;‘cubic’双三次插值;缺省时双线性插值其格式为:z=interp2(x0,y0,z0,x,y,’method’)方法和一维一样的现在以书上的例题为例(p308):输入以下命令:x=1:5;y=1:3;temps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];mesh(x,y,temps)图2:原水温分布图xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi',yi,'cubic');mesh(xi,yi,zi)图3 平滑后的水温分布四:拟合的方原理和方法所谓拟合是指已知某函数的若干离散函数值,f1,f2,…,fn-,通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别最小。

如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。

表达式也可以是分段函数,这种情况下叫作样条拟合。

1:多项式拟合假设给定数据点 (i=0,1,…,m),为所有次数不超过的多项式构成的函数类,现求一,使得(1)当拟合函数为多项式时,称为多项式拟合,满足式(1)的称为最小二乘拟合多项式。

如果利用matlab 拟合,则可以简化大部分步骤,因为matlb 里面提供了函数polyfit(x,y,m),多项式在x 处的y 的值可以用一下命令计算: Y=ployval(A,x)例:对于以下数据:利用多项式拟合有: x=0:0.1:1;y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; A=polyfit(x,y,2) z=polyval(A,x); plot(x,y,'k+',x,z,'r')图4 多项式曲线拟合图2:非线性最小二乘拟合在最小二乘法中,如果我们寻求函数f(x)是任意的非线性函数,则称为非线性最小二乘拟合,matlab 中提供函数lsqcurvefit 。

已知数据点: xdata=(xdata 1,xdata 2,…,xdata n ),ydata=(ydata 1,ydata 2,…,ydata n )lsqcurvefit 用以求含参量x (向量)的向量值函数F(x,xdata)=(F (x,xdata 1),…,F (x ,xdata n ))T 中的参变量x(向量),使得21((,))niii F x xdata ydata =-∑最小输入格式为:(1) x = lsqcurvefit (‘fun’,x0,xdata,ydata); (2) x =lsqcurvefit(‘fun’,x0,xdata,ydata,options);(3)x=lsqcurvefit(‘fun’,x0,xdata,ydata,options,’grad’); (4) *x,options+=lsqcurvefit(‘fun’,x0,xdata,ydata,…); (5) [x,options,f unval+=lsqcurvefit(‘fun’,x0,xdata,ydata,…); (6)*x,options,funval,Jacob+=lsqcurvefit(‘fun’,x0,xdata, ydata,…); 例对下面一组数据拟合为0.0.2()e ktc t a b =+编写m 文件function f=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中 x(1)=a; x(2)=b ;x(3)=k; tdata=100:100:1000cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10, 6.26,6.39,6.50,6.59]; x0=[0.2,0.05,0.05];x=lsqcurvefit ('curvefun1',x0,tdata,cdata) f= curvefun1(x,tdata)f =0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063x = 0.0063 -0.0034 0.2542五:插值与拟合实际建模与分析基于前面所述插值与拟合的基础上,分析插值与拟合在本专业中应用 1:问题的提出在测绘专业中时常会提到曲线放样,我国的公路的平面曲线设计中,主要是以直导线与圆曲线的组合以及直导线与复曲线的组合为主,在解决曲线的顺应性(光滑性)方面,也只用了缓和曲线来进行直线,曲线的过度,在这种设计模式下,在地形和其他条件受到限制条件下必然使设计标准降低,设计效果不能很好的满足规范要求,所以在一些先进的国家中试图突破以往设计模式。

相关主题