数列と等比級数|関数・指数・対数・総和
このページはプロモーション(広告)を含みます。
関数・指数・対数・総和(中級・読む24分+演習32分)
この授業のゴール
- 等差数列・等比数列の一般項 a_n を書き、第 n 項と n 項までの和を計算できる
- 等比数列の和の公式 S_n=a(1−rⁿ)/(1−r) を、r=1 の例外とあわせて使える
- 無限等比級数が収束する条件(|r|<1)を言い、収束しない例に公式を使わない判断ができる
- 毎期の積立を等比級数で表し、積立の将来価値を計算して検算できる
仕事でどう使うか
「毎月1万円を積み立てると、将来いくらになるか」「毎年3割ずつ小さくなる効果の合計は」といった問いは、数列の和で答えます。
| 路線 | この授業の使いどころ |
|---|---|
| DS(データサイエンティスト) | 累計・移動平均・減衰重み付き平均。売上の累積を式で説明する |
| ML(機械学習エンジニア) | 学習率の減衰の合計、指数移動平均(過去ほど重みが等比で小さくなる)、割引報酬の和(強化学習の割引率 γ) |
| DX(DX推進・AI企画) | 積立・ローン・サブスクの累計コスト、投資回収期間の試算。前提(利率・期間・期首か期末か)を明記 |
| RS(研究者) | 級数の収束の議論、数値計算の誤差の見積もり。収束条件を言えないまま公式を使うと、結論が成り立たなくなる |
試算では、公式の前提(r≠1、|r|<1)が満たされているかを確認する習慣が大切です。
前提
次の知識を使います。
コードは sum と for 文だけです。画面内で動かして確かめます。
身近な状況:毎月1万円を3か月積み立てる
毎月末に1万円(10000円)を積み立て、月利1%(毎月、その時点の残高の1%が増える)とします。3か月分の積立の、3か月末の残高はいくらでしょうか。
| 積立のタイミング | 3か月末までに増える回数 | 3か月末の価値(円) |
|---|---|---|
| 1か月末の積立 | 2回 | $10000\times1.01^2=10201$ |
| 2か月末の積立 | 1回 | $10000\times1.01=10100$ |
| 3か月末の積立 | 0回 | $10000$ |
合計は $10201+10100+10000=30301$ 円です。各項は、前の項の $1/1.01$ 倍になっています。このように、隣り合う項の比が一定に並んだ数の和を、公式で一気に計算できます。
直感的な説明:足して増える数列と、掛けて増える数列
数列とは、番号順に並べた数のことです。第1項 $a_1$、第2項 $a_2$、…。
- 等差数列:隣り合う項の差が一定(公差 $d$)。例:5, 8, 11, 14, …(公差3)。毎月同じ金額を足していく積立に当たる。
- 等比数列:隣り合う項の比が一定(公比 $r$)。例:3, 6, 12, 24, …(公比2)。毎回同じ割合で増減する量に当たる。
和の公式の考え方(直感):等差数列は、前から足した列と後ろから足した列を重ねると、どの組も同じ和になります。等比数列は、和 $S$ に公比 $r$ を掛けて引くと、ほとんどの項が消えます。次の節で式にします。
正確な定義:一般項と和の公式、無限級数の条件
等差数列(初項 $a$、公差 $d$)
$$a_n=a+(n-1)d,\qquad S_n=\sum_{k=1}^{n}a_k=\frac{n(a_1+a_n)}{2}$$
$n$ は項の番号(正の整数)、$a_1$ は初項、$a_n$ は第 $n$ 項です。例:初項5、公差3 なら $a_{10}=5+9\times3=32$、$S_{10}=10\times(5+32)/2=185$。
等比数列(初項 $a$、公比 $r$)
$$a_n=a\,r^{\,n-1},\qquad S_n=a+ar+\cdots+ar^{n-1}$$
導き方:$S_n=a+ar+\cdots+ar^{n-1}$ の両辺に $r$ を掛けると $rS_n=ar+ar^2+\cdots+ar^{n}$。引くと途中の項が消えて $S_n-rS_n=a-ar^n$。よって $r\neq1$ のとき
$$S_n=\frac{a(1-r^n)}{1-r}$$
例外:$r=1$ のときは全項が $a$ なので $S_n=na$(上の式は分母が0で使えません)。
数値代入:初項3、公比2、$n=5$ なら $a_5=3\times2^4=48$、$S_5=3(1-2^5)/(1-2)=3\times31=93$(3+6+12+24+48=93 と一致)。
無限等比級数:項を無限に足した $\sum_{k=1}^{\infty}ar^{k-1}$ は、$|r|<1$(絶対値が1未満)のときだけ収束し、
$$S_\infty=\frac{a}{1-r}$$
です。$|r|\ge1$ では和は有限の値に近づきません($r=1$ では増え続け、$r=-1$ では振動、$|r|>1$ では発散)。
積立の将来価値:期末ごとに $P$ ずつ積み立て、1期あたりの利率 $i$、$n$ 期後の合計は
$$FV=P\left[(1+i)^{n-1}+\cdots+(1+i)+1\right]=P\cdot\frac{(1+i)^n-1}{i}$$
先の例では $P=10000$、$i=0.01$、$n=3$ で $10000\times(1.01^3-1)/0.01=10000\times3.0301=30301$ 円です。
P, i, n = 10000, 0.01, 3
direct = sum(P * (1 + i) ** (n - k) for k in range(1, n + 1)) # 各積立を足す
formula = P * ((1 + i) ** n - 1) / i # 公式
print(round(direct, 2), round(formula, 2))
出力は両方とも30301.0です(浮動小数点の誤差で下の桁が揺れるため round を使います)。
段階付き例題:公式の適用条件を確認しながら解く
例題1:毎年末に50万円ずつ、年利4%で5年間積み立てる。5年末の残高は。
- ステップ1:期末積立、$P=50$(万円)、$i=0.04$、$n=5$。
- ステップ2:$1.04^5=1.2166529$。
- ステップ3:$FV=50\times(1.2166529-1)/0.04=50\times5.416323=270.816$ 万円。
- ステップ4:総払込額は $50\times5=250$ 万円。差の約20.8万円が利息分。
例題2:初項10、公比0.8の無限級数 $10+8+6.4+\cdots$。
- ステップ1:$|r|=0.8<1$ なので収束する。
- ステップ2:$S_\infty=10/(1-0.8)=50$。
- ステップ3:検算。最初の10項の和を計算すると約44.6(50に近づく)。
例題3:初項7、公比1で6項。
- $r=1$ なので公式は使えない。$S_6=6\times7=42$。
a, r = 10, 0.8
s = 0.0
for k in range(1, 11):
s += a * r ** (k - 1)
print("10項までの和", round(s, 3), " 無限和", a / (1 - r))
出力は10項の和が約44.631、無限和が約50.0です。項を増やすほど50に近づきます。
操作して理解する:公比を変えて収束と発散を観察する
公比 r を変えて、部分和(途中までの和)がどう動くか観察します。
for r in [0.5, 0.9, 1.0, 1.1, -1.0]:
s, vals = 0.0, []
for k in range(1, 21):
s += r ** (k - 1)
if k in (5, 10, 20):
vals.append(round(s, 3))
print("r =", r, " 部分和(5,10,20項):", vals)
予想と答え:
- $r=0.5$:2に近づく($1/(1-0.5)=2$)。
- $r=0.9$:10に向かうが、20項でもまだ約8.8。|r| が1に近いほど収束が遅い。
- $r=1.0$:5, 10, 20 と増え続ける。
- $r=1.1$:急激に大きくなる(発散)。
- $r=-1.0$:1, 0, 1, 0 のように行き来する(収束しない)。
公式 $a/(1-r)$ に $r=1.1$ を入れると $1/(-0.1)=-10$ という値が出ますが、実際の和は正で増え続けます。条件を確認せずに公式に代入すると、現実と全く違う値になります。
発展:割引現在価値と、収束の速さ
割引現在価値:毎期末に $P$ を無限に受け取り、1期あたりの割引率が $i$ のとき、現在価値は $\sum_{k=1}^{\infty}P/(1+i)^k$ で、初項 $P/(1+i)$、公比 $1/(1+i)$ の等比級数です。$|1/(1+i)|<1$($i>0$)なので収束し、$P/i$ になります。ただし、現実には無限期間は存在しないので、有限期間で打ち切った値と比べるのが実務の基本です。
強化学習の割引報酬:割引率 $\gamma$($0\le\gamma<1$)で報酬を毎期 $\gamma$ 倍して足すと、毎期の報酬の最大値が $R$ なら総和は $R/(1-\gamma)$ 以下に収まります。$\gamma\ge1$ では収束が保証できません。
収束の速さ:誤差(無限和と $n$ 項までの和の差)は $a\,r^n/(1-r)$ です。$r=0.9$ で誤差を1%以下にするには $n$ をかなり大きく取る必要があります(対数を使って $n$ を逆算できます。対数と桁)。
調和級数 $1+1/2+1/3+\cdots$ のように、項が0に近づいても和は無限大に発散する例があります。「項が小さくなる=和が収束する」とは限りません。
よくある失敗
失敗1:r=1 のとき公式をそのまま使う
a, r, n = 7, 1, 6
try:
print(a * (1 - r ** n) / (1 - r))
except ZeroDivisionError as e:
print("ZeroDivisionError:", e)
print("正しい: n*a =", n * a)
分母 $1-r$ が0になるので計算できません。直し方:公式を使う前に $r\neq1$ を確認する。$r=1$ は全項が同じ値の和 $na$ です。
失敗2:べき乗の指数を n にする(n−1 のずれ)
第 $n$ 項は $a\,r^{n-1}$ です。第1項の指数は0で、$a\,r^0=a$ です。
a, r = 3, 2
print([a * r ** n for n in range(1, 6)]) # 誤り: [6, 12, 24, 48, 96]
print([a * r ** (n - 1) for n in range(1, 6)]) # 正: [3, 6, 12, 24, 48]
初項が6になってしまう誤りです。直し方:$n=1$ のとき初項に一致するか、必ず確認する。
失敗3:発散する級数に無限級数の公式を使う
a, r = 1, 2
print("公式の値:", a / (1 - r))
print("実際の部分和:", sum(a * r ** k for k in range(10)))
公式は−1を返しますが、実際の部分和は1023で、正の方向に増え続けます。公式 $a/(1-r)$ は $|r|<1$ でのみ成立します。直し方:公式の適用条件を書き出し、条件が満たされるかを確認してから代入する。
まとめ
- 等差数列 a_n=a+(n−1)d、S_n=n(a_1+a_n)/2。等比数列 a_n=a·rⁿ⁻¹、S_n=a(1−rⁿ)/(1−r)(r≠1)。
- r=1 のときは S_n=na。公式を使う前に例外条件を確認する。
- 無限等比級数は |r|<1 のときだけ a/(1−r) に収束する。|r|≥1 に公式を使わない。
- 積立の将来価値は等比級数で、P((1+i)ⁿ−1)/i。期首か期末かを必ず確認する。
用語
- 数列(sequence)
番号順に並べた数。第 n 項を a_n と書く。
- 等比級数(geometric series)
等比数列の項を足したもの。
- 公比(common ratio)
等比数列の隣り合う項の比 r。
- 収束・発散(convergence / divergence)
和が一定の値に近づくこと/近づかないこと。
よくある質問
期首積立と期末積立の違いは?
期首なら各積立の増える回数が1回ずつ多くなり、期末積立の結果に $(1+i)$ を掛けた値になります。仕様書に「いつ積み立てるか」を明記しないと、金額が異なります。
$|r|<1$ のとき、なぜ収束するのですか?
項が掛け算のたびに小さくなり、残りの和が無視できるほど小さくなるからです。$r^n\to0$ なので、$S_n=a(1-r^n)/(1-r)$ が $a/(1-r)$ に近づきます。
数列と関数の違いは?
数列は入力が正の整数 $n$(番号)だけの関数です。$a_n=a\,r^{n-1}$ は、$n$ を入れると第 $n$ 項が返る関数と見られます。
公式で計算した値と手計算がずれたら?
小さな $n$(2〜3)で全項を書き出して足し、公式と比べます。多くは指数のずれ($n$ か $n-1$)、期首期末の取り違え、$r=1$ の例外のいずれかです。
無限級数は現実の仕事で使いますか?
割引現在価値や指数移動平均の重みの総和など、有限回で打ち切った値を近似する際に使います。現実は有限なので、打ち切り誤差の大きさを確認します。
強化学習の割引率 γ はなぜ1未満ですか?
報酬の総和を有限にするためです。公比 γ が1未満なら等比級数が収束し、将来の報酬の影響が小さくなる性質も表現できます。
確認問題
問1 初項3、公比2の等比数列の第4項は。
- ① 24
- ② 12
- ③ 16
- ④ 6
解答と解説
正解:①
第 $n$ 項は $a\,r^{n-1}$。$3\times2^3=24$。
問2 等比数列の和 $S_n=a(1-r^n)/(1-r)$ が使えないのは。
- ① $r=-1$
- ② $r=2$
- ③ $r=0.5$
- ④ $r=1$
解答と解説
正解:④
$r=1$ では分母が0になります。この場合は $S_n=na$ です。
問3 無限等比級数 $\sum ar^{k-1}$ が収束する条件は。
- ① $r>0$
- ② $|r|<1$
- ③ $|r|\ge1$
- ④ $a>0$
解答と解説
正解:②
公比の絶対値が1未満のときだけ、和が $a/(1-r)$ に近づきます。
問4 初項1、公比2の無限和を $a/(1-r)$ で計算するとどうなるか。
- ① −1 が出るが、実際の和は発散しており誤り
- ② 無限大になる
- ③ 0になる
- ④ 2
解答と解説
正解:①
$|r|=2\ge1$ なので公式は使えません。形式的に代入すると $1/(1-2)=-1$ になりますが、これは意味を持ちません。
問5 毎年末に10万円を3年積み立て、年利5%の複利のとき、3年末の残高は。
- ① 約33.1万円
- ② 約34.7万円
- ③ 30万円
- ④ 約31.5万円
解答と解説
正解:④
$10\times(1.05^3-1)/0.05=10\times3.1525=31.525$ 万円。最後の積立には利息がつきません。
問6 等差数列と等比数列の違いとして正しいのは。
- ① 等差は比が一定、等比は差が一定
- ② 等差は差が一定、等比は比が一定
- ③ どちらも差が一定
- ④ どちらも比が一定
解答と解説
正解:②
毎回同じ量を足すのが等差、同じ割合を掛けるのが等比です。
次に学ぶこと
次は グラフと定義域の検証 で、ここまでの関数・指数・対数・総和をグラフと定義域の検証にまとめます。複利と対数尤度の小例を計算します。戻るなら 総和と総乗の記号(Σ)、指数と増減率(指数)。
この授業の確認問題だけで習得とはしません。MA01 の総合テストと自力課題で判定します。
キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。
アプリを無料で開く有料版と無料版の違い