階差数列

ここに数列\((a_n)_{n\in\mathbb{N}}\)があるとします.
\[a_1,~a_2,~a_3,~\cdots,a_n\]\(a_n\)を求めましょう.\(a_n\)を求めるためには,
と考えることで
\[
a_n=a_1+(a_2-a_1)+(a_3-a_2)+(a_4-a_3)+\cdots+(a_n-a_{n-1})
\]とかけることがわかります.ただし,この式は\(n=1\)のときは\(a_0\)が出現してしまい成り立たないので,\(n \geq 2\)のもとで成り立つ式であることに注意します.ここに現れる数列\((a_n-a_{n-1})_{n\in\mathbb{N}}\)を,階差数列と呼びます.この式を\(\sum\)記号を用いて少し変形すると
\begin{align*}
a_n=&a_1+(a_2-a_1)+(a_3-a_2)+(a_4-a_3)+\cdots+(a_n-a_{n-1})\tag{1}\\
=&a_1+\displaystyle \sum_{k=1}^{n-1}(a_{k+1}-a_{k})\tag{2}\\
=&a_1+\displaystyle \sum_{k=2}^{n}(a_k-a_{k-1})\\
=&a_1+\displaystyle \sum_{k=0}^{n-2}(a_{k+2}-a_{k+1})
\end{align*}などと変形できることも分かります.さらに,\((2)\)の\(a_{k+1}-a_{k}\)を\(b_k\)とおいたものが,教科書でもお馴染みの公式\[a_n=a_1+\displaystyle \sum_{k=1}^{n-1}b_k\tag{3}\]ですね.

さて,ここまでで見た式\((1),(2),(3)\)の中で覚えるべき式はどれでしょうか.一般的(教科書的)には,最終的な結果である\((3)\)だけでしょう.これを「公式」として覚えておいて,あとはこれを機械的に使うという人がほとんどかと思います.例えば,こういう問題

次の数列\((a_n)_{n \in \mathbb{N}}\)の一般項を求めよ.\[1,~3,~7,~13,~21,~\cdots\]

「あ,階差数列は\(b_n=2n\)だ!→公式!」と考え\[a_n = \displaystyle 1 + \sum_{k=1}^{n-1}2k \quad (n \geq 2)\]とすることと思います.他にも,

次の条件で表される数列\((a_n)_{n\in \mathbb{N}}\)の一般項を求めよ.\[a_1=1,~a_{n+1}-a_{n}=4^n\]

など.これもやはり「あ,階差数列だ!→公式!」と考え,
\[a_n=1+\displaystyle \sum_{k=1}^{n-1} 4^k \quad (n \geq 2)\]と計算することと思います.では,次はどうでしょう.大学入試問題です.

次の条件で表される数列\((a_n)_{n\in \mathbb{N}}\)の一般項を求めよ.
\[a_1=2,~(n-1)a_n=na_{n-1}+1 \quad (n=2,3,\cdots)\]

まずは両辺を\(n(n-1)\)で割って,
\[\frac{a_n}{n}=\frac{a_{n-1}}{n-1}+\frac{1}{n(n-1)}\]移項して,\(\frac{a_n}{n}=b_n\)とおくことで「階差」タイプに帰着します:
\[b_n-b_{n-1}=\frac{1}{n(n-1)}\]ここで,\((3)\)の結果だけを機械的に覚えていると,「あ,階差数列だ!→公式!」からの
\[b_n=b_1+\displaystyle \sum_{k=1}^{n-1} \frac{1}{k(k-1)} \quad (n \geq 2)\quad \text{※誤答}\]
という式になります.で,あれ?\(k=1\)で分母が\(0\)になるぞ?教科書ではうまくいったはずだが??まあその辺はゴニョゴニョ….

一般に,教科書で扱う例題・練習題のほとんどは親切(?)にも公式を機械的に使いさえすれば正答が得られる問題によって構成されています.でも,入試問題がそんな忖度をしてくれるとは限りません.実戦の場で,恐る恐る怪しい解答を一か八かで作るくらいなら,上で見たように,階差数列の成り立ちに立ち戻って確実な解答を作成しよう,と考えるべきです:

解答

