【问题标题】:Fastest way to fit a parabola to set of points?将抛物线拟合到一组点的最快方法?
【发布时间】:2011-05-01 15:25:07
【问题描述】:

给定一组点,用抛物线拟合它们的最快方法是什么?是做最小二乘计算还是有迭代的方法?

谢谢

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

【问题讨论】:

  • 你需要处理旋转抛物线吗?还是在y=ax^2+bx+c 表单中?

标签: algorithm math interpolation regression


【解决方案1】:

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

【讨论】:

  • 从链接中发布一些摘要或公式,因为当链接为dead or changed 时,您的答案将无用。
  • 不幸的是,现在就是这种情况。第一个链接似乎已失效。
【解决方案2】:

我最近需要找到一条通过 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 交换,然后继续。

希望有帮助!

保罗·普罗伯特

【讨论】:

    【解决方案3】:

    计算解决方案几乎总是比迭代解决方案快。 “例外”是针对低迭代次数和复杂计算。

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

    【讨论】:

    • 我知道我参加晚会迟到了,但我对你的回答有点怀疑。 “线性回归”中的线性不是指您要拟合的方程,而是指您拟合的方程仅线性依赖于拟合变量。例如,线性回归可以应用于函数a cos x + b e^x,其中ab 是拟合变量,但不能直接应用于cos( a x + b )。关键是,适合a x^2 + b x + c 的最小二乘是线性的。
    • 但是你适合三个常量吗?
    • 是的,他正在寻找的常量是abc,并且拟合保持“线性”。
    【解决方案4】:

    抛物线算法

    1. 读取编号。数据点 n 和多项式 Mp 的阶数。
    2. 读取数据值。
    3. 如果 n
    4. 设置 M=Mp + 1 ;
    5. 计算 C 矩阵的系数。
    6. 计算 B 矩阵的系数。
    7. 求解系数 a1,a2,。 . . . . . .一个。
    8. 写出系数。
    9. 在自变量的 glren 处估计函数值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2018-02-20
      • 2019-06-11
      • 1970-01-01
      • 2018-01-02
      相关资源
      最近更新 更多