0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

三点を通る放物線の軸位置を求める問題

Last updated at Posted at 2023-04-11

座標変数 $p$ に対する関数を $f(p)$ とする。位置 $p_1, p_2, p_3$ において関数 $f_1, f_2, f_3$ が与えられているとき、これを二次関数で補間して最大値を得る位置 $p_x$ を求める。

二次関数の形を $f(p) = f_x - a(p - p_x)^2$ とする。

区間 $[p_1, p_2]$ の平均傾きを計算すると$f_x$が消去できて

\frac{f_2-f_1}{p_2-p_1} 
= -a \frac{ (p_2-p_x)^2-(p_1-p_x)^2 }{p_2-p_1}
= -a \frac{ [(p_2-p_x)+(p_1-p_x)][(p_2-p_x)-(p_1-p_x)] }{p_2-p_1}
= -a (p_1 + p_2 - 2p_x) 

区間 $[p_2, p_3]$ の平均傾きについても同様に

\frac{f_3-f_2}{p_3-p_2} 
= -a (p_2 + p_3 - 2p_x) 

差し引くと $p_x$ が消去できて

\frac{f_3-f_2}{p_3-p_2}-\frac{f_2-f_1}{p_2-p_1} = -a[(p_3+p_2)-(p_2+p_1)]
= -a (p_3 - p_1)

つまり

a = \frac{1}{p_3-p_1} \left( \frac{f_2-f_1}{p_2-p_1}-\frac{f_3-f_2}{p_3-p_2} \right)

この式には除算があるが、分母はたとえば $p$ が等間隔という知識があれば、非常に小さくなるような病的ケースが起こりにくい。
いっぽう、$a$ が非常に小さいような病的なケースはここで見つけて弾いておかねばならんのかもしれない。

次に $p_x$ を求める。傾きの式から

2p_x = p_1 + p_2 + \frac{1}{a} \frac{f_2-f_1}{p_2-p_1}

などとして $p_x$ が得られる。いちばん大きな除算のゼロ割懸念は、 $a$ の検査をしていればクリアされる。

最後に $f_x$ はたとえば2番節点から(何番でもよいのだが)

f_x = f_2 + a(p_2 - p_x)^2
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?