- 目次
- 理解
- 事例
- コード
- まとめ
【理解】等差数列の数学的解説
等差数列の定義・一般項について
$a_{n+2}-a_{n+1} = a_{n+1}-a_n$
$a_{n+1}= a_n + d$
定義・漸化式(等差数列)
数列 $\{ a_n \}_{n\in \mathbb{N}}$ が $$\displaystyle a_{n+2} - a_{n+1}=a_{n+1} - a_n$$ を満たすとき, 等差数列という.
この一定の差を $d \neq 0$ と置くと, 任意の自然数 $n$ について $$\displaystyle a_{n+1} - a_n = d$$ と表せる. 定数 $d$ を公差という.
例えば,
$1$, $4$, $7$, $10$, $13$, $16$, $19$, $22$, $\cdots$
は等差数列です。
等差中項の性質
$2b=a+c$ $\Leftrightarrow$ $a, b, c$ が等差数列
$a=a_n$, $b=a_{n+1}$, $c=a_{n+2}$ とする。
等差数列の定義である
$a_{n+2}-a_{n+1} = a_{n+1}-a_n$
は, $c-b=b-a$ であり, この式は
$2b=a+c$
と同値である。
$a_n = a + (n-1)d$
※漸化式(定義)による一般項の導出
各段階の漸化式を使う
$$\begin{array}{rrrrrc}
&a_n & - & a_{n-1} & = & d\\
&a_{n-1} & - & a_{n-2} & = & d \\
& &\vdots & & & \vdots \\
&a_3 & - & a_2 & = & d \\
+\large{)}&a_2& - & a_1 & = & d \\ \hline
& a_n & - & a_1 & = & (n-1)d
\end{array}$$
$a_n = a + (n-1)d$
※植木算による一般項の導出
植木算の考え方を使う.
$a_n$ は,初項 $a_1$ に 公差を $(n-1)$ 回加えれば良いので, $$a_n = a_1 +(n-1)d$$ になります。
等差数列の和について
等差数列の和の公式
$\displaystyle S=\frac{1}{2}(a_1 + a_n)$
等差数列を初項から最後の項まで足した和を $S$ とします。
$$\begin{array}{rrrcccccc}
& S & = & a_1 &+& a_2 &+ \cdots +& a_{n-1} &+& a_n \\
+\large{)} & S & = & a_n &+& a_{n-1} &+ \cdots +& a_2 &+& a_1 \\
\hline
& 2S & = & a_1 + a_n & + & a_1 + a_n & + & \cdots & + & a_1 + a_n
\end{array}$$
この筆算の結果を集計すると,和の公式を得ます。
$\displaystyle S=\frac{1}{2}(2a_1+(n-1)d)$
等差数列の一般項が
$a_n = a_1 + (n-1)d$
であるとき, 等差数列の和の公式
$\displaystyle S=\frac{1}{2}(a_1 + a_n)$
に代入すると,
$\displaystyle S=\frac{1}{2}(2a_1+(n-1)d)$
が得られる。
等差数列の和の最大・最小条件
$a_n \cdot a_{n+1} \leqq 0$ (正負の変わり目)のとき $S_n$ は最大もしくは最小
等差数列の和の最大最小条件
等差数列 $\{a_n\}_n$ の正負が変わるとき, すなわち, $a_n \cdot a_{n+1} \leqq 0$ を満たす $n$ のときに和 $S_n$ は最大もしくは最小をとる.
初項 $a_1 \neq 0$, 公差 $d \neq 0$ である等差数列 $a_n = a_1 + (n-1)d$ について, 和 $S_n$ の最大と最小条件は次のとおりである.
初項 | 公差 | 最大 | 最小 |
---|---|---|---|
正 | 負 | $a_n$ が正, $a_{n+1}$ が負, を満たす $n$ | 存在しない |
$a_n$ が正, $a_{n+1}=0$, $a_{n+2}$ が負, を満たす $n$ と $n+1$ | 存在しない | ||
負 | 正 | 存在しない | $a_n$ が負, $a_{n+1}$ が正, を満たす $n$ |
存在しない | $a_n$ が負, $a_{n+1}=0$, $a_{n+2}$ が正, を満たす $n$ と $n+1$ | ||
正 | 正 | 存在しない | $n=1$ のとき |
負 | 負 | $n=1$ のとき | 存在しない |
等差数列の和 $S_n$ が最大・最小を取るときの $n$ の値を求める方法を理解してみよう。
例えば, $a_n = 20 - 4(n-1)$ は, $n=1, \cdots ,5$ において $a_n>0$ で, $a_6=0$ で, $n \geqq 7$ では $a_n <0$ です。$S_5 = S_6$ が最大値です!
例題. $a_n = 20 - 4(n-1)$ の和 $S_n$ の最大値を求めよ.
$a_n = 20 - 4(n-1)$ について, $a_n >0$ を解くと, $n < 6$ となる. また, $n=6$ のとき $a_6=0$ である. 以上より, $n=5, \ 6$ のとき, 和は最大となる. 等差数列の和の公式を利用すると
$$S_5 = S_6 = \frac{6}{2} (20 + 0)=60$$
となる. ゆえに, 等差数列 $\{a_n\}_n$ の和 $S_n$ の最大値は $n=5, \ 6$ であるときの $60$ である.
【事例】等差数列の具体例
整数に関する等差数列について
自然数の列
$\displaystyle 1, \ 2, \ 3, \ 4, \ 5, \cdots$
自然数列は $\{n\}_n$ と表すことができる。
$\displaystyle 1 + 2 +3 + \cdots + n = \frac{1}{2}n(n+1)$
$1$ 番目の $a_1=1$ から $n$ 番目の $a_n=n$ までの和を求めるには等差数列の和の公式
$\displaystyle S=\frac{1}{2}(a_1 + a_n)$
を利用する。
俵杉算
俵杉山
米俵が何段かに積み上げられている。ある段の米俵の数はすぐ下の段の米俵の数よりも1つだけ少ないように積まれている。
奇数段に積み重ねられている場合, 真ん中の段に積まれている米俵の数は(すべての米俵の数)÷(段数)で求まる。
俵杉算の計算方法を使って, 米俵の個数を数えてみよう。
$20$ 俵が $2$, $3$, $4$, $5$, $6$ 俵ずつ $5$ 段に積まれているとき, $20 \div 5 = 4$ が真ん中の段の米俵の数になっている。
理屈.
真ん中の段より下の段ではみ出た分を、真ん中より上の段の空いている部分に移します。

