最小二乘法圆拟合(含matlab程序及说明).ppt
* 最小二乘法 圆拟合 (含matlab程序及说明) 最小二乘法拟合圆曲线:令a=-2A,b=-2B,则:圆的另一形式为: * 只需求出参数a,b,c即可以求的圆半径参数: * 样本集点 到圆边缘的距离的平方与和半径平方的差为: * 下面求参数a,b,c使得Q(a,b,c)的值最小即可 * F(a,b,c)对a,b,c求偏导,令偏导等于0,得到极值点,比较所有极值点的函数值即可得到最小值。 ① ② ③ * 由 ① × N- ③ × ② × N- ③ × 且令 * 解得: Ca+Db+E=0 Da+Gb+H=0 * 得A、B、R的估计拟合值: * * t=0:0.01:pi; a=20;%设定圆心X轴数值 b=30;%设定圆心Y轴数值 r=5;%设定圆半径数值 x=a+r*cos(t)+randn(1,315); y=b+r*sin(t)+randn(1,315); plot(x,y); hold on; x=x(:); y=y(:); m=[x y ones(size(x))]\[-(x.^2+y.^2)]; xc = -.5*m(1)%拟合圆心X轴数值 yc = -.5*m(2)%拟合圆心Y轴数值 R = sqrt((m(1)^2+m(2)^2)/4-m(3))%拟合半径数值 plot(xc,yc,'r-x',(xc+R*cos(t)),(yc+R*sin(t)),'r-'); axis equal;