|
|
#3
ydgsl2007-06-20 23:03
回复:(syden11)[求助]怎样实现圆的拟合?
一个实例: x=[38.849, 37.706, 31.188, 20.238, 6.8660, -6.5940, -18.056, -26.135, -30.328, -30.814, -28.035, -22.542, -14.782, -5.2590, 5.4750, 16.587, 26.893, 34.852]; y=[ 0., 13.724, 26.107, 35.053, 38.934, 37.402, 31.276, 21.931, 11.039, .100e-2, -10.204, -18.915, -25.603, -29.825, -31.049, -28.729, -22.565, -12.684]; b=[35.06010729, 4.016838807, .2587265862e-2] x1=linspace(min(x)-1,max(x)+.5,120); y1=sqrt(b(1)*b(1)-(x1-b(2)).^2)+b(3)+4; plot(x,y,'o','markerfacecolor','k','markeredgecolor','k','markersize',8) hold on plot(x1,y1,'b-','linewidth',3) y2=-sqrt(b(1)*b(1)-(x1-b(2)).^2)+b(3)+4; plot(x1,y2,'b-','linewidth',3) plot(b(2),4+b(3),'or','markerfacecolor','r','linewidth',2) axis tight 在本例中,b(2)=4.0168,4+b(3)=4.0026即为圆心位置,b(1)=35.06为半径。 若能提供数据,也可进行类似拟合。
|