初めに
この記事の概要
高校で学習する三項間漸化式のちょっと変わった(?)解法を紹介します。具体的には、次の漸化式で表される数列{xn}n=1,2,3,...の一般項を求める方法を紹介します。
xn+2+pxn+1+qxn=0(q=0)(1)
多くの高校生向けの教科書やWeb記事では、特性方程式とよばれる二次方程式λ2+pλ+q=0の解を利用して式(1)を書き換えることで一般項を求める方法が紹介されています。この解法は明快ではあります。しかし、発想にかなりの飛躍があり、納得はしても、同じ方法を使って後から自力で一般項を導出することはかなり難しいと言えます。
本記事では、できるだけ発想を飛躍させることなく、文脈に沿って一般項を求める方法を紹介します(多分)。とくに、本記事で紹介した考え方を用いることで、後からでも自力で一般項を導出することができるように意識して解説します(したい)。
また、一般項を求めるために、差分方程式の非常に基本的な概念を導入します。ちなみに筆者は完全な差分方程式にわかです。
対象読者
三項間漸化式を勉強したけど、特性方程式とか、その解を使った式変形に発想の飛躍を感じてしまっている高校生や高専生を意識した記事になっています。また、今回紹介する解法は、とある微分方程式の解法と関連があります。微分方程式を知っている読者は、本記事をより楽しめるかもしれません。
保身
本記事は、共立出版、広田良悟先生と高橋大輔先生の、『差分と超離散』という書籍のほんの一部を、数学にわかの筆者が魔翻訳し、うすめたものとなっています。誤りが含まれることが無いよう努力しましたが、厳密性は欠かれているものとしてお読みください。正確な議論が知りたい場合には、実際の書籍を確認してください。書籍へのリンクを張っておきます。
https://www.kyoritsu-pub.co.jp/book/b10011204.html
なお、筆者が本記事の作成にあたって参考にしたのは初版第7刷(2020)、p16からp26のあたりです。
準備
問題を眺める
式(1)を再掲します。
xn+2+pxn+1+qxn=0(q=0)(1)
求めたいのは、式(1)に示した漸化式を満たす数列{xn}n=1,2,3,...の一般項です。このような数列{xn}n=1,2,3,...を、式(1)の解と呼ぶことにします。
式(1)でq=0となっているのは、「式(1)は三項間漸化式である」という仮定があるからです。もしq=0であると、式(1)は、
xn+2+pxn+1=0
となり、二項間漸化式となってしまいます。問題としたいのは三項間漸化式ですから、q=0という仮定がおかれているわけです。
ちなみに、pは0でもよいです。p=0のとき、式(1)は、
xn+2+qxn=0
になります。こちらは先ほどのp=0の場合とちがって、隣り合っていない二つの項の関係を表しています。これも三項間漸化式の一種と考えます。
解は無数にある
さて、式(1)の解を求めたいわけですから、式(1)を満たす数列の一般項を、関数f(n)を用いて、
xn=f(n)(2)
のようにあらわすことができればOKです......といいたいところですが、そう単純には行きません。
実は、式(1)は無数の解をもちます。式(1)だけでは条件が弱く、それを満たす数列が無限に出てきてしまうのです。したがって、式(2)のように、xnを一つの関数の形で表すことはできません(表せたとしても、それは式(1)の解のうち一つを表したにすぎません)。本記事で問題にしたいのは、なんとかして、式(1)を満たすすべての解をまとめて表すことはできないか、ということです。
ところで、高校の教科書等でこの手の問題が出題される場合、式(1)とは別に、x1とx2の値、つまり、第1項と第2項の値が制約として与えられていることが多いです(このような制約を初期条件といいます)。後で詳しく論じますが、無数にあった解は、この制約によってただ一つに絞られます。高校の教科書等では、式(1)と初期条件から、それ満たす解をいきなり求める方法が紹介されている、というわけです。
本記事では、対照的に、次のような手順で解を求めます。
- 式(1)を満たすすべての解をまとめてあらわす
- 求めた無数の解の中から、与えられた初期条件を満たす解を取り出す
本記事のメインは主に手順1の方です。手順1がわかれば、手順2はたやすく行えます。
以下では、まず手順1、すなわち、式(1)を満たすすべての解をまとめてあらわす方法を説明していきます。無限に存在する解を一挙に把握するのは、かなり難しく思えるかもしれません。この、一見困難な問題を解決するために、式(1)の解の性質について考察していきましょう。
解の持つ性質
解を一つに決めるには?
式(1)を再掲します。
xn+2+pxn+1+qxn=0(q=0)(1)
前述したとおり、式(1)は解を無数に持ちます。(1)という条件だけでは、それを満たす数列を一つに定めることができないのです。では、「式(1)を満たす」という条件のほかにどんな条件を追加すれば、その解を一つに決めることができるでしょうか。
おそらく一番簡単な方法は、第1項と第2項の値を決めてしまうことです。第1項の値x1と、第2項の値x2を何らかの値に決めてしまったとします。このとき、式(1)から、
x3=−px2−qx1
のように第3項の値を決めることができます。同様に、x3、x2の値と式(1)から、第4項であるx4の値も決めることができます。これを繰り返せば、数列のどの項の値も求めることができます。すなわち、「x1とx2の値が決まっている」という条件の下で、式(1)を満たす数列はただ一つに定まります。
この「x1とx2の値が決まっている」という条件を、式(1)の初期条件といいます。初期条件を決めると式(1)の解は一つに定まる、というわけです。
今述べたことをまとめます。
初期条件(x1,x2の値)を決めると、式(1)の解はただ一つに定まる。
ところで、わかりやすく第1項と第2項の値を決めてもよいですが、かわりに第2項と第3項の値を決めても、式(1)の解は一つに定まります。式(1)から、第1項であるx1は、q=0ですから、
x1=−q1x3−qpx2
のように求めることができますし、第4項以降については先ほどと同様にすべての項を決めることができます。つまり、「x2とx3の値が決まっている」という条件の下でも、式(1)を満たす数列はただ一つに定まります。同様に、第5項と第6項の値を決めたり、第1000項と第1001項の値を決めたりしても、式(1)を満たす解はただ一つに決まります。
つまり、任意の自然数kに対して、「xkとxk+1の値が決まっている」という条件のもとで、式(1)の解はただ一つに定まります。
今述べたことをまとめます。
隣り合う二つの項の値(xk,xk+1の値)を決めると、式(1)の解はただ一つに定まる。
ちなみに...
上記の「隣り合う」という条件は、解を一つに決めるうえで重要です。例えばx1とx3のように、隣り合っていない二つの項の値を決めたとします。このとき、p=0であれば、
x2=−p1x3−pqx1(3)
のように x2 の値が決まり、その他の項の値も決めることができます。しかし、p=0のときは式(3)は成立せず、x2の値は決まりません(x2は任意の値をとれます)。つまり、隣り合っていない2つの項の値を決めても、それを満たす数列が1つに決まるとは限りません。
解の重ね合わせ
式(1)が持つもう一つの性質として、解の重ね合わせについて述べます。
何らかの方法によって、無数に存在する式(1)の解のうち、2つの解を一般項の形で表すことができたとしましょう。それぞれfn,gnとします。fn,gnは式(1)の解ですから、任意の自然数nに対して、次式が成り立ちます。
fn+2+pfn+1+qfn=0(4)
gn+2+pgn+1+qgn=0(5)
この時、次の数列anは、式(1)の解になります。
an=C1fn+C2gn(6)
ここで、C1,C2は任意定数です。
実際に式(6)を式(1)に代入してみると、式(4)と式(5)に注意して、
an+2+pan+1+qan=(C1fn+2+C2gn+2)+p(C1fn+1+C2gn+1)+q(C1fn+C2gn)=C1(fn+2+pfn+1+qfn)+C2(gn+2+pgn+1+qgn)=0
となりますから、確かに式(6)は式(1)の解になっています。式(6)は、式(1)の二つの解fn,gnを、定数倍して足し合わせたものになっています。これを解の重ね合わせといいます。
以上の議論から、式(1)の解の重ね合わせは、また式(1)の解となる、ということがわかります。
fn,gnがそれぞれ式(1)の解であるとき、その重ね合わせC1fn+C2gnも式(1)の解である(ただしC1,C2は任意定数)。
重ね合わせですべての解を表せる?
式(6)は、C1,C2という任意定数を含んでいます。これは、最初に挙げた「式(1)のすべての解をまとめて表示する」という目標にかなり肉薄しているように思えます。なぜなら、式(6)の任意定数の値を変化させることで、式(1)を満たす解を無数に得ることができるからです。しかし、「式(6)で式(1)の解すべてを表すことができているか」については疑問が残ります。C1,C2をどう選んでも得ることができない解が、まだ存在するかもしれないからです。
この可能性を否定し、「式(6)が式(1)の解すべてを表している」と結論するためには、式(1)のどんな解も式(6)の形で表せることを示す必要があります。つまり、式(1)の解すべてを、二つの解の重ね合わせC1fn+C2gnで表せることを示したいわけです。
式(1)の解xnに対して、自然数kを選び、xkとxk+1の値を決めたとします。前述の議論から、この条件を満たす解はただ一つに定まります。もしこの解xnが、fn,gnの重ね合わせで表せるならば、次式が成り立つはずです。
{C1fk+C2gkC1fk+1+C2gk+1=xk=xk+1(7)
式(7)はC1,C2に対する連立一次方程式になります。もし、任意のk,xk,xk+1に対して、その解C1,C2がただ一つに定まるなら、xnはその解C1,C2によって、xn=C1fn+C2gnのように、fn,gnの重ね合わせで表せることがわかります。
まとめると、以下のようになります。
任意の自然数k、任意の数の組xk,xk+1に対して、C1,C2に関する連立一次方程式
{C1fk+C2gkC1fk+1+C2gk+1=xk=xk+1
が常にただ一つの解をもつような、式(1)の解fn,gnが見つかれば、その重ね合わせC1fn+C2gnは式(1)のすべての解を表す。
式(1)の2つの解fn,gnを使ってすべての解を表すために課された上記の条件が成り立つとき、fn,gnは互いに線形独立であるといいます。線形独立の定義も書いておきます。
二つの数列fn,gnが線形独立であるとは、
任意の自然数n、任意の数の組xk,xk+1に対して、C1,C2に関する連立一次方程式
{C1fk+C2gkC1fk+1+C2gk+1=xk=xk+1
が常にただ一つの解をもつことである。
この定義、なかなか複雑でとらえどころがないように思えますが、あまり気にしなくてもOKです(おい)。実用上は、「二つの数列が線形独立であるとは、一方の数列が他方の定数倍でかけないこと」と思っていればOKです。
一方の数列が他方の数列の定数倍で書けたとしましょう。つまり、fn=Agnが成り立っていたとしましょう。この時、式(7)は、
{C1Agk+C2gkC1Agk+1+C2gk+1=xk=xk+1
上の式にgk+1を、下の式にgkをかけると、
{C1Agkgk+1+C2gkgk+1C1Agkgk+1+C2gkgk+1=xkgk+1=xk+1gk
となり、xkgk+1=xk+1gkであれば解は無数に存在。それ以外の場合は解は存在しないことになります。いずれにしてもただ一つの解をもつことは無く、fn,gnは線形独立ではありません。一方が他方の定数倍となっている場合、その組は線形独立ではありません。
一方が他方の定数倍でない場合でも、線形独立でない例が存在する可能性は否定できていませんが、本記事ではそのような例は登場しないので、あまり気にする必要はありません(本当に怒られそう)。
本記事では、二つの解が本当に線形独立なのかについてはこれ以上詳しく言及しません(ごめんなさい)。
線形独立という用語を使って、先ほど導いた命題を言い換えておきます。
線形独立な数列の組fn,gnが式(1)の解ならば、その重ね合わせC1fn+C2gnは式(1)のすべての解を表す
ここまでの議論で分かったことをまとめます。
- 式(1)の二つの解fn,gnの重ね合わせによって、解を無数に作れる
- 特に、fn,gnが線形独立のとき、式(1)のすべての解を作ることができる
以上によって、線形独立な二つの解を見つけることさえできれば、式(1)のすべての解を表すことができるということがわかりました。
以下では、式(1)から、何とかして線形独立な二つの解を求められないか、考えていきます。
初期条件
線形独立な二つの解を求める方法を説明する前に、ここで、初期条件が与えられた場合に、解をどのようにして取り出すのかについて言及しておきます。
すべての解を重ね合わせによって表せたとします。
xn=C1fn+C2gn
この式で表されている無数の解のうち、ある初期条件を満たすものを取り出すには、上式のnに1と2を代入した式を立て、その式からC1,C2を決めてやればよいです。
{C1f1+C2g1C1f2+C2g2=x1=x2
この式はC1,C2に関する連立方程式であり、fn,gnが線形独立であることから、これを満たす解はただ一つのみです。これによって、任意定数であるC1,C2の値が決定され、無数の解から初期条件を満たす解が取り出せたというわけです。
それではいよいよ、線形独立な二つの解を求める方法について説明していきます。
線形独立な解を求める
式(1)を再掲します。
xn+2+pxn+1+qxn=0(q=0)(1)
やりたいことは、この式を満たす二つの線形独立な解を見つけることです。
どんな手を使ってもいいので、線形独立な解が二つ見つかれば勝ちです。なぜならその二つを重ね合わせが、式(1)を満たすすべての解を表すからです。
とにかく二つの解を見つければよいわけなので、こんな予想を立ててみます。
式(1)の解には、等比数列が含まれる
この時点では、あくまで予想でしかありません。しかし、もしこの予想が正しければ、2つの解を見つける上で大きな一歩になります。とにかくやってみましょう。
式(1)が公比λの数列xn=λnを解に持つと仮定します。ここで、λ=0の場合はただ0が続いていくだけの数列なので、これは除いておきます。すなわち、λ=0としておきます。これを式(1)に代入してみます。
λn+2+pλn+1+qλn=0
先ほどλ=0という制約を課しておいたので、両辺をλnで割れます。すると、次のようなλに関する2次方程式が出てきます。
λ2+pλ+q=0
この式こそが、いわゆる特性方程式です。特性方程式は、線形独立な二つの解を求める過程で、解を等比数列と仮定したときにあらわれる二次方程式のことであったわけです。
この二次方程式を満たすλに対して、数列xn=λnとすると、この数列は式(1)の解になります。うまい具合に式(1)の解を見つけられそうです。早速この二次方程式を解きましょう。特性方程式の判別式の値によって場合分けします。
特性方程式が二つの異なる実数解をもつ場合
特性方程式が二つの異なる実数解をもつ場合、すなわち、p2−4q>0の場合から考えていきます。特性方程式の二つの解をα,βとおくとfn=αn、gn=βnは、どちらも式(1)の解となっています。さらに、α=βですから、fn,gnは線形独立です。以上より、式(1)のすべての解は、次のように表すことができます。
xn=C1αn+C2βn
特性方程式が二つの異なる複素数解をもつ場合
特性方程式が二つの異なる複素数解をもつ場合、すなわち、p2−4q<0の場合を考えます。二次方程式の二つの複素数解は、互いに共役の関係にあるので、それぞれλ1+iλ2、λ1−iλ2とおけます。当然、fn=(λ1+iλ2)n、g_n = (\lambda_1 - i \lambda_2)^nはそれぞれ式(1)の解です。また、f_n, g_nは線形独立です。先ほどと同様に、このまま、すべての解は
x_n = C_1 (\lambda_1 + i\lambda_2)^n + C_2 (\lambda_1 - i\lambda_2)^n
である、としてもよいですが、もう少し変形してきれいに表すことができます。
\lambda_1 \plusmn i \lambda_2を、極形式で表示します。つまり、動径の大きさrと、偏角\thetaにより、
\lambda_1 \plusmn \lambda_2 = re^{\plusmn i\theta}
と書き換えます。この書き換えにより、
f_n = r^n e^{in\theta}, \quad g_n = r^n e^{-in\theta}
となります。ここで、二つの解の重ね合わせは、また解であることから、次のf'_n, g'_nも解となります。
f'_n = \frac{f_n + g_n}{2} = r^n \frac{e^{in\theta} + e^{-in\theta}}{2} = r^n \cos(n\theta)
g'_n = \frac{f_n - g_n}{2i} = r^n \frac{e^{in\theta} - e^{-in\theta}}{2i} = r^n \sin(n\theta)
相変わらず、f'_n, g'_nは線形独立です。最後に、f'_n, g'_nを重ね合わせて、すべての解を表します。
x_n = r^n \{C_1 \cos(n\theta) + C_2 \sin(n\theta)\}
特性方程式が重解を持つ場合
特性方程式が重解を持つ場合、すなわちp^2 - 4q = 0のときについて考えます。
特性方程式の解は-\frac{p}{2}であり、f_n = (-\frac{p}{2})^nは式(1)の解です。
この場合が厄介です。特性方程式を用いて得られた解が一つのみで、重ね合わせを作るためには、少なくとももう一つ解が(しかも線形独立な解が)必要になるからです。
もう一つの解を求めるために、次のような予想をします(かなり脈絡がないです、ゆるして)。
式(1)がg_n = C_n f_n = C_n (-\frac{p}{2})^nという形の解を持つ
もう一つの解はf_nと似た形をしていて、C_nという何か別の数列をf_nにかけることで作れる、と予想するわけです。
この予想を満たす(g_nがf_nと線形独立になる)C_nが一つでも見つかれば、重ね合わせによりすべての解を表せます。
g_nを式(1)に代入してみます。
C_{n+2} (-\frac{p}{2})^{n+2} + p C_{n+1} (-\frac{p}{2})^{n+1} + q C_n (-\frac{p}{2})^n = 0
重解の条件から、p^2 = 4qであることに注意して、
q C_{n+2}(-\frac{p}{2})^n - 2q C_{n+1} (-\frac{p}{2})^n + q C_n(-\frac{p}{2})^n = 0
p^2 = 4qであるから、q \neq 0より、p \neq 0である。よって、両辺をq, (-\frac{p}{2})^nで割ると、
C_{n+2} - 2C_{n+1} + C_n = 0
この式は、次のように書き換えられます。
C_{n+1} = \frac{C_n + C_{n + 2}}{2} \tag{8}
さて、この式を満たすC_nが、一つでも見つかればOKです。
式(8)は、すべての項C_{n+1}について、その値が、両隣C_n, C_{n+2}の平均(\frac{C_n + C_{n+2}}{2})に等しいことを表すと解釈できます。このような制約を満たすC_nには、例えば
といったものがあります。式(9)を式(8)に代入すると左辺はn+1、右辺は\frac{n + n + 2}{2} = \frac{2(n + 1)}{2} = n + 1となるので、確かに式(9)は式(8)を満たします。
以上より、g_n = n f_n = n (-\frac{p}{2})^nは式(1)の解となります。また、f_n, g_nは線形独立です。これにより、
x_n = C_1 g_n + C_2 f_n = (C_1 n + C_2)(-\frac{p}{2})^n
と、すべての解を表すことができます。
まとめ
ごちゃごちゃしてしまいましたが、最後にまとめます。
本記事で紹介したのは次のような三項間漸化式の解を求める方法です。
x_{n + 2} + p x_{n + 1} + q x_n = 0 \quad (q \neq 0) \tag{1}
この漸化式は解を無数に持ちますが、そのすべての解を、線形独立な二つの解の重ね合わせで表すことができるのでした。
線形独立な二つの解を見つけるために、式(1)が等比数列の形の解x_n = \lambda^n, (\lambda \neq 0)をもつと予想し、式(1)に代入すると特性方程式が得られます。
特性方程式の判別式に応じて場合分けしながら線形独立な二つの解を導出し、重ね合わせます。
最終的な解は、
- 特性方程式が二つの異なる実数解をもつ場合
- 解はx_n = C_1 \alpha^n + C_2 \beta^n
-
\alpha, \betaは特性方程式の解
- 特性方程式が重解を持つ場合
- 解はx_n = (C_1 n + C_2)(-\frac{p}{2})^n
- 特性方程式が二つの異なる複素数解をもつ場合
- 解はx_n = r^n \{C_1 \cos(n\theta) + C_2 \sin(n\theta)\}
-
rは解の動径の大きさ, \thetaは虚部が正の方の解の偏角
となります。
最後に
いかがだったでしょうか。
後半の方は急いで書き上げてしまったこともあり、かなり説明が雑になってしまったように思います。もっとわかりやすく説明できたと思うのに......反省が多いです。精進します。
ちなみに本記事は、こちらのアドベントカレンダーとして作成しました。良ければほかの記事も参照ください。
https://adventar.org/calendars/7912
Discussion