すると、真ん中の段の俵の個数が横の長さの長方形ができます。
ゆえに、米俵の個数を段数で割ると、真ん中の段の米俵の個数が分かります。
奇数列
$\displaystyle 1, \ 3, \ 5, \ 7, \ 9, \cdots$
奇数列は $\{2n-1\}_n$ と表わすことができる。
$1 + 3 + 5+ \cdots +(2n-1)=n^2$
奇数の和が足し合わせた個数の平方で表せることを確かめてみよう。
奇数の和
$1$ から $n$ 番目の奇数 $2n-1$ までの和は $n^2$ である.
$1 + 3 + 5+ \cdots + (2n-1) = n^2$
理屈.
奇数を次の図のように並べることで, $n$ 個の奇数の和は辺の長さが $n$ の正方形と見なせる。

したがって, 数の和は $n^2$ となります。
$1$, $3$, $5$, $7$, $9$ の$5$ 個の数の和は, $25$ です。
$5^2$ にもなっている。
偶数列
$\displaystyle 2, \ 4, \ 6, \ 8, \ 10, \cdots $
偶数列は $\{2n\}_n$ と表わすことができる。
$\displaystyle 2 + 4 +6 + \cdots + 2n = n(n+1)$
偶数の和が足し合わせた個数とその数プラス1の積で表せることを確かめてみよう。
偶数の和
$1$ から $n$ 番目の偶数 $2n$ までの和は $n(n+1)$ である.
$2 + 4 + 6+ \cdots + 2n$ $= n(n+1)$
理屈.
偶数を次の図のように並べることで, $n$ 個の偶数の和は縦の長さが $n$, 横の長さが $n+1$ の長方形と見なせる。

