差值拟合算法的应用及matlab实现.docx

上传人:温桑 文档编号:65729323 上传时间:2022-12-07 格式:DOCX 页数:57 大小:469.54KB
返回 下载 相关 举报
差值拟合算法的应用及matlab实现.docx_第1页
第1页 / 共57页
差值拟合算法的应用及matlab实现.docx_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《差值拟合算法的应用及matlab实现.docx》由会员分享,可在线阅读,更多相关《差值拟合算法的应用及matlab实现.docx(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、差值拟合算法的应用及matlab实现摘 要插值和拟合都是函数逼近或者数值逼近的重要组成部分他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的目的,即通过窥几斑来达到知全豹。简单的讲,所谓拟合是指已知某函数的若干离散函数值f1,f2,fn,通过调整该函数中若干待定系数f(1, 2,3), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。而插值是指已知某函数的在若干离散点上的函数值或

2、者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。在测绘学中,无论是图形处理,还是地形图处理等,大多离不开插值与拟合的应用,根据插值与拟合原理,构造出插值和拟合函数,理解其原理,并在matlab平台下,实现一维插值,二维插值运算

3、,实现多项式拟合,非线性拟合等,并在此基础上,联系自己所学专业,分析其生活中特殊例子,提出问题,建立模型,编写程序,以至于深刻理解插值与拟合的作用。关键词:差值拟合算法;应用;matlab;实现目录毕业论文(设计)1差值拟合算法的应用及matlab实现1摘 要2目录31序言42曲线拟合与最小二乘法基础理论概述62.1曲线拟合简介62.2最小二乘法简介102.3曲线拟合的最小二乘法原理112.4基于MATLAB的最小二乘曲线拟合162.5最小二乘曲线拟合案例分析与解算202.6拟合函数的精度检测252.7拟合函数在实际运用中的优势262.8拉格朗日插值原理和插值多项式构造272.9拉格朗日插值事

4、例分析272.10拟合的方原理和方法293插值与拟合实际建模与分析314MATLAB在拟合与插值中的应用324.1曲线拟合334.2一维插值354.3二维插值374.4小结435结 论44致 谢45参考文献461 序言随着人类认识能力的不断进步以及计算技术的快速发展,对于变量之间的未知关系,应用曲线拟合的方法对揭示其内在规律具有重要的理论与现实意义。在科学实验数据的处理、分析时,实验数据拟合是经常采用的一种方法。本文将采用最小二乘法对给定的实验数据进行拟合并得到拟合曲线,加深大家对最小二乘曲线拟合原理的理解。同时将根据最小二乘拟合理论,并利用MATLAB数值分析软件进行编程,解决最小二乘曲线拟

5、合在塔机起重量监测系统中的应用问题,实现相应案例数据的曲线拟合,获得了曲线模型对相应数据的拟合曲线,很好地解决了该工程案例的曲线拟合问题。MATLAB有可以用于曲线拟合的内建函数。 MathWorks公式也提供了很多工具箱可以用于曲线拟合。这些方法可以用来做线性或者非线性曲线拟合。 MATLAB也有一个开放的工具箱 曲线拟合工具箱(Curve Fitting Toolbox),她可以用于参数拟合,也可以用于非参数拟合。本节将介绍曲线拟合工具箱与其他工具箱、以及各种 MATLAB可以用于曲线拟合的内建函数的详细特征。cdate 与它自身很好的相关,同样的 Output也与它自身很好相关。反对角线

6、上元素是cdate与 Output之间的相关性。这个值非常接近于 1,因此实际数据与拟合结果能否较好的吻合。因此,这个拟合是“好”的拟合。(应该是这样判断的么?我怎么觉得应该通过 pop与 Output的相关性来判断拟合的好坏的呢?)MATLAB即有内建的解决很多通常遇到的曲线拟合问题的能力,又具有附加这方面的产品。本技术手册描述了几种拟合给定数据集的曲线的方法,另外,本手册还解释了加权曲线拟合、针对复数集的曲线拟合以及其他一些相关问题的拟合技巧。在介绍各种曲线拟合方法中,采用了典型例子的结合介绍。在现代科学研究中,物理量之间的相互关系通常是用函数来描述的。有些函数关系是由经典理论分析推导得出

7、的,这些函数关系为我们进一步的分析研究工作提供了理论基础。在现实的科学研究过程中,有一些问题很难由经典理论推导出物理量的函数表达式,或者此推导出的表达式也十分复杂,不利于进一步的分析,但又很希望能得到这些量之间的函数关系,这时就可以利用曲线拟合的方法,用实验数据结合数学方法得到物理量之间的近似函数表达式。Matlab是Math Works公司推出的一种科学计算软件,是集数值计算、符号运算及出色的图形处理、程序语言设计等强大功能于一体的科学计算语言。应用Matlab处理既克服了最小二乘法计算量大等缺点,又使繁琐、枯燥的数值计算变成种简单、直观的可视化操作过程,且能较准确地标记实验数据点和绘出拟合

8、曲线。在科学实验的统计方法研究中,往往要从一组数据中,寻找自变量x与因变量y之间的函数关系。由于观测数据往往不准确,因此不要求经过所有带点,而只要求在给定点上的误差按某种标准最小。若记,就是要求向量的范数最小。如果用最大范数,计算上困难较大,通常采用欧式范数作为误差度量的标准。的函数类型往往与实验的物理背景以及数据的实际分布有关,它一般含有某些待定参数。如果是所有待定参数的线性函数,那么相应的问题称为线性最小二乘问题,否则称为非线性最小二乘问题。最小二乘法还是实验数据参数估计的重要工具。这是因为这种方法比其他方法更容易理解,即使在其他方法失效的情况下,用最小二乘法还能提供解答,而且从统计学的观

9、点分析,用该方法求得各项估计具有最优统计特征,因此这一方法也是系统识别的重要基础。用最小二乘法求拟合曲线时,首先要确定的形式,然后利用最小二乘曲线拟合去构造一个近似解析式。利用该方法“拟合”出的函数曲线虽然不能保证通过所有的样本点,但是很好地“逼近”了它们,充分反映了已知数据间内在的数量关系。因此,这种方法在生产实践和科学实验中具有广泛的应用前景。本文针对最小二乘曲线拟合的有关理论和应用问题以及相应的MATLAB实现进行探讨。曲线拟合又称函数逼近,是指对一个复杂函数,求出一个简单的便于计算的函数,要求使与的误差在某种度量意义下最小。我们把近似值和测得值的差值称为残余误差。即显然,残差的大小是衡

10、量拟合好坏的重要标志。经常采用的三种衡量的准则为:(1)使残差的最大绝对值最小:;(2)使残差的绝对值之和最小:;(3)使残差的平方和最小:。 分析上面的三种准则,准则(1)、(2)的提法都比较自然,但是由于含有绝对值,所以不利于实际计算,而按照准则(3)来确定参数,得到拟合曲线的方法称作曲线拟合的最小二乘法,它的计算比较简单,是工程实际当中常用的一种函数逼近的方法。通常在生产实际及科学研究中,我们经常要研究变量之间的函数关系y=f(x),若f(x)的表达式很复杂,或f(x)只是一张数据来表示,这都给研究带来困难,因此我们希望用一个函数P(x)来代替它,把研究f(x)的问题转化成研究,由于近似

11、含义不同,就有插值和拟合两种情况。Matlab是一款功能强大的科学数学计数器,利用matlab可以成功的完成插值与拟合等任务,在编写插值与拟合程序前,本人从以下步骤分析和实现插值与拟合。Matlab软件是集数值计算、符号运算及出色的图形处理、程序语言设计等强大功能于一体的科学计算语言。用Matlab处理实验数据仅需编写十几行几乎像通常笔算式的简练程序,运行后就可得到所需的结果。这样既克服了最小二乘法计算量大等缺点,又使繁琐、枯燥的数值计算变成一种简单、直观的可视化操作过程,且能较准确地标记实验数据点和绘出拟合曲线。2 曲线拟合与最小二乘法基础理论概述2.1 曲线拟合简介实际工作中,变量间未必都

12、有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线拟合是用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(i1,2,m),其中各是彼此不同的 。人们希望用一类与数据的背景材料规律相适应的解析表达式,来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。常称作拟合模型 ,在式中是一些待定参数。当c在中

13、线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在各点的残差(或离差) 的加权平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。有许多求解拟合曲线的成功方法,对于线性模型一般通过建立和求解方程组来确定参数,从而求得拟合曲线。至于非线性模型,则要借助求解非线性方程组或用最优化方法求得所需参数才能得到拟合曲线,有时称之为非线性最小二乘拟合。运用插值法拟合函数,这是每个数值分析中的必修课,而matlab又是数值分析必备的工具。除却基本差值(拉格朗日,牛顿插值)需编写实现外,在理解了插值法的基本原理后,如何

14、用matlab自带的多种功能进行常用插值(样条插值,hermite插值,三次差值)呢?在完成一些习题后,我的总结如下:1.如何实现三次样条插值(spline插值)特点:连续三次曲线逼近,最高次数为三次法1:spline题:清华大学出版社的数值分析(第5版)P49,20题。x=0,1,2,3,4,5,6,7,8,9,10y=0,0.79,1.53,2.19,2.71,3.03,3.27,2.89,3.06,3.19,3.29; 进行三次样条插值xx=0:0.25:10; 取好绘图取值点yy=spline(x,y,xx);plot(x,y,o,xx,yy); 绘制图像那么如何获得插值函数?且如果三

15、次样条插值有边界条件时,应如何拟合插值函数?此时应采取法2法2:csapepp=csape(x,y,complete,0,0.0);disp(pp.coefs);complete表示给定边界条件为一阶导数,0,0便是两端点一阶导数为0.常用的参数还有:second,给定边界二阶导数.variational,自然样条(边界二阶导数为0)运行结果:COEFS的含义是在Xi-Xi+1区间上的多项式是,例如COEFS数组第一行的意思是在X=0到X=1的区间上时表达式是-6.2652*(X-0)3+0.9697*(X-0)1+0.5;同理,可以得到在不同区间上的拟合函数 -6.2652 0.0000 0

16、.9697 0.5000 1.8813 -0.9398 0.9227 0.5477 -0.4600 -0.4318 0.7992 0.6245 2.1442 -0.5146 0.7424 0.6708绘制图像:xi=1:0.25:10;yi=ppval(pp,xi);plot(x,y,o,xi,yi);2.如何实现heimite、三次差值特点: Hermite插值不仅保证了插值函数与原函数在给定数据点处得拟合,同时保证了在相应点处导数的相同,从而在很大程度上保证了曲线的光滑性。因此,通过Matlab实现Hermite插值具有很普遍的意义Hermite插值调用到matlab的插值函数interp

17、1.,格式为yi=interp1(x,y,xi,method)x为插值点,y为插值。Xi为被插值点,可为实数可为向量。Method取值决定插值方法:Pchip为hermite插值,cubic为三次插值,spline为样条插值例子:x=y=xi=0:.01:10yi=interp1(x,y,xi,pchip)plot(x,y,o,xi,yi)即得到图像如果xi取实数,那么yi即为插值函数在xi点的值,总结一下,matlab通用的插值函数为interp1,通过改变interp1的method参数,可以实现不同的插值方式。但spline函数与interp1函数在实现样条插值时,均无法在规定边界条件的

18、情况下进行插值,此时要用到csape,csape的complete,second参数即可满足常用边界条件需求。如果需要拟合出具体的函数,则用yi.coefs的形式,yi为插值点的拟合值。最后,使用plot函数绘制拟合函数图像。2.2 最小二乘法简介最小二乘法是法国大数学家A.M.Legendre 最先于1805年发表的,其动机是为处理一类从天文学和测地学中提出的数据分析问题。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合,工程施工中,我们会经常取得一些相关的数据,这些数据往

19、往来自与施工密切相关的测量或实验中,我们可以通过作图或多段插值取得变量之间的联系,但作图和插值查图往往误差较大。这时可采用最小二乘法先拟合出一个多项式,再根据此多项式求解任一自变量所对应的因变量较精确的结果,据此绘图可得到较精确、较合理的曲线。1801年,意大利天文学家朱赛普皮亚齐发现了第一颗小行星谷神星2,经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星

20、。高斯使用的最小二乘法的方法发表于1809年他的著作天体运动论中。 法国科学家勒让德于1806年独立发现“最小二乘法”,但因不为世人所知而默默无闻。 勒让德曾与高斯为谁最早创立最小二乘法原理发生争执。 1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明,因此被称为高斯-莫卡夫定理。最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。2.3 曲线拟合的最小二乘法原理给定数据,设拟合函数形式为 2.11其中为已知的线性无关函数(如果存在不全为零的常熟,

21、使得,则称函数线性相关,否则称为线性无关)。求系数,使得 2.12最小,若 2.13则称相应的为最小二乘拟合曲线。特别的,若则称为次最小二乘拟合多项式。下面用求多元函数极值的方法来求最小点。将(2.12)式两边对求偏导。并令 化简得 2.14为了进一步化简,可以引入内积符号。在线性代数中,中两个向量及的内积定义为,将它加以推广,得到下面结论:设与是两个已知函数,记,令利用内积的定义,式(2.14)可以写为 2.15其中, , 2.16方程组(2.15)称为正规方程组或法方程组,其中系数矩阵是对称的。可以证明,当函数线性无关时,方程组(2.15)是对称正定的,因此有唯一解。求出方程组(2.15)

22、的解后,代入式(2.11)即可得最小二乘拟合函数。另外,对带权的最小二乘拟合函数有如如下的定义:设,给定在个节点上的函数值及一组权系数,若有函数,满足则称为在个节点上关于权系数的最小二乘拟合函数。Intel公司董事长Moore在上个世纪的60年代就观察到一个很有趣的现象:集成电路上可容纳的单晶体数量每隔一年半左右并会增长一倍,从而使集成电路的性能也能提高一倍。据此他提出了轰动世界的Moore定律,预测这种增长趋势会一直延续下去。下面给出Moore数据,如表 1所示:(年)19591962196319641965(增长倍数)13456表 1 Moore数据画出相应的散点图如图 1所示: 图 1

23、Moore数据散点图表 1中第二行数据为芯片上晶体数目在不同年代与1959年时的数目比较的倍数,通过观察k与t中间大致呈线性关系,如图 1所示。据此导出了著名的Moore定律。通过以上的分析,可设 2.21将表 1中的数据代入式(2.21)的超定方程组,其中,t表示时间,k表示增长倍数,a,b为待定系数。若将表 1中的数据代入式(2.21),得线性方程组 2.22方程组(2.22)是一个朝顶方程组,在这五个线性方程中,任意两个联立求解可得到十组不同的解。即是说该方程组不存在通常意义上的解。现将线性方程组(2.22)写出矩阵形式,其中,此超定方程组五常义解,即是说不存在使得,但是该超定方程组存在

24、最小二乘解,也就是说存在,使得达到最小,并且是线性方程组 2.23的解。我们称式(2.23)为法方程组,在本例中它是一个二阶线性方程组,即解这个方程组得.由此得到Moore公式.需要说明的是,对于,显然,但是根据曲线拟合的最小二乘原理,从整体趋势上使偏差达到最小,此处的偏差,这个值已经很小了、满足要求。下面我们就以上摩尔(Moore)预测公式实例总结利用最小二乘曲线拟合原理求解实际问题的步骤:(1)分析数据,根据散点图设定拟合函数(2)代入数据得到超定方程组,该超定方程组的矩阵形式为,其中,.(3)如表 2所示,建立法方程组.1959119593837681196235886384944419

25、63478523853369196459820385729619656117903861225表 2 据表 2中计算结果得, 其中m为实测数据组数。(4)解法方程组得拟合参数向量并据此得到拟合曲线函数(5)通过将所得的拟合函数曲线与原始数据散点图进行同坐标对比或计算总体趋势上的偏差值检验拟合函数的精度。2.4 基于MATLAB的最小二乘曲线拟合MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真

26、等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式

27、与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。假设有一组数据,且已知这组数据满足某一函数原型,其中为待定系数向量,则最小二乘曲线拟合的目标就是求出这一组待定系数值,使得目标函数最小。MATLAB的统计工具箱提供

28、了Isqcurvefit函数,可以解决最小二乘曲线拟合问题。 该函数的调用格式如下:其中,Fun为原始函数的MATLAB表示,可以是M-函数或inline函数;为最优化的初值;x,y为原始输入输出向量。调用该函数,将返回待定系数向量,以及在此系数下的目标函数的值Jm.。此处我们就结合上面的Moore实例进行分析,通过对散点图的分析我们已经假设出了初始函数.其实现的MATLAB程序如下:t=1959 1962 1963 1964 1965;k=1 3 4 5 6;令,这样,原函数就可以写出,可以用MATLAB程序代码写出:function k = K( a,t )k=a(1)+a(2)*t; e

29、nd %定义原型函数kformat long%小数精度定义为小数点后15位a,JM=lsqcurvefit(K,1;1,t,k); %调用Isqcurvefit函数求系数和偏差值第 22 页 共 57 页结果如下:aa = 1.0e+03 * -1.625528269401662 0.000830188662693JMJM = 0.188679245282990由结果可知a=a(1)=-1625.528269,b=a(2)=0.830189,即由MATLAB解算出来的拟合函数为这与上面手工解算的结果基本一致。另外,我们可以将原始数据的散点图和得到的拟合曲线画在一个坐标画面上以检测拟合函数的精度

30、,编写程序如下:ti=1959 1962 1963 1964 1965;ki=-1625.528296+0.830189*ti;plot(t,k,o,ti,ki)结果如图 2所示,最小二乘法曲线拟合的结果是找到符合经验公式的最优曲线,但这一经验公式是否有效还需要事后检验,一般就是从图像上做出判断。定量的方法也是有的,一般是计算残差平方和,再进行统计检验,对此就不做多余的讲解了。通过对图 2的分析可知拟合曲线与原始数据是比较稳合的,满足要求。图 2 拟合函数对原始数据的逼近2.5 最小二乘曲线拟合案例分析与解算起重量限制器是用来保护塔机的重要装置之一,是用于防止因超重而引起起升电机、传动机构、钢

31、丝绳的损坏。但是它只能在极限的状态下保护塔机起升机构不会受到损坏,不能够显示起重量值,因此,司机在操作过程中不了解塔机每次起吊重量的具体状况。为了进一步提高塔机的安全性能和工作效率,增加塔机起重量在线监测装置非常重要,实时准确地测量出起重量是在线监测的关键。在实时临测系统中,在原有起重量限制器的基础上加装了拉力传感器,传感器所测量的拉杆拉力Q与钢丝绳的张力F之间存在着一定的函数关系,起重量增加,拉杆拉力也相应增加,因此可通过间接测量拉杆拉力的方法先测出钢丝绳的张力,然后根据吊钩处的钢丝绳倍率关系计算出实际起重量,从而在拉杆拉力与塔机起重量之间建立起函数关系。由于塔机起重量G与钢丝绳张力F之间有

32、确定的函数关系,在实际应用中,以塔机起重量G代替钢丝绳张力F作为输出样本,以拉杆拉力Q作为输入样本。塔机QTZ63最大额定起重量为,分别以,为起重量,测量相应的拉力传感器拉力Q,以获取样本表 3所示。样本拉杆拉力Q/kN起重量G/kg10020.4560030.94120041.44180052.10240062.61300073.36360084.27420095.164800106.055400117.336000表 3实测样本、估算值及相对误差 利用MATLAB画出其散点图,分析其函数模型,程序代码如下:G=0 600 1200 1800 2400 3000 3600 4200 4800

33、 5400 6000;Q=0 0.45 0.94 1.44 2.10 2.61 3.36 4.27 5.16 6.05 7.33;plot(Q,G,o)结果如图 3所示,根据散点图的走势我们可以设原函数为三次多项式函数模型: 图 3样本数据散点图由于该案例的运算量不是太大,所以在这里我们在采用MATLAB解算的同时也进行了一次手工解算,同时也可以就两种方法的对比体现出MATLAB解算的高效、简单与快捷的特点,但是在这个大数据时代,我们碰到的更多是手工解算所不能完成的大数据,到时候就只能利用MATLAB实现了。(1)由原始数据散点图得出函数模型如下(2)将表 3中的原始数据代入上式得超定方程组

34、该超定方程组的矩阵形式为,其中(3)建立法方程组(4)解法方程组,得所以所得的拟合函数为通过对散点图的分析我们已经假设出了函数原型.求解过程实现的MATLAB程序如下:G=0 600 1200 1800 2400 3000 3600 4200 4800 5400 6000;Q=0 0.45 0.94 1.44 2.10 2.61 3.36 4.27 5.16 6.05 7.33;令,这样,原函数就可以写出,用MATLAB程序代码写出:function G = F( a,Q )G=a(1)*Q.3+a(2)*Q.2+a(3)*Q; end%定义原型函数Gformat long%小数精度定义为小数

35、点后15位a,JM=lsqcurvefit(F,1;1;1,Q,G); %调用Isqcurvefit函数求系数和偏差值第 57 页 共 57 页结果如下:a = 1.0e+03 * 0.004601860834153 -0.110534167186377 1.383597884382993 JM = 1.523115957936404e+04由结果可知a=a(1)=4.6019,b=a(2)=-110.5342,c=a(3)=1383.5979。即由MATLAB解算出来的拟合函数为拟合函数与上面手工解算的结果是一致的。通过传统手工解算与MATLAB解算过程的对比,能够明显的看出MATLAB解算

36、比手工解算要简单方便的多,这种对比在数据量更大的案例中会更加的显著,而且在那种大数据处理中手工解算是很容易出错的,MATLAB解算可以避免这种错误。2.6 拟合函数的精度检测由于手工解算和MATLAB解算的拟合结果是一样的,我们采用画图法检测精度是只需要画一幅图如图 4所示:图 4拟合函数对原始数据的逼近观察散点图可知拟合函数曲线与原始数据的吻合度是非常高的,定性分析的整体精度是满足要求的。不同之处在于这里MATLAB解算的偏差值从表面上看起来是很大的,这主要是因为该案例采用的数据原本就大,我们可以求其相对误差,从另一方面定量来看一下其拟合精度,相对误差表如下表 4所示:样本拉杆拉力Q/kN起

37、重量G/kg拟合函数所求起重量G/kg相对误差/%1000020.45600600.660.1530.9412001206.740.5741.4418001776.921.3052.1024002460.722.4762.6130002940.042.0473.3636003575.570.6984.2742004250.881.2095.1648004828.570.59106.0554005344.011.05117.3360006015.270.25表 4 拟合曲线所求起重量相对理论值的相对误差表观察该表其单个样本的相对误差最大也就为2.47%,从事件发生的概率来讲这个概率的事件属于小概

38、率事件,另外 GB5l4494规定:起重机应安装起重量限制器,对最大起重量大于6t的起重机如设有提示装置,则其数值误差不得大于指示值的5,因此定量分析结果的精度是满足要求的。2.7 拟合函数在实际运用中的优势塔机起重量监测中存在的非线性问题中,采用数据拟合理沦,建立了起重量 G和拉杆拉力Q之间的函数关系式,使塔机起重量监测在PLC中得以实现。在实际运用中,该方法具有如下优点:(1)计算结果惟一,计算量小,便于在PLC、单片机等硬件设备上实现;(2)可精确、方便地实现起重量的实时监测;(3)当钢丝绳倍率改变时,只需调整对应多项式的系数,不必改动其它硬件设施;(4)保留了原有起重量限制器中的超重预

39、警开关和超重报警开关,能够实现起重量预警和报警的双重保护。2.8 拉格朗日插值原理和插值多项式构造一般地,已知函数y=f(x)在互异的n+1个点x0 , x1 ,.xn处的函数值y0,y1,y2.yn就是构造一个多项式Ln(x)。如果一个n次多项式在n+1个互异的节点x0 , x1 ,.xn满足则称为节点上的n次插值基函数,那么我们可以求出插值基函数为:于是满足条件,则称n次插值多项式Ln(x)为则Ln(x)为拉格朗日插值多项式。记插值余项为以下:则于是:上面公式为完整的拉格朗日插值公式。2.9 拉格朗日插值事例分析Matlab在计算一维插值函数时使用函数interp1,该函数提供了四种插值函

40、数方法选着,分别是:线性插值,三次样条插值,三次插值和最近点插值(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,2

41、5,27,24;t=interp1(hours,temps,3.5,6.3,7.2);t = 12.5000 28.9000 30.6000在我们海洋测绘专业中,二维插值无处不在,在画海图的时候计算其水深分布,危险物分布,水温分布等,在山区测绘工作中用的十分广泛,例如画山区山形图,山形图像处理(如平滑,锐化)等,让其图像更清晰等,而matlab二维插值有以下:nearest 最邻近插值;linear 双线性插值; cubic 双三次插值;缺省时 双线性插值其格式为:z=interp2(x0,y0,z0,x,y,method) 方法和一维一样的现在以书上的例题为例(p308):输入以下命令:x=

42、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 平滑后的水温分布2.10 拟合的方原理和方法所谓拟合是指已知某函数的若干离散函数值f1,f2,fn,通过调整该函数中若干待定系数f(1, 2,n),使得该函数与已知点集的差别最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式

43、也可以是分段函数,这种情况下叫作样条拟合。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

44、(x,y,2) z=polyval(A,x); plot(x,y,k+,x,z,r) 图4 多项式曲线拟合图2:非线性最小二乘拟合在最小二乘法中,如果我们寻求函数f(x)是任意的非线性函数,则称为非线性最小二乘拟合,matlab中提供函数lsqcurvefit。已知数据点: xdata=(xdata1,xdata2,xdatan),ydata=(ydata1,ydata2,ydatan) lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),F(x,xdatan)T 中的参变量x(向量),使得输入格式为: (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,yda

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