📄 1.m
字号:
%以下粗略算一下圆心的坐标
labmax=max(ma);%横纵坐标的最大值
labmin=min(ma);%横纵坐标的最小值
rx=(labmax(1,1)+labmin(1,1))/2;%圆心的横坐标
ry=(labmax(1,2)+labmin(1,2))/2;%圆心的纵坐标
r=zeros(1,length(ma(:,1)));
for m=1:length(ma(:,1))
r(1,m)=sqrt((ma(m,1)-rx)^2+(ma(m,2)-ry)^2);
end
r=sum(r)/length(r);%半径的平均值
p1=polyfit(x1,y2,2);
m1=polyval(p1,x1);
subplot(222)
plot(x1,m1,'-')
title('(X-b).^2=-Y.^2+2*a*Y+R.^2-a.^2')
p2=polyfit(y1,x2,2);
m2=polyval(p2,y1);
subplot(223)
plot(y1,m2,'-')
title('(Y-a).^2=-X.^2+2*b*X+R.^2-b.^2')
xaxis=p1(3);
yaxis=p2(3);
x3=x2-xaxis;
y3=y2-yaxis;
x4=x3.^2;
y4=y3.^2;
p3=polyfit(x4,y4,1)
m3=polyval(p3,x4);
subplot(224)
plot(x4,m3,'-');
title('横纵坐标之间的线性关系')
r0=sqrt(p3(2))
%用偏导数来求
p4=polyfit(2*x2,y2,2)
b=-1*p4(2)/2
C=N*sum(x1.^2)-sum(x1)*sum(x1);
D=N*sum(x1.*y1)-sum(x1)*sum(y1);
E=N*(sum(x1).^3)+N*(sum(x1.*(y1.^2)))-sum(x1.^2+y1.^2)*sum(x1);
G=N*sum(y1.^2)-sum(y1)*sum(y1);
H=N*sum((x1.^2).*y1)+N*sum(y1.^3)-sum(x1.^2+y1.^2)*sum(y1);
a=(H*D-E*G)/(C*G-D*D);
b=(H*C-E*D)/(D*D-G*C);
c=-(sum(x1.^2+y1.^2)+a*sum(x1)+b*sum(y1))/N;
A=-1*a/2
B=-1*b/2
R=0.5*sqrt(a*a+b*b-4*c)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -