Latexの練習と暇つぶしを兼ねて、数列の和について、基本的なことをおさらいしていきたいと思います。
はじめて$\sum$記号に触れた人がみれば少しは参考になるかも。
最近、大中小カッコの順番が高校数学と国際的な表記で異なることを学びました。
今後は国際的な書き方を意識してみたいと思います。
$$\sum_{k=m}^{n}a_{k}=a_{m}+a_{m+1}+a_{m+2}+ \cdots +a_{n-2}+a_{n-1}+a_{n}$$
右辺のような和を省略して書くための記法。
上の例では、添字$k$に$m$から$n$までの整数を順に代入したものを足し合わせている。
$\displaystyle\sum_{k=m}^{n}c =c(n-m+1)$
特に$m=1$のとき
$\displaystyle\sum_{k=1}^{n}c =cn$
第$m$項から第$n$項までの項数を数える。
項番号と自然数を下のように対応づけ、数え終わりを仮に$e$とする。
\begin{array}{ccccccccc}
m & m+1 & m+2 & \cdots & n-2 & n-1 & n & & \\
1 & 2 & 3 & \cdots & e-2 & e-1 & e & &
\end{array}
各々の列において上下の差は常に$m-1$なので
$$n-e = m-1$$
よって
$$e = n-m+1$$
定数$c$を$(n-m+1)$回足し合わせた値は$c(n-m+1)$となる。
$\displaystyle\sum_{k=1}^{n}c \cdot a_k =c\sum_{k=1}^{n}a_k $
$\displaystyle\sum_{k=1}^{n} \left( a_k + b_k \right) =\sum_{k=1}^{n}a_k+\sum_{k=1}^{n}b_k$
$$\sum_{k=m}^{n}a_k=\sum_{k=m}^{n}a_{m+n-k} $$
任意の整数$\delta$に対して以下が成り立つ
$$\sum_{k=m}^{n}a_k=\sum_{k=m+ \delta}^{n+ \delta}a_{k- \delta}$$
$m \leq i \lt n$なる整数$m$、$i$、$n$に対して以下が成り立つ
$\displaystyle\sum_{k=m}^{n}a_k=\sum_{k=m}^{i}a_k+\sum_{k=i+1}^{n}a_{k}$
任意の自然数 $m$、$n$ に対して以下が成り立つ
$\displaystyle\sum_{k=1}^{n}(a_{k+m}-a_k)=\sum_{k=1}^{m}(a_{k+n}-a_k)$
特に、$m=1$のとき
$\displaystyle\sum_{k=1}^{n}(a_{k+1}-a_k)=a_{n+1}-a_1$
ここで$N=n+1$とおくと、$N \geq 2$であり
$a_{N}=a_1+\displaystyle\sum_{k=1}^{N-1}(a_{k+1}-a_k)$
下の式を変形すると等式の左辺および右辺を得る
$$\sum_{k=1}^{m+n}a_k-\sum_{k=1}^{m}a_k-\sum_{k=1}^{n}a_k$$
数列$\{a_n\}$を初項$a$、交差$d$の等差数列とすると、一般項は $a_n=a+(n-1)d$ であり
第$1$項から第$n$項までの和は
$$\sum_{k=1}^{n}a_k=\frac{1}{2}n( a_1+a_n)=\frac{1}{2}n[2a+(n-1)d]$$
特に$a=1$、$d=1$のとき
$$\sum_{k=1}^{n}k=\frac{1}{2}n(n+1)$$
命題3(King Property)より
$$\sum_{k=1}^{n}a_k=\frac{1}{2}\sum_{k=1}^{n} \left( a_k+a_{n+1-k} \right) $$
この式に、$a_k=a+(k-1)d$を代入すると
\begin{align}
\sum_{k=1}^{n}a_k &= \frac{1}{2}\sum_{k=1}^{n} \left\{ [ a+(k-1)d ]+ [ a+(n+1-k-1)d ] \right\} \\
&= \frac{1}{2}\sum_{k=1}^{n} \left\{ a+[a+(n-1)d] \right\} \\
&= \frac{1}{2}\sum_{k=1}^{n} ( a_1+a_n ) \\
&= \frac{1}{2}n( a_1+a_n ) \\
\end{align}
数列$\{a_n\}$を初項$a$、公比$r$の等比数列とすると、一般項は$a_n=ar^{n-1}$であり
$r \neq 1$のとき、第$1$項から第$n$項までの和は
$\displaystyle\sum_{k=1}^{n}a_k=\frac{a(r^n-1)}{r-1}$
定義より等比数列において以下の式が成り立つ
$ra_k=a_{k+1}$
両辺から$a_k$を引くと
$(r-1)a_k=a_{k+1}-a_k$
$k=1,2,3,\dots, n$の範囲で和をとると
$\displaystyle(r-1)\sum_{k=1}^{n}a_k=\sum_{k=1}^{n}(a_{k+1}-a_{k})$
階差の形なので右辺は$a_{n+1}-a_1$であり、
$(r-1) \neq 0$のとき両辺を$(r-1)$で割ると
$\displaystyle\sum_{k=1}^{n}a_k=\frac{a_{n+1}-a_1}{r-1}$
したがって
$\displaystyle\sum_{k=1}^{n}a_k=\frac{a(r^n-1)}{r-1}$
初めて学習したときは等比数列の和の公式を導くアイデアが分かり難かった覚えがあります。
こうしてみると、和を考えるときの常套手段「階差の形をつくる」を普通に実行した感じですね。
実験的に数列の和を表示するPythonプログラム。
calcTermの内容を編集して数列の一般項$a_k$を定義する。
Jupyter Notebook
で動作確認済。
import math
from fractions import Fraction
def calcTerm(k):
#数列の一般項を計算する
term=k**2
return term
def calcSum(n):
#1~nまでの項を合計する
seqSum=0
for i in range(n):
idx=i+1
seqSum=seqSum+calcTerm(idx)
return seqSum
def printSum(n):
#1~nまでの数列の和を表示する
result=''
sp=' '
result=result+'n'+sp+'\t'
result=result+'a_n'+ sp +'\t'
result=result+'S_n'+ sp +'\n'
for i in range(n):
idx=i+1
t=calcTerm(idx)
s=calcSum(idx)
result=result+str(idx)+ sp +'\t'
result=result+str(t)+ sp +'\t'
result=result+str(s)+ sp +'\n'
print(result)
#1~20項目までの情報を表示
printSum(20)