{% include 'core/breadcrumb_list.html' with category_list=category_list title=article.title is_published=article.is_published %}

【未知数不要】3点を通る二次関数の最速公式

【未知数不要】3点を通る二次関数の最速公式

二次関数を求める際の最速の方法を提案します。3元連立方程式を丸ごと消し去る必殺技です!

結論

ラグランジュ補間)3点$(x_1, y_1), (x_2, y_2), (x_3, y_3)$を通る二次関数の式は、

\[y=\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x_3)}y_1+\frac{(x-x_1)(x-x_3)}{(x_2-x_1)(x_2-x_3)}y_2+\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_3-x_2)}y_3 \tag{1}\]

具体例

例題

3点$(1, 3), (2, 6), (3, 13)$を通る二次関数を求めよ。

解法

ラグランジュ補間を用いると

\[\begin{align*}y &= \frac{(x-2)(x-3)}{(1-2)(1-3)}\cdot 3 + \frac{(x-1)(x-3)}{(2-1)(2-3)}\cdot6 +\frac{(x-1)(x-2)}{(3-1)(3-2)}\cdot13 \\ &=\frac{3}{2}(x^2-5x+6) - 6(x^2-4x+3) + \frac{13}{2}(x^2-3x+2)\\ &= 2x^2-3x+4\end{align*}\]

原理と導出

まずは一次関数で

まずは話を簡単にするために、2点を通る一次関数について復習しましょう。

2点$(x_1, y_1), (x_2, y_2)$を通る一次関数は、次の公式で求められます。

\[y-y_1=\frac{y_2-y_1}{x_2-x_1}(x-x_1) \tag{2}\]

これは次のように変形できますね。

\[y = \frac{x-x_2}{x_1-x_2}y_1 + \frac{x-x_1}{x_2-x_1}y_2\]

このように変形した理由は右辺の各項を見れば分かります。

右辺の第1項は$x=x_1$のとき$y_1$、$x=x_2$のとき$0$となる一次関数を表しています。

同様に、第2項は$x=x_1$のとき$0$、$x=x_2$のとき$y_2$となる一次関数です。

つまり、これらを足し合わせると$x=x_1$のとき$y=y_1$、$x=x_2$のとき$y=y_2$となる一次関数が得られるというわけです。

表で表すとこうなりますね。

$x$ $x_1$ $x_2$
第1項 $y_1$ $0$
第2項 $0$ $y_2$
合計 $y_1$ $y_2$

二次関数も同様に

あとはこれを二次関数で行えばいいだけです。項がひとつ増えて、次の表のイメージです。

$x$ $x_1$ $x_2$ $x_3$
第1項 $y_1$ $0$ $0$
第2項 $0$ $y_2$ $0$
第3項 $0$ $0$ $y_3$
合計 $y_1$ $y_2$ $y_3$

ではこれを満たすような第1項はどのような二次関数かを考えます。

まず$x_2$や$x_3$を入れると$0$になるので、因数として$(x-x_2)(x-x_3)$を持っているはずです。つまり、定数$k$を用いて

\[k(x-x_2)(x-x_3)\]

という形です。あとは$x=x_1$のときに$y_1$となることを使えば、

\[\begin{align*}k(x_1-x_2)(x_1-x_3)&=y_1 \\ \therefore k &=\frac{y_1}{(x_1-x_2)(x_1-x_3)}\end{align*}\]

となるので、第1項は

\[\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x_3)}y_1 \tag{3}\]

と表されることが分かりました!

この$(3)$式、$x=x_1$を代入するとちょうど分数が約分されて係数の$y_1$だけが残るようになってますね(導出方法から、当たり前ですが)。最初からこれを狙っていたわけです。

これを第2項、第3項も考えて合計すると、最初の式が得られます。

\[y=\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x_3)}y_1+\frac{(x-x_1)(x-x_3)}{(x_2-x_1)(x_2-x_3)}y_2+\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_3-x_2)}y_3\]

少し長い式ですが、このように意味から考えると覚えるまでもありませんね!

答案で書くなら

答案で使うときは、「ラグランジュの補間多項式より」とするか、裏でこの公式を使って答えを求めておき、「この式は題意を満たす。よって求める答えはこの式とだけ書いておきましょう。

答えが合っている確認ができれば、それがどこから出てきたのかを言う必要はないのです。

拡張

同様の議論をすれば、$n$個の点$(x_i, y_i)|_{i=1, 2, \ldots ,n}$を通る$n-1$次関数を具体的に書き表すことができますね。

\[y=\sum_{k=1}^{n} \prod_{1 \leq i \leq n,i \ne k}\frac{(x-x_i)}{(x_k-x_i)}y_k\]

これを「ラグランジュの補完多項式」といいます。

参考

https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B0%E3%83%A9%E3%83%B3%E3%82%B8%E3%83%A5%E8%A3%9C%E9%96%93