\(n \geq 2\)のとき,\[b_n=b_1+(b_2-b_1)+(b_3-b_2)+(b_4-b_3)+\cdots+(b_n-b_{n-1})\]が成り立つ.この式を\(\sum\)記号を用いて表す.今着目している漸化式が\(b_n-b_{n-1}\)という形であるから,これが利用できるように,\(\sum\)の後ろは\(b_k-b_{k-1}\)という形で表すことにする.これに伴い,始まりの\(k\)は\(2\),終わりの\(k\)は\(n\)であることに注意して
\begin{align*}
b_n&=b_1+\displaystyle \sum_{k=2}^{n}(b_k-b_{k-1})\\
&=b_1+\displaystyle \sum_{k=2}^{n}\frac{1}{k(k-1)}\quad(n \geq 2)
\end{align*}と変形する.(以下略)

解答終

このように,結果である\((3)\)を機械的に使おうとするのではなく,その結果に至るまでの過程を再現しようという姿勢で式を作れば,必然的に正答に辿り着くはずです.というわけで,覚えるなら以下のように覚えるのがおすすめです:

\(n\geq 2\)のとき
\begin{align*}
a_n=&a_1+(a_2-a_1)+(a_3-a_2)+(a_4-a_3)+\cdots+(a_n-a_{n-1})\\
=&a_1+\displaystyle \sum_{k=1}^{n-1}(a_{k+1}-a_{k})\left(=a_1+\displaystyle \sum_{k=2}^{n}(a_k-a_{k-1})=a_1+\displaystyle \sum_{k=0}^{n-2}(a_{k+2}-a_{k+1})\right)\\
=&a_1+\displaystyle \sum_{k=1}^{n-1}b_k
\end{align*}

とくに一行目!二行目は上のように与えられた問題に応じて調整して作る.一番有名な三行目はもはやオマケみたいなもの,というわけです.したがって結果的に,覚えるべきは一行目のみですが,しかしこれは「目的の項\(a_n\)に行きつくまでにはそこまでの差を次々と足し加えればいい」という至極アタリマエな事実に過ぎず,その意味でこれはもはや「覚える」という意識すら必要なくなります.

このように,「結果を覚える」だけでなく,その成り立ちまで含めて理解しておく,つまり単純記憶ではなく理屈によって知識を保持しておくと,余計な記憶をせずに済みますし,なにより自信をもって解答を記述できます.その意味で,天下り的に与えれらた見かけ上の結果だけを貰って満足するのではなく,論理を頼りに根っこの方を追いかけて,そのリクツを知ろうとする姿勢は大事だと思います.「結果を覚えるだけ」の勉強に比べ,一見遠回りですが,そんな姿勢は結果的にはより汎用性のある力に繋がりますから.

数学的帰納法

前回の「任意」について思い出したことをひとつ.

次のような命題の証明について考えてみます.\(p(n)\)は条件,\(n\)を自然数とします.

\[\forall n~p(n) \tag{\(\ast\)}\]

この命題は,
\[\text{どんな\(n\)についても\(p(n)\)が真である}\]
ということですから,
\[p(1),~p(2),~p(3),~p(4),~\cdots~\text{が真である}\]
ことを証明する,ということです.(これが目標).これを証明するには,どうすればよいかを考えます.

まず,\[p(1)\text{が真である}\tag{A}\]ことを示します.続いて,\[p(2),p(3),\cdots \text{が真である}\]ことも同様に示していけばよい・・・と言いたいところですが,当然,無限回の考察は現実的には不可能です。そこで,天下りですが次の命題を考えます.

\[p(n) \Longrightarrow p(n+1)\tag{B}\]

この命題は,
\[\forall n[p(n) \longrightarrow p(n+1)]\]
すなわち,
\[\text{すべての\(n\)について\(p(n) \rightarrow p(n+1)\)が成り立つ}\]
ということですから,\(n=1,2,3,\cdots\)と代入して

\[
\begin{cases}
&\text{\(p(1) \rightarrow p(2)\)が成り立つ}\\
&\text{\(p(2) \rightarrow p(3)\)が成り立つ}\\
&\text{\(p(3) \rightarrow p(4)\)が成り立つ}\\
&\cdots
\end{cases}\tag{B’}
\]

と言い換えられることになります.この命題(B)(すなわち(B’))が証明できたとしましょう.そのとき,どのようなこことがわかるか,ご利益をみてみます.

「\(p(1) \rightarrow p(2)\)が成り立つ」について見てみます.真理値表
\(p(1) \rightarrow p(2)\)が真となる行に着目すると,次の①②③の3通りの状況が考えられます.


しかし,\(p(1)\)が真であることは既に(A)で確認済みなので,\(p(1)\)の列が偽となる②と③の状況は起こり得ず,結局①の状況しかありえません。この①の行を眺めると,\(p(2)\)も真であることが分かります.これで,\(p(1)\)と\(p(2)\)が真であることがわかりました.

