华拓科技网
您的当前位置:首页基于Matlab实现最小二乘曲线拟合

基于Matlab实现最小二乘曲线拟合

来源:华拓科技网
维普资讯 http://www.cqvip.com

52  ’2005年6月 北京广播学院学报(自然科学版) June.2005 第12卷第2期 JOURNAL OF BEIJING BROADCASTING INSTITUTE Vo1.12.No.2 (SCIENCE AND TECHNOLOGY) 基于Matlab实现最小二乘曲线拟合 王可,毛志仅 (中国传媒大学通信工程系,北京100024) 摘要:物理量之间的函数关系在实际研究工作有很重要的作用。本文首先介绍了最小二乘原理。其次介 绍了用Matlab实现曲线拟合以得到函数关系的方法和步骤。最后举例比较了采用不同方法进行拟合得到的 结果。 关键词:Matlab;最小二乘法;曲线拟合 中国分类号:0241.2文献标识码:A文章编号:1007—8819(2005)02—0052—05 使得数据点的平方误差和最小。这种选择就是最 l 引言 小二乘曲线拟合。可用一系列基函数进行最小二 乘曲线拟合,直接而通用的做法是用多项式,即线 在现代科学研究中,物理量之间的相互关系 性拟合;另外还可以选择其他基函数,这种做法称 通常是用函数来描述的。有些函数关系是由经典 之为非线性拟合。下面简要介绍一下最小二乘法 理论分析推导得出的,这些函数关系不仅为我们 的基本原理: 进一步的分析研究工作提供了物理的理论基础, 在数据处理中应用的最小二乘法原理是算术 也使我们可以十分方便的运用丰富的数学知识来 平均值原理的推广。即多次等精度测得 解决物理问题。 f。,2 …2 的最佳值 在现实的物理研究过程中,有一些问题很难 z 由经典物理理论推导出物理量的函数表达式,或 n一 者推导出的表达式十分复杂,不利于进一步的分 其残差vj=lj—L满足平方和 析。但由于研究需要,又很希望能得到这些量之 =min(最小) 间的函数关系,这时就可以利用曲线拟合的方法, 这一点是显然的,因对任何值L 而言 用实验数据结合数学方法得到物理量之间的近似 Z —L =Zi一 +( 一L )= +( 一L ) 函数表达式。 ∑( -L ) =∑ 2i+2( -L )∑ +n( -L ) 2 曲线拟合的基本原理 = +n(L一 2∑ 曲线拟合就是拟合测量数据曲线。有时所选 故 只有选为L =L时方为最小。 择的曲线通过数据点,但在其他点上,曲线接近它 以上就是最小二乘法的基本原理,用它可以 们而不必通过它们。在大多数情况下,选择曲线 解决两个量之间关系的问题。 例如:现有一组( ,Yi),i=1,2…rt,要建立 收稿日期:2004.11-01 和Y之间的函数关系。 维普资讯 http://www.cqvip.com

第2期 王 可等:基于Matlab实现最小二乘曲线拟合 53 设 和Y之间的函数关系为Y= ),则满足 Q=∑[y 一f(x )] =min的 )即为所求。 3最小二乘法实现曲线拟合 y=ax +c y=aek 首先介绍用最小二乘法实现曲线拟合时常用 的经验公式及选取合适公式的方法: 在工作中,通常情况是找出两个量之间的关 y=ax +6 +c 系。此时需要对两个量的多组对应数据用经验公 式表示出来,因为经验公式形式紧凑,便于从理论 上进一步分析。 对表征( ,Y ), l,2…n的关系Y=f( ; 口,b,C…),式中口,b,C…为参数,因自变量 已知 时Y已测得,故类型 决定后,由误差方程f( ; 图1典型图形 口,b,C…)=Y +/3 , l,2,…n就可用最小二乘 下面举例说明如何用最小二乘法实现两个量之间 法决定经验公式中参数口,b,C…。下面我们就来 关系的曲线拟合。 介绍经验公式类型的选取。 例基线基准尺是由殷钢合金制成的,研究 经验公式类型的选取主要靠专业知识来决 表明,殷钢尺的长度随时间变化而增长,越往后增 定,从数学方面去决定两个量的经验公式主要有 长得越慢,这种殷钢随时间而变长的现象称作合 三种方法:观察法、近似法、严格计算法。这三种 金时效。殷钢尺长度变化的规律经研究可用 方法中,观察法简单、直观,相对来说近似法和严 △Z=alg(1+ ) 格计算法比较精确,但比较繁琐。对于大多数情 来描述,其中△Z为长度变化值,t为变化时 况,都可以采用观察法来确定经验公式,所以下面 间,0、b为常数。 主要介绍观察法。 基准尺尺长的实际变化如表l。 观察法就是将数据( ,Yi)作图,与典型图l 比较,看所作图形与典型图中何种类似,就取该类 型为( ,Y )经验公式类型。 表l £(日) 0 6574 9496 10227 17546 18384 19404 ’19860 20225 At(ix) 0 60.7 71.4 75.3 79.4 79.9 80.9 82.0 82.8 今用Al=alg(1+bt)逼近△f,即由最小二乘 法在 (口,6)=0 Q(a,6)=∑{Al—alg(1+6£)} =min (口,6)=一2∑{[△z一口lg(1 )] 条件下求a,b。 lg(1+bt)}=C(常数) 由Q(口,b)=min,按 维普资讯 http://www.cqvip.com

