最小二乘法拟合椭圆附带matlab程序

最小二乘法拟合椭圆设平面任意位置椭圆方程为:x2+Axy+By2+Cx+Dy+E=0设Pi(xi,yi)(i=1,2,…,N)为椭圆轮廓上的N(N≥5)个测量点,依据最小二乘原理,所拟合的目标函数为:F(A,B,C,D,E)=∑i=1N(xi2+Axiyi+Byi2+Cxi+Dyi+E)2欲使F为最小,需使∂F∂A=∂F∂B=∂F∂C=∂F∂D=∂F∂E=0由此可以得方程:[∑❑❑xi2yi2∑❑❑xiyi3∑❑❑xi2yi∑❑❑xiyi2∑❑❑xiyi∑❑❑xiyi3∑❑❑yi4∑❑❑xiyi2∑❑❑yi3∑❑❑yi2∑❑❑xi2yi∑❑❑xiyi2∑❑❑xi3∑❑❑xiyi∑❑❑xi∑❑❑xiyi2∑❑❑yi3∑❑❑xiyi∑❑❑yi2∑❑❑yi2∑❑❑xiyi∑❑❑yi2∑❑❑xi∑❑❑yiN][ABCDE]=-[∑❑❑xi3yi∑❑❑xi2yi2∑❑❑xi3∑❑❑xi2yi∑❑❑xi2]解方程可以得到A,B,C,D,E的值。根据椭圆的几何知识,可以计算出椭圆的五个参数:位置参数(θ,x0,y0)以及形状参数(a,b)。x0=2BC−ADA2−4By0=2D−ADA2−4Ba=❑√2(ACD−BC2−D2+4BE−A2E)(A2−4B)(B−❑√A2+(1−B2)+1)b=❑√2(ACD−BC2−D2+4BE−A2E)(A2−4B)(B+❑√A2+(1−B2)+1)θ=tan−1❑√a2−b2Ba2B−b2附:MATLAB程序function[semimajor_axis,semiminor_axis,x0,y0,phi]=ellipse_fit(x,y)%%Input:%x——avectorofxmeasurements%y——avectorofymeasurements%%Output:%semimajor_axis——Magnitudeofellipselongeraxis%semiminor_axis——Magnitudeofellipseshorteraxis%x0——xcoordinateofellipsecenter%y0——ycoordinateofellipsecenter%phi——Angleofrotationinradianswithrespecttox-axis%%explain%2*b'*x*y+c'*y^2+2*d'*x+2*f'*y+g'=-x^2%M*p=bM=[2*x*yy^22*x2*yones(size(x))],%p=[bcdefg]b=-x^2.%p=pseudoinverse(M)*b.x=x(:);y=y(:);%ConstructMM=[2*x.*yy.^22*x2*yones(size(x))];%Multiply(-X.^2)bypseudoinverse(M)e=M\(-x.^2);%Extractparametersfromvectorea=1;b=e(1);c=e(2);d=e(3);f=e(4);g=e(5);%UseFormulasfromMathworldtofindsemimajor_axis,semiminor_axis,x0,y0,andphidelta=b^2-a*c;x0=(c*d-b*f)/delta;y0=(a*f-b*d)/delta;phi=0.5*acot((c-a)/(2*b));nom=2*(a*f^2+c*d^2+g*b^2-2*b*d*f-a*c*g);s=sqrt(1+(4*b^2)/(a-c)^2);a_prime=sqrt(nom/(delta*((c-a)*s-(c+a))));b_prime=sqrt(nom/(delta*((a-c)*s-(c+a))));semimajor_axis=max(a_prime,b_prime);semiminor_axis=min(a_prime,b_prime);if(a_prime

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?