同様に考えて,
「\(p(2) \rightarrow p(3)\)が成り立つ」ことから,\(p(3)\)も真となります.
「\(p(3) \rightarrow p(4)\)が成り立つ」ことから,\(p(4)\)も真となります.
「\(p(4) \rightarrow p(5)\)が成り立つ」ことから,\(p(5)\)も真となります.

となり,結局,\[p(1),~p(2),~p(3),~p(4),~\cdots~\text{が真である}\]であること,すなわち冒頭の命題\[\forall n~p(n) \tag{\(\ast\)}\]が証明されました.命題(B)を示すご利益は,ここにあったというわけです.

以上をまとめると,\((\ast)\)を証明するためには,命題(A)かつ(B),すなわち\[p(1) \land (p(n) \Rightarrow p(n+1))\]
を確認すればよい,ということがわかります.すなわち,

数学的帰納法\[p(1) \land \left(p(n) \Rightarrow p(n+1)\right) \Longrightarrow \forall n~p(n)\]

が言えることになります.これを数学的帰納法といいます.

ちなみに教科書では,「任意(\(\forall\))」を含む主張(述語論理)を頑なに扱わないため,この数学的帰納法を扱う際も

数学的帰納法を用いて,次の等式を証明せよ.\[1+2+3+\cdots+n=\frac{1}{2}n(n+1)\]

出典:高等学校 数学Ⅱ 数研出版

 

という,本来あるべき「\(\forall\)」「任意の」「すべての」という記述のない主張になっています.しかし,上で見たように,ここでは「任意の」「すべての」が主張の根幹であって,それを書かなければ何をさせたいのか,何をすべきなのかそのアウトラインが全然見えてこないと思うのです.だから,ここは

数学的帰納法を用いて,任意の自然数\(n\)に対して次の等式が成り立つことを証明せよ.\[1+2+3+\cdots+n=\frac{1}{2}n(n+1)\]

と出題すべきだと僕は思う.これを意図しつつも書いていないということは「空気読めよ」ってことなんでしょうか(これとかもそう…!).でも初めて学ぶ高校生ががそんなことわかりますかね….任意だのなんだの考えずにとりあえず「型」通りにやれってことかな?まあ,たしかにそっちの方が「あたりさわりなく」できるタイプは量産できるかもしれませんが.教科書のこういうところに個人的に?と思ってしまいます.

シグマ計算の工夫

教科書には次の式が公式として載っています.\[\sum^n_{k=1}ar^{n-1}=\frac{a(1-r^n)}{1-r}\]これは「公式」なのだから覚えるべきなのでしょうか?

結論から言えば,これは覚えるべき式ではありません.次のように考えましょう:

\[\sum\text{の後ろが\(r^{n}\)の形をしている}\]
ことからこれは等比数列の和であることが見て取れます.ここが最大のポイント.
等比数列の和の公式を思い出しましょう.等比数列の和の公式で必要な情報は,初項,公比,項数,の3つの情報でした.それらさえ分かればいい.\(\sum^n_{k=1}ar^{n-1}\)から読み取ってみましょう.

初項は?\(ar^{n-1}\)に\(n=1\)を代入すればよいでしょう.\(ar^{1-1}=ar^{0}=a\)です.

公比は?これは式の形からただちに\(r\)と分かります.

項数は?\(\sum^n_{k=1}\),すなわち項は\(1\)から\(n\)までありますから\(n\)個です.

したがって,等比数列の和の公式にこれらを代入し,\[\frac{a(1-r^n)}{1-r}\]が得られます.

練習に次の問題をやってみましょう.

\[(1)~\sum^{10}_{k=6}2\cdot 3^k\hspace{40mm}(2)~\sum^{2n-1}_{k=m}5^{2k-1}\]

\((1)\)

初項は?\(2\cdot 3^k\)に\(k=1\)と代入すればよいでしょう.\(2\cdot 3^1=6\)です.

公比は?式の形から,\(3\)です.

項数は?\(10-6+1=5\)です.

したがって,求める和は\[\frac{6(1-3^5)}{1-3}=\frac{6(3^5-1)}{2}=3^6-3=726\]となります.

\((2)\)

初項は?\(5^{2k-1}\)に\(k=m\)と代入すればよいでしょう.\(5^{2m-1}\)です.

公比は?\(5^{2k-1}=5^{2k}\cdot5^{-1}=\frac{1}{5}25^k\)であることに注意して,\(25\)です.

項数は?\((2n-1)-m+1=2n-m\)です.

