数列と等比級数|関数・指数・対数・総和

このページはプロモーション(広告)を含みます。

関数・指数・対数・総和(中級・読む24分+演習32分)

この授業のゴール

仕事でどう使うか

「毎月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$、…。

和の公式の考え方(直感):等差数列は、前から足した列と後ろから足した列を重ねると、どの組も同じ和になります。等比数列は、和 $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年末の残高は。

例題2:初項10、公比0.8の無限級数 $10+8+6.4+\cdots$。

例題3:初項7、公比1で6項。

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)

予想と答え:

公式 $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$ でのみ成立します。直し方:公式の適用条件を書き出し、条件が満たされるかを確認してから代入する。

まとめ

用語

数列(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項は。

  1. ① 24
  2. ② 12
  3. ③ 16
  4. ④ 6
解答と解説

正解:①

第 $n$ 項は $a\,r^{n-1}$。$3\times2^3=24$。

問2 等比数列の和 $S_n=a(1-r^n)/(1-r)$ が使えないのは。

  1. ① $r=-1$
  2. ② $r=2$
  3. ③ $r=0.5$
  4. ④ $r=1$
解答と解説

正解:④

$r=1$ では分母が0になります。この場合は $S_n=na$ です。

問3 無限等比級数 $\sum ar^{k-1}$ が収束する条件は。

  1. ① $r>0$
  2. ② $|r|<1$
  3. ③ $|r|\ge1$
  4. ④ $a>0$
解答と解説

正解:②

公比の絶対値が1未満のときだけ、和が $a/(1-r)$ に近づきます。

問4 初項1、公比2の無限和を $a/(1-r)$ で計算するとどうなるか。

  1. ① −1 が出るが、実際の和は発散しており誤り
  2. ② 無限大になる
  3. ③ 0になる
  4. ④ 2
解答と解説

正解:①

$|r|=2\ge1$ なので公式は使えません。形式的に代入すると $1/(1-2)=-1$ になりますが、これは意味を持ちません。

問5 毎年末に10万円を3年積み立て、年利5%の複利のとき、3年末の残高は。

  1. ① 約33.1万円
  2. ② 約34.7万円
  3. ③ 30万円
  4. ④ 約31.5万円
解答と解説

正解:④

$10\times(1.05^3-1)/0.05=10\times3.1525=31.525$ 万円。最後の積立には利息がつきません。

問6 等差数列と等比数列の違いとして正しいのは。

  1. ① 等差は比が一定、等比は差が一定
  2. ② 等差は差が一定、等比は比が一定
  3. ③ どちらも差が一定
  4. ④ どちらも比が一定
解答と解説

正解:②

毎回同じ量を足すのが等差、同じ割合を掛けるのが等比です。

次に学ぶこと

次は グラフと定義域の検証 で、ここまでの関数・指数・対数・総和をグラフと定義域の検証にまとめます。複利と対数尤度の小例を計算します。戻るなら 総和と総乗の記号(Σ)、指数と増減率(指数)。

この授業の確認問題だけで習得とはしません。MA01 の総合テストと自力課題で判定します。

キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。

アプリを無料で開く有料版と無料版の違い