【发布时间】:2016-12-27 15:40:21
【问题描述】:
我有几个点圆正在通过,我想找到中心固定在原点的最佳拟合圆的半径。
CircFit 不允许明确指定中心,我需要将其固定在原点。
【问题讨论】:
-
我只是尝试使用 CircFit,但它不允许我修复中心。 MATLAB 中是否还有其他可用的函数可以让我这样做?
-
一个简单的解决方案是从中心到每个点的平均距离来近似圆的半径。你说的最合适是什么意思?
-
有一个误差函数,它是给定点与圆上相应最近点之间距离的平方。我需要最小化错误并获得它的半径。
-
最小二乘优化的解决方案是每个点的平均距离。
-
如果相对于
r最小化函数err = sum((sqrt((x-xc).^2 + (y-yc).^2) - r).^2)。你取err对r的导数并将其设置为零,然后求解r。最小化的解决方案是r = mean(sqrt((x - xc).^2 + (y - yc).^2))。不需要梯度下降或类似的东西。
标签: matlab machine-learning regression linear-regression