したがって,求める和は\[\frac{5^{2m-1}(1-25^{2n-m})}{1-25}=\frac{5^{2m-1}(25^{2n-m}-1)}{24}\]となります.

以上,解答の過程に着目して欲しいのですが「\(\sum ar^{n-1}\)の公式」など必要ありませんし,覚えていても上ような形に添わないため使い物にすらなりません.

一般に,教科書が「公式」だと言っているから必ず覚えてなくてはならない,という訳では決してありません.教科書で「覚えろ」と言わんばかりの記述であっても,それが本当に覚える価値のある式なのか,それとも導出過程さえ押さえればいい式なのか,自分の頭で考え,疑う癖をつけることは数学を学ぶ上では非常に大事です.

シグマ計算の工夫

問題
\(\displaystyle \sum^n_{k=1}(ak+b)\)を計算せよ.ただし\(a,b\)は定数.

これを計算せよと言われたら次のように計算すると思います.
\[
\begin{align*}
\displaystyle \sum^n_{k=1}(ak+b)&=a\sum^n_{k=1}k+\sum^n_{k=1}b&\Sigma\text{の分配法則}\\
&=a\frac{1}{2}n(n+1)+bn&\Sigma\text{の公式}\\
&=\frac{a}{2}n^2+\frac{a}{2}n+bn&\text{計算して}\\
&=\frac{a}{2}n^2+(\frac{a}{2}+b)n&\text{整理}
\end{align*}
\]

しかし,これは次のように計算するのが実戦的です.

\[
\begin{align*}
\displaystyle \sum^n_{k=1}(ak+b)&=\frac{n\left\{(a+b)+(an+b)\right\}}{2}\\
&=\frac{n(an+a+2b)}{2}
\end{align*}
\]

このように一行で済みます.これはどう考えたのかというと・・・

まず,\(\Sigma\)の後ろが\(k\)についての1次式\(ak+b\)であることから,聞かれているものが「等差数列の和」であることが見て取れます(ここを見抜くのがポイント).ですからあとは等差数列の和の公式を使えばいいだけです.等差数列の和の公式で必要な要素は項数,初項,末項でしたが,これらは暗算ですぐに調べられます:

項数は?今,\(\sum^n_{k=1}\),つまり\(1\)番から\(n\)番までの和,ですから項数は\(n\)個です.

初項は?\(ak+b\)の\(k\)に\(k=1\)と代入すればいいでしょう.\(a\cdot 1+b=a+b\).

末項は?\(ak+b\)の\(k\)に\(k=n\)と代入すればいいでしょう.\(a\cdot n+b=an+b\).

このように,項数\(n\),初項\(a+b\),末項\(an+b\)とすぐに分かりますから,あとはこれらを等差数列の和の公式に当てはめ,\[\frac{n\left\{(a+b)+(an+b)\right\}}{2}=\frac{n(an+a+2b)}{2}\]と即答できるわけです.

練習問題
\(\displaystyle \sum^{3n-1}_{k=7}(3k+2)\)を計算せよ.

これも,

\[
\begin{align*}
\displaystyle \sum^{3n-1}_{k=7}(3k+2)=&3\sum^{3n-1}_{k=7}k+\sum^{3n-1}_{k=7}2\\
=&3\left(\sum^{3n-1}_{k=1}k-\sum^{6}_{k=1}k\right)+\left(\sum^{3n-1}_{k=1}2-\sum^{6}_{k=1}2\right)\\
=&\cdots
\end{align*}
\]

として計算するのは悪手です.

上のように,\(\Sigma\)の後ろが\(k\)についての1次式であることから,等差数列の和であることを見抜き,項数,初項,末項を調べます.

項数は?今,\(\sum^{3n-1}_{k=7}\),つまり\(7\)番から\(3n-1\)番までの和,ですから項数は\((3n-1)-7+1=3n-7\)個です(\(+1\)に注意!).

初項は?\(3k+2\)の\(k\)に\(k=7\)と代入すればいいでしょう.\(3\cdot 7+2=23\).

末項は?\(3k+2\)の\(k\)に\(k=3n-1\)と代入すればいいでしょう.\(3\cdot (3n-1)+2=9n-1\).

よって,等差数列の和の公式より,
\[
\begin{align*}
\displaystyle \sum^{3n-1}_{k=7}(3k+2)&=\frac{(3n-7)\left\{23+(9n-1)\right\}}{2}\\
&=\frac{(3n-7)(9n+22)}{2}
\end{align*}
\]

と即答できます.