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

vic*_*tor 5 algorithm math interpolation regression

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

谢谢

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

Dr.*_*ius 8

如果这些点没有关联的错误,则可以插入三个点.否则,最小二乘或任何等效的配方是要走的路.

  • 从链接发布一些摘要或公式,因为当链接将"死亡或更改"时,您的答案将无用. (2认同)

小智 5

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

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

y-y0 = a*(x-x0)^2
Run Code Online (Sandbox Code Playgroud)

通过它们:找到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
Run Code Online (Sandbox Code Playgroud)

注意在c的等式中,if y2==y3你有一个问题.所以在我的算法中我检查这个并交换说x1,y1和x2,y2然后继续.

希望有所帮助!

保罗普罗伯特