したがって, 数の和は $n(n+1)$ となります。
$2$, $4$, $6$, $8$, $10$ の $5$ 個の数の和は, $30$ です。
$5 \times 6$ にもなっている。
有理数に関する等差数列について
$\displaystyle \frac{1}{m}, \ \frac{2}{m}, \ \frac{3}{m}, \ \frac{4}{m}, \cdots , \ \frac{m-1}{m}, \ 1, \ \cdots$
分母に $m \in \mathbb{Z}$ をもつ有理数列は $\displaystyle \left\{ \frac{n}{m} \right\}_n$ と表わすことができる。
【コード】Pythonで等差数列を出力
等差数列の出力 (seq
を作成)
等差数列をPythonで計算してみよう。
等差数列の作成
初項a
, 公差d
, 項数n
を指定する。
i
を $1$ から $n$ の範囲の変数として等差数列の式 $a + (i-1)d$ に繰り返し代入していくことで, リスト[]
に等差数列の初項から第 $n$ 項までを格納する。
Pythonコード入力例. 初項 $1$, 公差 $2$ の等差数列を初項から第 $10$ 項まで出力する。
a = 1
d = 2
n = 10
seq = [a + d * (i - 1) for i in range(1, n + 1)]
print("等差数列:", seq)

数列の折れ線グラフの作成matplotlib.pyplot(seq)
Pythonのリストから折れ線グラフを作成する方法を習得しよう。
説明
グラフを描写するためにmatplotlib
モジュールを利用する。
matplotlib.pyplot
のplot()
関数は, 引数にリストを入れることで折れ線グラフを作成する。
Pythonコード. リスト[2, 5, 3, 4, 6, 9]
の折れ線グラフを作成する。
import matplotlib.pyplot as plt
lst = [2, 5, 3, 4, 6, 9]
# 折れ線グラフを描く
plt.plot(lst)
# グラフのタイトル・ラベル
plt.title("Line Graph")
plt.xlabel("Index")
plt.ylabel("Value")
# グラフの表示
plt.show()

等差数列の和の出力sum(seq)
Pythonのリストの合計を出力するsum()
関数の使い方を習得しよう。
説明
sum()
関数は、引数にリストを入れることで、リストの要素の合計値を出力する。
Pythonコード. [5, 7, 3, 4, 8]
の要素の合計値を計算して出力する。
lst = [5, 7, 3, 4, 8]
sum(lst)

等差数列の和の出力(公式の利用)
等差数列の和をPythonで計算してみよう。
等差数列の和の計算
初項a
, 公差d
, 項数n
を指定する。
等差数列の和の公式 $(2a + (n-1)d)/2$ を計算することで合計total
を求める。
Pythonコード入力例. 初項 $1$, 公差 $2$ の等差数列の初項から第 $10$ 項までの和を出力する。
a = 1
d = 2
n = 10
total = n * (2 * a + (n - 1) * d) // 2
print("等差数列の和:", total)

等差数列の和の数列の出力total=list(accumulate(seq))
Pythonのリストの初めからi
番目までの和を並べて新しいリストを作るitertools.accumulate()
関数の使い方を習得しよう。
説明
itertools
モジュールを利用する。
accumulate()
関数は, 引数にリストを入れることで, そのリストの0
番目からi
番目までの要素の合計値をi
番目とするリストを作成する。
ただし, list()
関数を適用しなければ, 実際のリストとして出力されない。
Pythonコード. [2, 7, 5, 3]
のリストにaccumulate()
関数を適用し新しいリストを作る。
from itertools import accumulate
lst = [2, 7, 5, 3]
result = list(accumulate(lst))
print(result)

