【发布时间】:2011-05-01 15:25:07
【问题描述】:
给定一组点,用抛物线拟合它们的最快方法是什么?是做最小二乘计算还是有迭代的方法?
谢谢
编辑: 我认为梯度下降是要走的路。最小二乘计算会更费力(必须进行 qr 分解或其他操作以保持稳定)。
【问题讨论】:
-
你需要处理旋转抛物线吗?还是在
y=ax^2+bx+c表单中?
标签: algorithm math interpolation regression
给定一组点,用抛物线拟合它们的最快方法是什么?是做最小二乘计算还是有迭代的方法?
谢谢
编辑: 我认为梯度下降是要走的路。最小二乘计算会更费力(必须进行 qr 分解或其他操作以保持稳定)。
【问题讨论】:
y=ax^2+bx+c 表单中?
标签: algorithm math interpolation regression
如果这些点没有关联错误,you may interpolate by three points。否则least squares 或任何等效的公式都是可行的方法。
【讨论】:
dead or changed 时,您的答案将无用。
我最近需要找到一条通过 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 交换,然后继续。
希望有帮助!
保罗·普罗伯特
【讨论】:
计算解决方案几乎总是比迭代解决方案快。 “例外”是针对低迭代次数和复杂计算。
我会使用最小二乘法。我只为线性回归拟合编码了它,但它可以用于抛物线(我最近有理由查找它 - 来源包括旧版本的“数字食谱”出版社等;和“工程数学”克雷齐格)。
【讨论】:
a cos x + b e^x,其中a 和b 是拟合变量,但不能直接应用于cos( a x + b )。关键是,适合a x^2 + b x + c 的最小二乘是线性的。
a、b 和c,并且拟合保持“线性”。
抛物线算法
【讨论】: