0

重複の可能性:
3 点を指定して放物線の頂点を計算する方法

3 つの 2D 点 P1、P2、および P3 があり、それぞれが座標 (Xn、Yn) のペアで構成されています。

  1. X1 < X2 < X3;
  2. Y2 < Y1;
  3. Y2 < Y3;

幾何学的に言えば、それらは「V」を形成します。

私が必要としているのは、3 点を通過する放物線の頂点の座標を取得し、その凹面が上を向いて、不十分にサンプリングされた曲線の局所的最小値と見なす方法です。

私は Python を使用しており、オンラインで見つかったアルゴリズムを採用していますが、V の左脚が高い場合にのみ機能するようです。元のアルゴリズムの望ましくないインデックス依存の動作を回避するために、それを適応させる際にいくつかの間違いを犯したと思います。

def parabolic_interpolation(p1, p2, p3):
    x1, y1 = p1
    x2, y2 = p2
    x3, y3 = p3
    dx = x2 - x1
    dy = (y3 - y1) * 0.5
    d2y = 2 * y2 - y1 - y2
    di = dy/d2y
    xout = x2 + di * dx
    yout = y2 + (dy**2/d2y)*0.5
    return (xout,yout)

局所的な最小値 (または最大値) を見つけるために 3 点を補間する問題は、おそらく既に計算で解決されていると確信しているため、問題を解決するための助けをいただければ幸いです。

読んでくれてありがとう!

4

0 に答える 0