在Matlab中数值拟合的应用

上传人:大米 文档编号:503284028 上传时间:2024-01-28 格式:DOCX 页数:19 大小:380.61KB
返回 下载 相关 举报
在Matlab中数值拟合的应用_第1页
第1页 / 共19页
在Matlab中数值拟合的应用_第2页
第2页 / 共19页
在Matlab中数值拟合的应用_第3页
第3页 / 共19页
在Matlab中数值拟合的应用_第4页
第4页 / 共19页
在Matlab中数值拟合的应用_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《在Matlab中数值拟合的应用》由会员分享,可在线阅读,更多相关《在Matlab中数值拟合的应用(19页珍藏版)》请在金锄头文库上搜索。

1、在Mat lab中数值拟合的应用摘要在科学实验和生产实践中,往往需要从一组实验数据(七,y,)(i = 1,2,.n)中, 寻找变量x和y之间的函数关系y = f (x)的某种近似表达式s(x)。而实际去只能 通过观测得到一些离散的数据点。针对这些分散的数据点,运用某种你和方法生 成一条连续的曲线,这个过程称为曲线拟合。插值方法可以构造一个插值函数逼 近已知函数你,但是,一般来说,给定的实验数据(x.,y(i = 1,2,.n)的数量较大, 且由于观测误差的原因,准确度不一定高,甚至在个别点有很大的误差,形象地 成为“噪声”。如果用插值法来求y = f (x)的近似表达式,要使s(x)满足插值

2、条件,势必将“噪声”带进近似函数s(x),因而不能较好地描绘y = f (x)。面对着分散的数据点,运用某种你和方法生成一条连续的曲线,这个过程 称为曲线拟合。插值法虽然是函数逼近的一种重要方法,但他还存在以下的缺陷: 一是由于测量数据的往往不可避免地带有测试误差,而插值多项式又通过所有的电容器充电电压与日时间湖曲线J109.598.587.576.56 0123456789时间t(s)点(x, x),这样就使插值多项式保留了这 些误差,从而影响了逼近精度。此时显然 插值效果是不理想的。二是如果由实验提 供的数据较多,则必然得到次数较高的插 值多项式,这样近似程度往往既不稳定又 明显缺乏实用价

3、值。因此,怎样从给定的 一组实验数据出发,寻求已知函数的一个逼近函数s(x),使得逼近函数从总体上来说与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点(xX),这就需要介绍本论文主要研究的数据拟合。本文学习目的:(1) 熟悉、掌握数据拟合的各种不同准则,重点学习最小二乘准则;(2) 提出、分析并掌握Matlab中各种常见的拟合方法;(3) 熟悉掌握拟合工具的使用;(4) 能够灵活编程来解决数据拟合的实际问题。关键词:Matlab、数据拟合准则、一元线性拟合、非线性、图像、拟合工具1、数据拟合概念数据的拟合主要分为曲线拟合(curve fitting)、曲面拟合(suface fit

4、ting)。它试图从散点数据中拟合出一个有规律的解析式,而该解析式的某些 参数(系数)是不定的未知量。数据拟合的目的是要根据散点数据在“最小误差” 的意义下确定出解析式中的这些不定参数。正如对于一条直线y = kx + ,而该 式中有k和b两个未知参数需要求出。由基本的数学知识我们可以知道,只要有 两个点就可以确定出这两个参数。但是若有更多的点,比如实验数据往往有很多 点,这些点由于有误差不一定在一条直线上,需要找出一条直线离这些点“最近”, 这就是拟合。从上面的例子我们可以看出,拟合具有两个特点:(1) 点数(已知数据数目)即方程的个数要大于待求参数的个数;(2) 方程所代表的曲线、曲面等不

5、一定通过这些已知点。对于不同的定义有着不同的数据拟合准则,最常见的数据拟合准则有三种, 分别是切比雪夫近似准则、极大化绝对偏差之和准则和最小二乘准则。本文重点 介绍最小二乘法准则。数据拟合的方法主要有一元线性拟合、一元非线性拟合、多项式拟合、多 元拟合及拟合工具拟合等。2、基本拟合准则2.1切比雪夫近似准则对给出的y = f (x)和数据,极小化最大绝对偏差I七-f (x,)1,即确定函数类型y = f (x)电脑参数从而极小化数量:Maxinum I y. - f (x ) I (i = 1,2,.n)切比雪夫近似准则在实际应用中通常很复杂,应用这一准则所产生的最优化 问题通常可以表示为线性

6、规划问题,这可能需要高级的数学方法或者用计算机的 数值算法,所以通常不使用这一准则。2.2极大化绝对偏差之和准则同3.1,对给出的y = f (x)和数据,极大化最大绝对偏差I y厂f (xt)1的和,即确定函数类型y = f (x)电脑参数从而极小化数量:芝I y - f (x )Iiii =1由于这一准则有出现了绝对值,这个和式电脑各种微分不是连续的,要解 决这个最优化问题时,将该和式对每个未知参数进行求异时,问题会变得不可解, 因此该准则也不常用。2.3最小二乘准则同3.1、3.2使用相同记号,确定函数类型y = f (x)的参数,使得极小化和数U I y - f (x )I2 iii=

7、1用这方法解决产生的最优化问题仅需要使用几个变量的演算,所以容易普 及,Matlab软件中提供的数据拟合方法也基本都是基于该准则的。2、几种拟合方法数据拟合根据自变量的个数以及选取的拟合函数的形式,可以分为一元线 性拟拟合、一元非线性拟合、多元拟合及拟合工具箱使用等方法。2.1 一元线性拟合2.1.1多项式拟合多项式拟合是线性拟合中最常见的形式,它的目标是找出一组多项式系数 a (i - 1,2,.n +1),使得多项式 f (x) = a xn + a xn-1 +. + a x + a 能够在最小二乘 的意义下最好地拟合原始数据。多项式拟合可以通过Matlab提供的polyfit()函数实

8、现,调用格式为:p,s=polyfit(x,y,n)其中,x,y是输入的实验数据,n是拟合计算用到的多项式的次数,返回值 p是拟合多项式的系数,S是用来估计误差和预测数据的结构体。与polyfit()函数配合使用的函数是polyval(),这个函数根据拟合出来的 多项式系数p计算给定数据x处的y值。其调用格式如下:Y=polyval(p,X)其中X是给定的需要计算拟合值的向量,p是polyfit()函数的返回值,返 回值Y是根据p计算出来的X处的多项式的值。例1.给定的多项y - x3 -6x2 + 6x-3和自变量x=1:10,代入产生一组数据y,现在 xi=x+0.2*rand(1,10)

9、-0.1, yi =y+0.5- rand (1,10), i=1,2, ,10),然后用xi和yi作3次多项式拟合,与原系数比较。注意 作图并说明。x=1:10;y=x.”3-6*x.”2+6*x-3;x0=x+0.2*rand(1,10)-0.1;y0=y+0.5- rand;f3=polyfit(x0,y0,3)%3 次多项式拟合y3=polyval(f3,x0);plot(x,y,+,x0,y3);grid ontitle(三次拟合曲线);得到结果为:f3 = 0.9645-5.42893.4571-0.4339拟合图像为:可发现加入随机“噪声”后用三次拟合,发现拟合效果还是相当好。故

