【発展】二次関数の決定(3点指定)とラグランジュ補間

グラフが3点を通る場合に二次関数を求める問題を考えるには、【基本】二次関数の決定(3点指定)で見た通り、3つの式がある連立方程式を解く必要がありました(この連立方程式は、「三元一次連立方程式」などと呼ばれることもあります)。

ここでは、この問題を別のアプローチで解く方法を考えます。

二次関数を3つに分解する

ある二次関数のグラフが、点 $(x_0,y_0)$, $(x_1,y_1)$, $(x_2,y_2)$ の3点を通るとします。なお、 x 座標が同じものは入っていないとします。このとき、この二次関数を求める、という問題を考えてみます。

普通に解けば、 $f(x)=ax^2+bx+c$ と置いて、各点を通るという条件を使って式を3つ作り、連立方程式を解く、という流れになります。しかし、ここでは、少し違ったアプローチを考えます。

求めたい二次関数を考える前に、次のような3つの二次関数を考えることにします。

  • グラフが、点 $(x_0,1)$, $(x_1,0)$, $(x_2,0)$ の3点を通る二次関数 $f_0(x)$
  • グラフが、点 $(x_0,0)$, $(x_1,1)$, $(x_2,0)$ の3点を通る二次関数 $f_1(x)$
  • グラフが、点 $(x_0,0)$, $(x_1,0)$, $(x_2,1)$ の3点を通る二次関数 $f_2(x)$

唐突感はありますが、これらの二次関数が求まれば、とてもいいことが起こります。次のような式を考えてみましょう。\[ y_0f_0(x) +y_1f_1(x) +y_2f_2(x) \]これに、 $x=x_0$ を代入すると、1項目から $y_0$ が出てきますが、2項目と3項目はなくなります。同様に、 $x=x_1$ や $x=x_2$ を入れるとわかりますが、この関数のグラフは、指定された3点を通ることがわかります。つまり、これがいま求めたい $f(x)$ になるんですね。

しかも、それぞれの二次関数は、わりと簡単に求めることができます。 $f_0(x)$ を考えてみましょう。このグラフが点 $(x_1,0)$, $(x_2,0)$ を通ることから、【基本】二次関数の決定(x軸との交点指定)で見たように、\[ f_0(x)=a(x-x_1)(x-x_2) \]と書けることが分かります。これが $(x_0,1)$ も通るので
\begin{eqnarray}
& & 1=a(x_0-x_1)(x_0-x_2) \\
& & a=\frac{1}{(x_0-x_1)(x_0-x_2)} \\
\end{eqnarray}となることがわかります。よって、\[ f_0(x) = \frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}\]となります。他も同様に計算すると(計算しなくても、文字を入れ替えればいいだけですね)、求めたい二次関数は次のように書けます。
\begin{eqnarray}
f(x)
&=&
\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)} y_0 \\[5pt] &+&
\frac{(x-x_2)(x-x_0)}{(x_1-x_2)(x_1-x_0)} y_1 \\[5pt] &+&
\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} y_2 \\
\end{eqnarray}

結構、ごつい式ですね。対称性はありますが、覚えるのは少し大変そうです。しかし、これに点の情報を代入すれば、連立方程式を解くことなく、一発で二次関数が求められます。

例題

【例題】
ある二次関数のグラフが、点 $(1,2)$, $(2,3)$, $(3,6)$ を通るとき、この二次関数を求めなさい。

上で求めた式にそのまま代入してみましょう。
\begin{eqnarray}
f(x)
&=&
\frac{(x-2)(x-3)}{(1-2)(1-3)} \times 2 \\[5pt] &+&
\frac{(x-3)(x-1)}{(2-3)(2-1)} \times 3 \\[5pt] &+&
\frac{(x-1)(x-2)}{(3-1)(3-2)} \times 6 \\[5pt] &=&
(x-2)(x-3) -3(x-3)(x-1) +3(x-1)(x-2) \\
&=&
x^2-5x+6 -3x^2+12x-9 +3x^2-9x+6 \\
&=&
x^2-2x+3 \\
\end{eqnarray}となります。最後のまとめるところは少し計算が面倒ですが、一発で答えが出ます。

【基本】二次関数の決定(3点指定)と同じ問題なので、もちろん、同じ結果になっています。

ラグランジュ補間

上では、 $f(x)$ を求めるときに、特殊な3つの二次関数に分けて、\[ f(x)=y_0f_0(x) +y_1f_1(x) +y_2f_2(x) \]と書きました。このようにして二次関数を求める方法を、一般的にラグランジュ補間(Lagrange interpolation)と呼ばれています(高校数学では特に学びません)。

ラグランジュ補間とは、ある n 次関数のグラフが $n+1$ 個の点を通るときに、その関数を一発で求める方法で、ここで見た式は $n=2$ の場合にあたります。

なお、詳しくは書きませんが、ある n 次関数のグラフが $n+1$ 個の点を通るようなものがあれば、そんな関数は1つしかないことがわかっているので、この方法で関数が求められればそれが答えになります。

おわりに

二次関数を、3つの二次関数に分解する、という考え方は面白いですね。実際の試験では素直に連立方程式を解くことになると思いますが、こういう解き方もある、と知っておいてもいいでしょう。