問題
(x1, y1) (x2, y2) (x3, y3)の3点を通る放物線(2次関数)を求めよ。ただしx1≠x2, x1≠x3, x2≠x3は保証されているとする。
解答1
y=ax^2+bx+c
とおいて、ここに3点を代入すれば求められる。
かなり大変な計算になるが、
a = {(y1-y2)/(x1-x2)-(y2-y3)/(x2-x3)}/(x1-x3)
b = (y1-y2)/(x1-x2)-(x1+x2)a
c = y1-ax1^2-bx1
となる。
解答2
3点を通る放物線は以下の式で書ける。
ref
y=a(x-x1)(x-x2)+b(x-x2)(x-x3)+c(x-x3)(x-x1)
ここへ3点を代入すると、簡単に、
(x1,y1) → b = y1/{(x1-x2)(x1-x3)}
(x2,y2) → c = y2/{(x2-x3)(x2-x1)}
(x3,y3) → a = y3/{(x3-x1)(x3-x2)}
が求まる。
解答3
2次関数に限らず高次になっても応用しやすい最も一般的な解法は、行列を用いて連立方程式を解くことだろう。
ref1 ref2
最終更新:2010年04月21日 07:51