10、结果 可用。2.1.1已知函数线性组合的拟合方法实际上,多项式函数的每一项的都可以被看做是一个函数,而多项式函数就 是这些函数的线性组合。对于更一般的情形,假设已知某函数的线性组合为:f (x) = c f (x) + c f (x) + c f (x) +. + c f (x)1 12 23 3n n其中,f (x),f (x),f (x)为已知函数,c,c,c为待定系数,12n12n这时如给出数据(x., y.)(i = 1,2,.n),则可以建立方程:Ac = yf1(x1) f (x )1.2f (x)21f (x )22.f (x ) n 1.f (x ) n 2.1 y2A=,y=

11、f (x )U 1 nf (x )2 n.f (x ) n nyn且c = cc2,.c r,故该方程的最小乘解为c = A/ y。例2.已知一室模型快速静脉注射下的血药浓度数据(t=0注射300mg)t (h)0.25 0.511.523468c (gg/ml) 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01问题:求血药浓度随时间的变化规律c(t). c(t) = ce-(c,k为待定系数)解:建立文件并命名为fun.mfunction f=fun(x,tdata)f=x(1)*exp(-x(2)*tdata);在 Command Wind

12、ow 中输入:tdata=0.25,0.5,1,1.5,2,3,4,6,8;cdata=19.21,18.15,15.36,14.10,12.89,9.32,7.45,5.24,3.01;x0=0.2,0.05;x=lsqcurvefit(fun,x0,tdata,cdata);f=fun(x,tdata);xplot(tdata,cdata,ro,tdata,f,b*-)得到结果为:x =20.24130.2420得到拟合图像为:201111111%18 - -16 -14 -12 -*、-10 - -8- 、 -可见拟合效果不错,可以使用,所以方程为:c(t)箜033_e024201 I2

13、.2 一元非线性拟合在实际的问题场景中,如果我们已知的函数形式为 (x) = oeU这样在幕指数 上带有未知数的其他形式,简单的线性求解就无能为力了。通常这种情况下,我 们有两种方法可以解决,一是将非线性函数进行适当的变换变成线性形式,另一 种是有Matlab的优化工具箱中提供的lsqcurvefit()函数或者lsqnonlin()函数 进行求解。2.2.1非线性拟合化为线性拟合对于某些非线性的变量关系可以通过简单的变量替换使之直线化,这样就可 以按最小二乘法原理求出替换后变量的直线方程。在实际中常利用此直线方程绘 制数据的标准曲线,同时根据需要可将此直线方程还原为曲线方程,实现对数据的曲线拟合。常用的非 线性函数线性化的方法如下:1、指数函数y = aebx,当b0时,y随x增大而增大;当b 0时,y随x增大而增大,先快后慢;当b 0时,y随x增大而增大;当b 0时,y随x增大而 减少。可以两边取对数,得到lny = lna + blnx。因此,当以lny和lnx绘制的散点 图呈直线趋势时,可考虑采用幕函数来描述y与x之间的非线性关系,lna和b分 别为截距和斜率。例3.用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为v(t) = V-(V-yy-t,其中是电容器的初始电压V。,T是充电常数。试由下面一组t,V数据确定V。,tt (秒)

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

当前位置:首页 > 学术论文 > 其它学术论文

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