将抛物线拟合到一组点的最快方法?

时间:2010-10-28 01:30:10

标签: algorithm math interpolation regression

给定一组积分,抛物线最快的方法是什么?它是进行最小二乘计算还是有迭代方式?

由于

编辑: 我认为梯度下降是要走的路。最小二乘计算会更加费力(必须进行qr分解或保持稳定的东西)。

4 个答案:

答案 0 :(得分:8)

如果这些点没有关联错误,you may interpolate by three points。否则least squares或任何等效的表述是可行的方法。

答案 1 :(得分:5)

我最近需要找到一个通过3分的抛物线。

假设您有(x1,y1), (x2,y2) and (x3,y3),并且您想要抛物线

y-y0 = a*(x-x0)^2

通过它们:找到y0, x0, and a

你可以做一些代数并得到这个解决方案(提供点不是全部都在线上):

let c = (y1-y2) / (y2-y3)
x0    = ( -x1^2 + x2^2 + c*( x2^2 - x3^2 ) )  /  (2.0*( -x1+x2 + c*x2 - c*x3 ))
a     = (y1-y2)  /  ( (x1-x0)^2 - (x2-x0)^2 )
y0    = y1 - a*(x1-x0)^2
在c if y2==y3的等式中

注意,那么您就遇到了问题。所以在我的算法中,我检查这个并交换说x1,y1和x2,y2然后继续。

希望有所帮助!

保罗普罗伯特

答案 2 :(得分:1)

计算的解决方案几乎总是比迭代解决方案更快。 “异常”将用于低迭代计数和复杂计算。

我会使用最小二乘法。我只是将它编码为线性回归拟合,但它可以用于抛物线(我最近有理由查找它 - 来源包括旧版“数字食谱”Press等;和“工程数学”Kreyzig)。

答案 3 :(得分:0)

PARABOLA的算法

  1. 读取否。数据点n和多项式Mp的顺序。
  2. 读取数据值。
  3. 如果n <熔点 [不可能回归]         停  其他         继续;
  4. 设置M = Mp + 1;
  5. 计算C矩阵的系数。
  6. 计算B矩阵的系数。
  7. 解决效率问题       A1,A2,。 。 。 。 。 。 。 an。
  8. 写下系数。
  9. 估算独立变量的函数值。