资源描述:
《拟合圆的几种方法 02》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、武汉工业学院学报JournalofWuhanPolytechnicUniversity2002年104文章编号:1009-4881(2002)04-0104-03拟合圆的几种方法12徐国旺,廖明潮(1.湖北工学院基础科学部,湖北武汉430068;2.武汉工业学院计算机与信息工程系,湖北武汉430023)摘要:提出了几种拟合圆的方法,用这几种方法对一实例进行拟合,并用Mathematica显示用这些方法拟合的效果。关键词:拟合;Mathematica;加权平均;最小二乘法中图分类号:O29文献标识码:A平面内一些离散点从理论上构成一个圆,从这3.9},{3.1
2、,2.4},{4.5,1.8},{6.1,1.9},{7.3,2.些已知点坐标入手,求出该圆圆心位置坐标和圆的7},{8.1,4.2}。以下过程用Mathematica[2]来完成。半径大小,是某些领域中常会遇到的实际问题。如:In[1]:=t=List[{8.2,5.7},{7.4,7.2},{6.[1]物理实验/用稳恒电流场模拟静电场0中,把无限0,8.0},{4.3,8.1},{3.0,7.4},{2.1,6.1},{2.1,长同轴圆柱体之间的等位线看作一个圆,实验测得数据为等位点的坐标,要画出等位线就存在拟合圆3.9},{3.1,2.4},{4.5,
3、1.8},{6.1,1.9},{7.3,2.的问题。拟合圆的方法很多,下面探讨其中三种方7},{8.1,4.2}];法。12In[2]:=a=E[[i,1]]/12i=11平均值法Out[2]=5.18333n对于均匀分布在圆上的n个点(xi,yi),I=1,In[3]:=b=Et[[i,1]]/12i=1n2,,,n.从理论上讲,圆心坐标应为(Exi/n,Out[3]=4.95i=1nIn[4]:=r=Eyi/n),圆心到圆上任一点的距离即为圆的半22i=1E(a-t[[i,1]])+(b-t[[i,2]])/12径。在实际问题中,实验测得的各点不可能正好
4、均匀Out[4]=3.19194分布在圆上,甚至有些点还不在圆上,但只要各离散In[5]:=grpt=ListPlot[t,DisplayFunctionynn点分布较为均匀,仍可将(Exi/n,Eyi/n)作为Identity];i=1i=1In[6]:=grcir=Graphics[Circle[{5.1833,圆心坐标,圆心到各离散点的距离的平均值可作为圆半径的近似值。4.9500},3.1939]]下面以/用稳恒电流场模拟静电场0实验中一Out[6]=.Graphics.组实测数据为例,运用上述方法拟合出圆,并将各数In[7]:=Show[grpt,
5、grcir,Graphics[Point据点和圆同时显示出来,以便直观地观察拟合效果。[{5.1833,4.9583}]],AspectRatioy1,Framey实验测得一组等位点为{8.2,5.7},{7.4,7.2},{6.True,DisplayFunctiony$DisplayFunction,Axesy0,8.0},{4.3,8.1},{3.0,7.4},{2.1,6.1},{2.1,False]¹收稿日期:2002-02-26作者简介:徐国旺(1967-),男,湖北省潜江市人,讲师。¹4期徐国旺,廖明潮:拟合圆的几种方法105Out[7]=.G
6、raphics.得最小值。用最小二乘法来拟合曲线可得到很好的所得拟合效果如图1所示。效果,但直接用最小二乘法来拟合圆,其过程较为复杂。Mathematica中有专门拟合曲线的函数Fit[],该函数就是一个基于最小二乘法的函数。用函数Fit[]拟合曲线,不仅拟合效果好,而且过程也十分简单。图1用平均值法拟合的圆2加权平均法考虑到一般情况下数据点不可能分布很均匀,用求平均值法求得的圆心位置会偏向数据点密集的图2用加权平均法拟合的圆一边,求出的半径也会偏小。要克服这种方法的不把圆的方程写成y=f(x)的形式即为y=足,在求圆心坐标和半径大小时,可采用加权平均22b
7、?r-(x-a),直接用Fit[]函数来拟合圆法。其基本思想是:设l为所有相邻两点之间的弧22有些困难。如果令z=x+y,则上面圆的方程即长之和,点(xi,yi)与相邻两点之间的弧长之和为222变为z=2ax+2by+(r-a-b)。这时用Fitli,在计算圆心坐标和半径大小时,该点和该点到圆[]函数来拟合z=f(x,y)就非常容易了。具体心距离的权数为li/(2*1)。则圆心坐标为过程如下:(Exili/(2*l),Eyili/(2*l)),半径r=EIn[1]:=t=List[{8.2,5.7},{7.4,7.2},2(xi-a)+(yi-b)li/(2
8、*l)。在圆心和半径还{6.0,8.0},{4.3,