当前位置:文档之家› 最小二乘法圆拟合及matlab程序

最小二乘法圆拟合及matlab程序

10
Q ( a ,,) b c 2 2 2 ( X Y a X b Y ) Y 0 i i i i c i ② b
Q ( a ,,) b c 2 2 2 ( X Ya X b Y )0 ③ i i i i c c
6
由 ① × N- ③ × Xi
最小二乘法圆拟合
1
( x A ) ( y B ) 最小二乘法拟合圆曲线: R
2 2
2 2 2 2 2 R x 2 A x A y 2 B y B
2
令a=-2A,b=-2B,
2 2 2 c A B R
则:圆的另一形式为:
x y a x b y c0
2 i 2 2 i i

2
下面求参数a,b,c使得Q(a,b,c)的值最小即可
5
F(a,b,c)对a,b,c求偏导,令偏导等于0,得到极值点,比较所有极值点的函 数值即可得到最小值。
Q ( a ,, b c ) 2 2 2 ( X Y a X Y ) X 0 i i i b i c i a ①
7
3 2 2 2 E N X N X Y ( X Y ) X i i i i i i
解得: Ca+Db+E=0 Da+Gb+H=0
HD EG a 2 CG D
HC ED b 2 D GC
2 2 ( X Y a Xb Y i i) i i c N
2 2
2
只需求出参数a,b,c即可以求的圆半径参数:
a A 2 a B 2
1 2 2 R a b 4 c 2
3
( X , Y ) , i ( 1 , 2 , 3 N ) 中 到 圆 心 的 距 离 为 d : ii i
2 2 2 d ( X A ) ( YB ) i i
样本集
( X i , Yi )

dR ( X AY )( B )R
i i i i
到圆边缘的距离的平方与和半径平方的差为: 2 2 2 2 2
2 i 2 i
X Y + a X b Yc i i
4
令 Q ( a , b , c ) 为 的 平 方 和 : i
Q ( a , b , c ) [ ( X Y a X b Y c ) ] i i
② × N- ③ × Y i
且令
2 C ( N X XX ) i i i
D ( N X Y XY ) ii i i
2 G ( N Y YY ) i i i
3 2 2 2 H N Y N X Y ( X Y ) Y i ii i i i
8
得A、B、R的估计拟合值:
a A 2
b BБайду номын сангаас 2
1 2 2 R a b 4 c 2
9

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;
相关主题