54 北京广播学院学报(自然科学版) 第l2卷 由物理判断0<b 1,经计算得b取不同值 …口= , 时的口及Q(口,b)如表2。 因为C=0,所以 ∑Al lg(1+bt ) 一 而 表2 b Ⅱ q(o,b) b Ⅱ q(o,b) 0.00100 64 149.2 0.00699 38.27693 31.79 0.00270 48 51.5 0.00700 38 26526 31.79 0.00285 47 48.0 0.00701 38.25362 31.79 0.00350 45 40.4 0.00710 38.150 31.81 0.00500 41 33.4 0.01000 36 32.0 0.00560 40.164 32.03 0.05000 27 61.4 O.00698 38.28861 31.79 0.10000 24 77.0 由上表可知Q(口,b)在b=0.00699,口=38. 代人数值由 、Y、b计算口、Q; 27693时取极小值,此时Q(口,b)=31.7917,故 (5)改变b的取值,多次调用该 函数,比较 基线基准尺用口 (1+ )的最小二乘法逼近结 结果中的Q值,最小的Q值所对应的口、b值即为 果为 所求。 Al=38.281g(1+0.00699t) “改变b的取值”这部分工作也可编一个循 环函数,输入b可能取的区间,计算不同b对应的 4用Matlab实现曲线拟合 Q,再进行比较,保留使Q最小的b及对应的口。 但通常b的改变对Q的影响不是线性的,为方便 Matlab是一种功能强大的系统分析和仿真工 观察结果并选择适当的b,“改变b的取值”这部 具,我们选用它作为实现曲线拟合的软件工具。 分工作最好还是编程者自己完成。 用Matlab语言编程实现最小二乘法的思路: 最后,只要将得到的函数图像和 、Y的曲线 (1)输入各参量X、y的测量值(以数组形式 关系图进行对比,就可以直观的看到拟合的效 输入,这样便于在计算过程中引用); 果了。 (2)用Matlab语言中的plot函数x,y的曲线 另外,Matlab语言提供了一个函数,可以完成 关系图,以此图对比典型曲线图,选择合适的经验 线性曲线拟合,这就是函数polyfit。函数polyift 公式; 的输入量为 、Y、n,其中 、Y即为需要建立相互 (3)按照上例中的方法,选一个系数口,求Q 关系的两个量的测量值,以数组的形式输入,n为 (口,b)对它的偏导数,求出其计算表达式; 多项式的次数;输出的是多项式系数的行向量,而 (4)编写Matlab的 函数,用来完成经验公 得到的多项式是降幂的。 式中待定系数口的计算,该函数输入量为 、Y、b, 输出量为口、Q,按照由最小二乘法推导出的公式 维普资讯 http://www.cqvip.com

扎 ∞ 第2期 王 可等:基于Matlab实现最小二乘曲线拟合 55 例:某一消失模滤波器中螺钉归一化插入深 5 举例说明 度与其对应的电纳值的数据如表3。 现在举一个例子,用Matlab实现曲线拟合 表3 Bc Bc 0.2411 4.029 0.1829 6.219 0.2328 4.226 0.1746 6.829 0.2245 4.439 0.1663 7.628 0.2162 4.690 0.1580 8.646 0.2078 4.984 0.1497 10.333 0.1995 5.296 0.1413 13.668 0.1912 5.724 0.1330 23.038 现在按照上面介绍的方法用Mat_lab语言求 图形如图2。选型Y=似 的经验公式。 Bc= )。 (3)由最]b-乘法得 (1)输人数据: h=『0.2411 0.2328 0.2245 0.2162 0.2078 q(a,6)=∑(Bc—ah )。=min 0.1995 0.1912 0.1829 0.1746 0.1663 0.1580 0. 曰c . 1497 0.1413 0.1330 I; h。 Bc=『4.029 4.226 4.439 4.690 4.984 5.296 (4)编写A.In计算口、Q: 5.724 6.219 6.829 7.628 8.646 10.333 13.668 (5)改变b的取值,调用A.m函数: 23.038 I; 经过比较,当b=一3.528时,Q=38.5778 (2)画图,选择经验公式: 为最小,此时a=0.0157,所以曰c=0.0157h · 勰。 最后画出测量数据关系图和函数图像如图3。 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 图2数据曲线 图3数据曲线与函数图像 维普资讯 http://www.cqvip.com

56 北京广播学院学报(自然科学版) 第12卷 其中虚线为求得的函数图像。 之间的最小二乘法的曲线拟合,通过以上说明可 下面再分别选Y=口+blogx和Y=似 + +C 以看出,采用本文所述方法进行两个量之问关系 作为经验公式进行拟合: 的曲线拟合是较为方便和实用的,并且对于实现 1.对于型,步骤如上,结果为口=一30.9,b= 多个未知量的最小二乘法也有一定参考价值。 22.8831,Q=99.3345; 2.对于Y= + +C型,可用函数polyfit 参考文献: 来做: polyfit(h,Bc,2) 刘智敏.误差与数据处理[M].北京:原子 anS= 能出版社,1981. 1.0e+003;l: [2] Hanselman D,Littefield B,李人厚.张平安 2.3498 —0.9981 0.1097 等校译.精通MATLAB 5综合辅导与指南 计算Q=44.1177; [M].西安:交通大学出版社,2001. 比较三种经验公式得到的Q值可知,Y:僦 型得到的Q值最小,因此是最合适的。 6结束语 本文详细说明了用Madab语言实现两个量 Actualizing Least-—-squares Curve-—-fitting Based on Matlab WANG Ke,MAO Zhi-ji (Telecommunication Department,Communication University of China,Beijing 100024,PRC) Abstract:Function relation between physics variables is important in actual researchThis paper introduces least squares principle firstly,then introduces the methods and approaches of actualizing Least—squares curve—fitting based on Matlab to gained function relationfinaHy this paper compares results which are received by different fitting ways through an exampleKey words:Maflab;Least squares;Curve fitting (责任编辑:韩月珍) 

因篇幅问题不能全部显示,请点此查看更多更全内容