科学计算语言Julia及MWORKS实践 课件 27- 插值与拟合_第1页
科学计算语言Julia及MWORKS实践 课件 27- 插值与拟合_第2页
科学计算语言Julia及MWORKS实践 课件 27- 插值与拟合_第3页
科学计算语言Julia及MWORKS实践 课件 27- 插值与拟合_第4页
科学计算语言Julia及MWORKS实践 课件 27- 插值与拟合_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1、初等数学与线性函数2、插值与拟合3、概率统计分布计算14、优化问题多项式拟合2在许多实验中,我们都经常要对一些实验数据(离散的点)进行多项式的拟合,其目的是用一个较简单的函数去逼近一个复杂的或末知的函数,即用一条曲线(多项式)尽可能地靠近离散的点,使其在某种意义下达到最优.而Syslab曲线拟合的一般方法为最小二乘法,以保证误差最小.在采用最小二乘法求曲线拟合时,实际上是求一个多项式的系数向量.其命令形式如下:fitobject=fit(fitType,x,y) 运用最小二乘法,求由给定向量x和y对应的数据点的fitType拟合模型,fitobject为所求的拟合结果。H=plotfit(fun,x,y)把fun和预测数据x、响应数据y画在一起。

多项式拟合3例:现有一组实验数据:x的取值是从1到2之间的数,间隔为0.1,y的取值为2.1,3.2,2.1,2.5,3.2,3.5,3.4,4.1,4.7,5.0,4.8.要求分别用二次、三次和七次拟合曲线来拟合这组数据,观察这三组拟合曲线哪个效果更好?解:建立jl文件如下:x=1:0.1:2y=[2.1,3.2,2.1,2.5,3.2,3.5,3.4,4.1,4.7,5.0,4.8]p2=fit("poly2",x,y)#多项式拟合,阶数是2p3=fit("poly3",x,y)p7=fit("poly7",x,y)plotfit(p2,"r-",x,y,"m*")hold("on")plotfit(p3,"g--")plotfit(p7,"b-.")xlim([1,2])ylim([2,5.5])hold("off")println("2次多项式拟合系数\n",p2.params)

#打印拟合多项式系数println("3次多项式拟合系数\n",p3.params)println("7次多项式拟合系数\n",p7.params)多项式拟合4运行得到的结果如下:2次多项式拟合系数[1.3869463869463816,-1.260839160839144,2.141025641025629]3次多项式拟合系数[-5.167055167054664,24.638694638692357,-35.21872571872237,18.200233100231507]7次多项式拟合系数[2865.3127929679335,-30694.44445812015,139660-349771.65050565667,520586.1274204989,-460331.9374781027,223861.60190864195,-46173.03758649385]各次拟合曲线比较图:多项式拟合5除此之外,还可以点击查看拟合后得到的相关信息,具体如下:域值method迭代方法iparams迭代初值params迭代结果time迭代时间converged1因xtol收敛2因gtol收敛3因ptol收敛0达到最大迭代次数,未收敛s_dataR2相关系数R方sse残差平方和dfe自由度aR2调整R方rmse均方根误差多项式拟合6除此之外,Syslab提供了丰富的拟合模型,具体如下:内置模型名称描述"poly1"线性多项式曲线"poly11"线性多项式曲面"poly2"二次多项式曲线"linearinterp"分段线性插值"cubicinterp"分段三次插值"smoothingspline"平滑样条(曲线)"lowess"局部线性回归(曲面)多项式插值7在实际中通常得到的数据是离散的,如果想得到这些点之外其他点的数据,就要根据这些已知的数据进行估算,即插值.插值的任务是根据已知点的信息构造一个近似的函数.最简单的插值法是多项式插值.插值和拟合有相同的地方,都是要寻找一条“光滑”的曲线将已知的数据点连贯起来,其不同之处是:拟合点曲线不要求一定通过数据点,而插值的曲线要求必须通过数据点。Syslab中常用的插值函数如表所示.函数名简介函数名简介interp1一维插值LagrangeInterp拉格朗日插值interp2二维插值NewtonInterp牛顿插值interp3三维插值ConstantInterpolation最邻近插值interpnn维插值LinearInterpolation线性插值griddedInterpolant网格插值CubicSplineInterpolation三次样条插值interpolate插值sinc_interpolate一维插值(FFT方法)extrapolate外插mkpp生成分段多项式多项式插值8在实际中通常得到的数据是离散的,如果想得到这些点之外其他点的数据,就要根据这些已知的数据进行估算,即插值.插值的任务是根据已知点的信息构造一个近似的函数.最简单的插值法是多项式插值.插值和拟合有相同的地方,都是要寻找一条“光滑”的曲线将已知的数据点连贯起来,其不同之处是:拟合点曲线不要求一定通过数据点,而插值的曲线要求必须通过数据点。Syslab中常用的插值函数如表所示.vq=interp1(x,v,xq,method)

使用线性插值返回一维函数在特定查询点的插入值。向量x包含样本点,v包含对应值v(x)。向量xq包含查询点的坐标。method为指定备选插值方法,默认方法为‘linear’(线性插值)。其中method的常用方法有:nearest:最近点插值,通过四舍五入取与已知数据点最近的值。linear:线性插值,用直线连接数据点,插值点的值取对应直线上的值。spline:样条插值,用三次样条曲线通过数据点,插值点的值取对应曲线上的值。cubic:立方插值,用三次曲线拟合并通过数据点。多项式插值9例:用以上4种插值方法对y=cos(x)在[0,6]上的一维插值效果进行比较。解:建立jl文件如下:x=0:6y=cos.(x)xi=0:0.25:6#在两个数据点之间插入3个点yi1=interp1(x,y,xi,"nearest")yi2=interp1(x,y,xi,"linear")yi3=interp1(x,y,xi,"spline")yi4=interp1(x,y,xi,"cubic")plot(x,y,"ro",xi,yi1,"b:.",xi,yi2,"g--",xi,yi3,"c-",xi,yi4,"m-.")legend("原始数据","最近点插值","线性插值","样条插值","立方插值")多项式插值10运行以上程序得到图形如图所示。从图可以看出,在本例中,样条插值效果最好,之后是立方插值、线性插值,效果最差的是最近点插值。多项式插值11

解:建立jl文件如下:x=-2:4/(11-1):2y=1./(2.+x.^2)x1=-2:0.1:2y1=interp1(x,y,x1,"nearest")y2=interp1(x,y,x1,"linear")y3=interp1(x,y,x1,"spline")y4=interp1(x,y,x1,"cubic")subplot(2,2,1)plot(x,y,"rp",x1,y1),title("nearest")subplot(2,2,2)plot(x,y,"rp",x1,y2),title("linear")subplot(2,2,3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论