【发布时间】:2011-10-12 22:42:51
【问题描述】:
我对 python 比较陌生。我的问题如下
我在形成二维弧的任意平面上有一组嘈杂的数据点 (x,y,z)。 我想要一个通过这些点的最佳拟合圆并返回:中心 (x,y,z)、半径和残差。
如何在 python 中使用 scipy 来解决这个问题。我可以使用迭代方法解决这个问题并为其编写整个代码。但是,有没有办法在 python 中使用 minimumsq 来最好地拟合一个圆?然后找到中心和半径?
谢谢 奥维斯
【问题讨论】:
-
任意平面是预先知道的,还是你也必须确定?如果是后者,则需要拟合一些额外的参数来确定平面,即使您只报告中心、半径和残差。
-
@JimLewis 任意平面是提前知道的。我已将我的 3d 数据点投影到这个最合适的平面上。然而,现在我想要一个最适合这个最适合平面上的项目点的圆。
-
如果您事先知道平面(如您对 JimLewis 问题的回答),那么平面上的 3 个点可以唯一地描述一个圆 - 无需使用任何最小二乘算法(请参阅CIRCLE THROUGH THREE POINTS 获取几何构造图 - 您只需要取一些差异和平方根)。如果您对每个点都有一个不确定半径,并且想要为圆心生成一个不确定半径,那么它会更复杂 - 但您仍然不需要任何统计数据。
-
@Peter 我实际上有大约 590 个坐标形成一个近似弧。我需要一个最适合这些坐标及其半径和残差的圆弧。
-
谢谢 - 现在很明显您有 每个 数据点的 (x,y,z) 坐标。 This paper 描述了一种在最小二乘意义上找到适合任意(有限)平面点集的圆的方法,尽管它没有讨论残差,因此可能需要对您的应用程序进行一些调整。
标签: python geometry scipy regression least-squares