MATLAB 中具有固定中心的最佳拟合圆
Best fit circle with fix center in MATLAB
我有几个点圆通过,我想找到圆心固定在原点的最佳拟合圆的半径。
CircFit 不允许明确指定中心,我需要它固定在原点。
转post我在评论中的回答。
圆上一点到最近点的距离是sqrt((x-xc).^2 + (y-yc).^2) - r).^2
。最小二乘最优的误差函数是 err = sum((sqrt((x-xc).^2 + (y-yc).^2) - r).^2)
.
对 r
求 err
的导数并将其设置为零,然后求解 r
得到 r = mean(sqrt((x - xc).^2 + (y - yc).^2))
.
作为 MATLAB 函数,这可以写成
function r = circfitFixedC(x,y,xc,xy)
r = mean(sqrt((x - xc).^2 + (y - xy).^2));
我有几个点圆通过,我想找到圆心固定在原点的最佳拟合圆的半径。
CircFit 不允许明确指定中心,我需要它固定在原点。
转post我在评论中的回答。
圆上一点到最近点的距离是sqrt((x-xc).^2 + (y-yc).^2) - r).^2
。最小二乘最优的误差函数是 err = sum((sqrt((x-xc).^2 + (y-yc).^2) - r).^2)
.
对 r
求 err
的导数并将其设置为零,然后求解 r
得到 r = mean(sqrt((x - xc).^2 + (y - yc).^2))
.
作为 MATLAB 函数,这可以写成
function r = circfitFixedC(x,y,xc,xy)
r = mean(sqrt((x - xc).^2 + (y - xy).^2));