6

一連の点が与えられたとき、それらに放物線を合わせる最も速い方法は何ですか? 最小二乗計算を行っていますか、それとも反復的な方法がありますか?

ありがとう

編集:勾配降下が進むべき道だと思います。最小二乗計算は、もう少し負担が大きかったでしょう (物事を安定させるために qr 分解または何かをしなければなりません)。

4

4 に答える 4

8

ポイントにエラーが関連付けられていない場合は、3 つのポイントで補間できます。それ以外の場合は、最小二乗法または同等の定式化が有効です。

于 2010-10-28T01:41:10.123 に答える
5

最近、3 点を通る放物線を見つける必要がありました。

放物線が(x1,y1), (x2,y2) and (x3,y3)あり、放物線が必要だとします。

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

それらを通過するには: find 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 と交換してから続行します。

それが役立つことを願っています!

ポール・プロバート

于 2014-07-11T05:04:35.207 に答える
2

計算解は、ほとんどの場合、反復解よりも高速です。「例外」は、反復回数が少ない場合と複雑な計算の場合です。

最小二乗法を使用します。線形回帰フィット用にコーディングしただけですが、放物線に使用できます (最近調べた理由がありました - ソースには、「Numerical Recipes」Press et al; および「Engineering Mathematics」Kreyzig の古い版が含まれていました)。

于 2010-10-28T01:40:35.757 に答える
0

放物線のアルゴリズム

  1. いいえを読んでください。データ点 n の数と多項式 Mp の次数。
  2. データ値を読み取ります。
  3. If n< Mp [回帰は不可能] 停止するか、続行します。
  4. M=Mp + 1 を設定します。
  5. C-matrix の係数を計算します。
  6. B-matrix の係数を計算します。
  7. 係数 a1、a2、を解きます。. . . . . . 。
  8. 係数 を書きます。
  9. 独立変数の glren で関数値を推定します。
于 2016-04-22T03:34:15.407 に答える