求空间多点拟合球的matlab程序,并给出该球的坐标方程,球心坐标未知,不一定为原点。点坐标为excel文件 10
2个回答
展开全部
最小二乘
Ax=b
AT Ax=AT b
x=(AT A)^-1(AT b)
function [a,b,c,r]=fitcircle(x,y,z)
%(x+a)^2+(y+b)^2+(z+c)^2=r^2
x=x(:);
y=y(:);
z=z(:);
csize=min([length(x),length(y),length(z)]);
if csize<4
a=0;
b=0;
c=0;
r=-1;
return
end
pow_xyz=-x(1:csize).*x(1:csize);
pow_xyz=pow_xyz-y(1:csize).*y(1:csize);
pow_xyz=pow_xyz-z(1:csize).*z(1:csize);
A=[x(1:csize),y(1:csize),z(1:csize),ones(csize,1)];
xans=((A'*A)^-1)*(A'*pow_xyz);
a=xans(1);
b=xans(2);
c=xans(3);
r=(a*a+b*b+c*c)/4-xans(4);
r=sqrt(r);
a=a/2;
b=b/2;
c=c/2;
end
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询