给定一组积分,抛物线最快的方法是什么?它是进行最小二乘计算还是有迭代方式?
由于
编辑: 我认为梯度下降是要走的路。最小二乘计算会更加费力(必须进行qr分解或保持稳定的东西)。
答案 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的算法