MATLAB的拟合圆
clc,clear
A=[384 310;386 306;389 300;392 294;396 287;400 281;404 277;409 272;413 269;417 267;420 265;424 263;430 260;434 257;439 256];
%%第一列为x坐标,第二列为y坐标,散点大概为一段圆弧上的点,利用圆的基本方程,进行圆弧拟合,并得出圆心坐标和半径
X=A;
n=length(X(:,1));
y=ones(n,1);
b=[rand(1)*1000 rand(1) rand(1)]
fun=inline('X(:,1).^2+X(:,2).^2+a(1)*X(:,1)+a(2)*X(:,2)+a(3)','a','X');
[a,r,J] = nlinfit(X,y,fun,b)
vpa(a,10)
%圆心
X1 =-a(1)/2,Y1 =-a(2)/2
%半径
R =sqrt(a(1)^2+a(2)^2-4*a(3))/2