等差数列の和の最大値と最小値の出力max(total)
min(total)
Pythonのリストの要素の最大値と最小値を出力するmax()
関数とmin()
関数の使い方を習得しよう。
説明
max()
関数とmin()
関数は、引数にリストを入れることで、リストの要素の最大値、最小値を出力する。
Pythonコード. [2, 7, 5, 3]
の要素の最大値と最小値を出力する。
lst = [2, 7, 5, 3]
max_value = max(lst)
min_value = min(lst)
print("最大値:", max_value)
print("最小値:", min_value)

数列の特定の値のindexの取得seq.index()
total.index()
Pythonのリストの特定の要素が何番目からあるかを出力するindex()
関数の使い方を習得しよう。
説明
index()
関数は, リスト名.index()
として引数に何番目かを検索する要素を入力することで, その要素が何番目にあるかを出力する。
※注1: 検索する要素が複数ある場合, はじめにあるものの番号が出力される。
※注2: リストは $0$ 番目からカウントするため注意する。
Pythonコード. リスト[2, 7, 5, 3]
で5が何番目にあるかを出力する。
lst = [2, 7, 5, 3]
index_5 = lst.index(5)
index_5_1 = lst.index(5)+1
print("5が何番目か(0からカウント):", index_5)
print("5が何番目か(1からカウント):", index_5_1)

等差数列の和の最大・最小の観察

等差数列の和が最大や最小になるときの $n$ をPythonで観察してみよう。
等差数列の和と最大/最小の出力
等差数列を定義する。例えばseq
とする。
等差数列の和の数列のリストはlist(accumulate(seq))
で出力できる。例えばtotal
とする。
matplotlib.pyplot
のplot(total)
で等差数列の和の折れ線グラフを作成する。
max(total)
で等差数列の和の最大値を出力する。例えばmax_value
とする。
total.index(max_value)+1
で等差数列の和が最大を取る番号を出力する。
Pythonコード入力例. 初項 $221$, 公差 $-6$ の等差数列の和のグラフを作成し, 最大値と何項目であるかを出力する。
from itertools import accumulate
import matplotlib.pyplot as plt
a = 221
d = -6
n = 50 #何項目までのグラフを作成するか(調整する)
seq = [a + d * (i - 1) for i in range(1, n + 1)]
total = list(accumulate(seq))
plt.plot(total)
max_value = max(total)
index_max = total.index(max_value)+1
plt.show()
print(f"数列の和の最大値は n={index_max} のときの {max_value}")

まとめノート
「等差数列」とは
隣り合う数の差がいつも等しい数列のこと。
定義
任意の $n$ について,
$a_{n+2} - a_{n+1} =a_{n+1} - a_n$
が成り立つ.
漸化式
公差を $d$ とおくと, $a_{n+1} - a_n = d$ が得られる.
A. 等差数列の一般項
$a_n = a_1 +(n-1)d$
B. 等差数列の和の公式
$\displaystyle S_n = \frac{1}{2}n (a_1 + a_n)$ $\displaystyle =\frac{1}{2}n \{ 2a_1+(n-1)d\}$
C. 等差中項の関係
実数 $a$, $b$, $c$ について, この順で等差数列である $\Leftrightarrow$ $2b = a+c$.
調和数列
逆数の数列 $\{1/b_n\}$ が等差数列である数列 $\{b_n\}$ のこと.
D. 調和数列の一般項
等差数列 $\{a_n\}$ を用いると, $\displaystyle b_n = \frac{1}{a_n} = \frac{1}{a_1 + (n-1)d}$ とできる.
ポイント解説
例
$1$, $3$, $5$, $7$, $9$, $\cdots$(奇数)
・漸化式:$a_{n+1} - a_n = 2$
・一般項:$a_n = 2n-1$
・和の式:$S_n = n^2$
A
植木算の考え方に対応する。
B
初項と末項の和 $a_1+a_n$ を $n$ 個分足すと $2S_n$ に対応する。

末項の $a_n$ に $a_1 +(n-1)d$ を代入することで, 最後の式が得られる。
C
等差数列の定義式 $c-b=b-a$ を変形した式である。