初項 a₁ と、漸化式 a(n+1) = p·a(n) + q の係数 p・定数 q を入力してください。下の数式は入力欄と連動していて、数字の部分を直接書き換えても計算できます。
このページでできること
- 隣接二項間の漸化式 \(a_{n+1} = p a_n + q\)(初項 \(a_1\))の一般項を、特性方程式で等比数列の形に変形する途中式付きでその場で求められます
- 答えは \(\dfrac{381}{64}\) のような約分済みの分数(厳密値)。\(p = 1\)(等差数列型)・\(q = 0\)(等比数列型)の場合分けにも自動で対応します
- 指定した項の番号 \(n\) の値(第 \(n\) 項)と、第1〜10項の数列表・グラフも表示。数列が収束する場合は、近づいていく値(極限値=特性解)もわかります
- 初項・係数には小数・負の数のほか、1/2 のような分数も入力できます
- 計算機には手書きと同じ形の漸化式が表示され、数字の部分を直接書き換えて計算することもできます
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
毎月利息が付き、毎月一定額を返すローンの残高は、まさに「翌月の残高 = (1 + 月利) × 今月の残高 − 毎月の返済額」という隣接二項間の漸化式で動きます。
例えば月利 0.1%・毎月の返済額 3 万円なら、特性解は 3万 ÷ 0.001 = 3,000 万円。これは「利息と返済がちょうど釣り合って残高が動かなくなる借入額」という意味を持ち、残高がこれより少なければ返済のたびに確実に減っていきます(この釣り合いの考え方が、返済計画の基本になっています)。
体内の薬は時間とともに一定の割合で分解・排出されます。仮に「1日で体内に残る割合が 50%、毎日 200mg を服用する」というモデルで考えると、体内の薬の量は \(a_{n+1} = 0.5a_n + 200\) という漸化式になり、特性解 200 ÷ (1 − 0.5) = 400mg に収束します。
「毎日飲み続けても無限にたまるわけではなく、一定の水準に落ち着く」ことがこの式からわかります。実際の薬の設計では、こうした計算を精密にした薬物動態モデルで服用量・間隔が決められています。
「毎月、会員の 90% が継続し、新たに 1,000 人が加入する」サービスの会員数は \(a_{n+1} = 0.9a_n + 1000\) という漸化式で動き、特性解 1000 ÷ (1 − 0.9) = 10,000 人に収束します。
つまり、新規獲得と解約率がこのままなら会員数は約1万人で頭打ちです。「成長の限界がどこに来るか」「解約率を下げると上限がどれだけ伸びるか」を見積もる、事業計画の基本モデルとして使われています(継続率・新規数が一定という仮定のもとでの目安です)。
冷えた部屋を暖房すると、室温は設定温度との差が毎分一定の割合で縮むように変化します。例えば「1分ごとに、室温と設定温度 25℃ との差が 10% 縮む」なら、室温は \(a_{n+1} = 0.9a_n + 2.5\) という漸化式に従い、特性解 2.5 ÷ 0.1 = 25℃、つまり設定温度に収束します。
「最初は勢いよく暖まり、設定温度に近づくほどゆっくりになる」というエアコンの体感そのものが、この漸化式の収束の様子です(物理ではニュートンの冷却法則と呼ばれる関係の、1分きざみ版にあたります)。
「毎月末に残高へ利息が付き、さらに毎月一定額を積み立てる」貯金の残高も、「翌月の残高 = (1 + 月利) × 今月の残高 + 積立額」という同じ形の漸化式です。ただしこちらは掛ける数が 1 より大きいので収束せず、残高は増え続けます(発散する側の例です)。
一般項を求めると「n か月後の残高」が一発で計算でき、これは金融で使われる年金終価の計算式と同じものになります。将来いくらたまるかの見積もりは、この漸化式の一般項で行われています。
式とグラフ
用語・記号の解説
記号
| \(a_n\) | エー・エヌ エヌ番目の項 | 数列の前から \(n\) 番目の項。数列を表す文字には \(a\) がよく使われます(アルファベットの最初の文字であることに由来するといわれます)。右下の小さい添え字 \(n\) が「何番目か」を表します。 |
| \(a_{n+1}\) | エー・エヌプラスイチ | 第 \(n\) 項の1つ後ろ、つまり \(n+1\) 番目の項。漸化式では「今の項 \(a_n\) の次の項」という役割で登場します。 |
| \(a_1\) | エー・イチ | 数列の最初の項(初項)。漸化式は「今の項から次の項を作るルール」なので、出発点である初項が決まらないと数列は決まりません。 |
| \(n\) | エヌ | 項の番号(前から何番目か)。number(数)の頭文字 \(n\) が使われる慣例です。1, 2, 3, … と自然数の値をとります。 |
| \(p\) | ピー | 今の項 \(a_n\) に掛ける定数。等比数列でいう公比にあたる役割で、この値が \(-1\) と \(1\) の間なら数列は特性解に収束します。 |
| \(q\) | キュー | 掛けた後に足す定数。等差数列でいう公差にあたる役割です。\(p\) の次のアルファベットとして \(q\) を使う慣例です。 |
| \(c\) | シー | 特性方程式 \(x = px + q\) の解(特性解)。\(c\) は constant(定数)の頭文字です。「項がこの値になったら次の項も同じ値のまま動かない」という特別な値で、収束する数列の行き先でもあります。 |
| \(\{a_n\}\) | すうれつ エー・エヌ | 項 \(a_n\) を並べた数列全体を表す書き方。波かっこは「\(a_1, a_2, a_3, \dots\) の全体をひとまとめにした」という意味です。 |
| \(p^{n-1}\) | ピーのエヌマイナスイチ乗 | \(p\) を \(n-1\) 回掛け合わせたもの(べき乗)。右上の小さい数(指数)が掛ける回数を表します。初項から第 \(n\) 項までに公比を掛ける回数が \(n-1\) 回なので、一般項にこの形が現れます。 |
| \(\displaystyle\lim_{n\to\infty} a_n\) | リミット・エヌを無限大に近づけたときのエー・エヌ | \(n\) を限りなく大きくしたときに \(a_n\) が近づいていく値(極限値)。\(\lim\) は limit(極限)の頭文字3文字です。この計算機では、数列が収束する場合に極限値を表示します。 |
用語
| 数列 | すうれつ | 数を順番に並べたもの。並んでいる1つ1つの数を項と呼び、\(a_1, a_2, a_3, \dots\) のように番号を付けて表します。高校では数学Bで学びます。 |
| 項 | こう | 数列に並んでいる1つ1つの数。前から \(n\) 番目の項を第 \(n\) 項と呼びます。 |
| 初項 | しょこう | 数列の最初の項 \(a_1\) のこと。漸化式で数列を決めるときの出発点です。 |
| 漸化式 | ぜんかしき | 「今の項から次の項を作るルール」を式で表したもの。例えば \(a_{n+1} = 2a_n + 3\) は「次の項は、今の項を2倍して3を足したもの」というルールです。初項とセットで数列全体が決まります。 |
| 隣接二項間の漸化式 | りんせつにこうかんのぜんかしき | 隣り合う2つの項(\(a_n\) と \(a_{n+1}\))だけで書かれた漸化式。このページで扱う \(a_{n+1} = p a_n + q\) はその代表形です。3つの項 \(a_n,\ a_{n+1},\ a_{n+2}\) が出てくるものは隣接三項間の漸化式と呼び、別の解き方をします。 |
| 一般項 | いっぱんこう | 第 \(n\) 項を \(n\) の式で直接表したもの。例えば \(a_n = 4 \cdot 2^{n-1} - 3\) が求められれば、第100項でも \(n = 100\) を代入するだけで一発で計算できます。 |
| 等差数列 | とうさすうれつ | 隣り合う項の差がいつも同じ数列(毎回同じ数を足して進む数列)。\(5, 8, 11, 14, \dots\) は公差 3 の等差数列です。漸化式では \(p = 1\) の場合にあたります。 |
| 公差 | こうさ | 等差数列で毎回足す一定の数。このページの漸化式では、\(p = 1\) のときの \(q\) が公差の役割をします。 |
| 等比数列 | とうひすうれつ | 隣り合う項の比がいつも同じ数列(毎回同じ数を掛けて進む数列)。\(3, 6, 12, 24, \dots\) は公比 2 の等比数列です。漸化式では \(q = 0\) の場合にあたります。 |
| 公比 | こうひ | 等比数列で毎回掛ける一定の数。このページの漸化式では \(p\) が公比の役割をします。 |
| 特性方程式 | とくせいほうていしき | 漸化式の \(a_{n+1}\) と \(a_n\) を同じ文字 \(x\) に置き換えて作る方程式 \(x = px + q\) のこと。この解(特性解)を使うと、漸化式を等比数列の形に変形できます。 |
| 特性解 | とくせいかい | 特性方程式の解 \(c = \dfrac{q}{1-p}\) のこと。「項がこの値になったら、次の項も同じ値のまま」という数列の動かない点で、収束する場合の行き先(極限値)でもあります。 |
| 不動点 | ふどうてん | ルールを適用しても動かない値のこと。漸化式では特性解 \(c\) がそれにあたり、\(c = pc + q\) が成り立ちます。大学以降の数学では、この見方で漸化式や関数の繰り返しを分析します。 |
| 収束 | しゅうそく | \(n\) を大きくしていくと、項の値がある一定の値に限りなく近づくこと。この漸化式では \(|p| < 1\)(\(p\) が \(-1\) と \(1\) の間)のときに特性解 \(c\) へ収束します。 |
| 極限値 | きょくげんち | 収束する数列が近づいていく値。\(\displaystyle\lim_{n\to\infty} a_n\) と書きます。高校では数学IIIで本格的に学びますが、「どんどん近づく行き先」というイメージで十分です。 |
| 発散 | はっさん | 収束しないこと。項の値が限りなく大きくなる(または小さくなる)場合や、2つの値を行ったり来たりして1つの値に落ち着かない場合を指します。この漸化式では \(|p| > 1\) だと、特性解ちょうどから始まらない限り発散します。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 数列とは何か(高校 数学B) |
|
| 等差数列・等比数列(高校 数学B) |
|
| 一次方程式と移項(中学1〜2年) |
|
| 累乗・指数(中学1年〜高校 数学I) |
|
| 分数の計算(小学5年〜中学1年) |
|
Excelで計算する方法
| 初項 a1 | 1 |
| 係数 p | 2 |
| 定数 q | 3 |
| 求める項の番号 n | 10 |
| 特性解 c = q/(1−p) | =B3/(1-B2) |
| 初項と特性解の差 a1−c | =B1-B5 |
| 第n項 (a1−c)×p^(n−1)+c | =B6*B2^(B4-1)+B5 |
| 係数 p | 2 |
| 定数 q | 3 |
| 第1項 a1 | 1 |
| 第2項 | =B1*B3+B2 |
| 第3項 | =B1*B4+B2 |
| 第4項 | =B1*B5+B2 |
| 第5項 | =B1*B6+B2 |
| 第6項 | =B1*B7+B2 |
| 第7項 | =B1*B8+B2 |
| 第8項 | =B1*B9+B2 |
| 第9項 | =B1*B10+B2 |
| 第10項 | =B1*B11+B2 |
| 初項 a1 | 5 |
| 公差 q | 3 |
| 求める項の番号 n | 4 |
| 第n項 a1+(n−1)q | =B1+(B3-1)*B2 |
| 初項 a1 | 3 |
| 公比 p | 2 |
| 求める項の番号 n | 4 |
| 第n項 a1×p^(n−1) | =B1*B2^(B3-1) |
1つ目の表は初項 1、漸化式 a(n+1) = 2a(n) + 3 の第10項を一般項で求める例で、特性解 c は −3、答えは 2045 になります。この表の式は p = 1 のときだけは使えません(1−p が 0 になり、0 で割ることになるため)。そのときは3つ目の表を使ってください。
2つ目の表は同じ数列を漸化式のとおり1歩ずつ計算する表で、第10項が1つ目の表と同じ 2045 になることが確かめられます。
3つ目の表は等差数列型(初項 5・公差 3 の第4項 = 14)、4つ目の表は等比数列型(初項 3・公比 2 の第4項 = 24)の例です。
Googleスプレッドシートで計算する方法
| 初項 a1 | 1 |
| 係数 p | 2 |
| 定数 q | 3 |
| 求める項の番号 n | 10 |
| 特性解 c = q/(1−p) | =B3/(1-B2) |
| 初項と特性解の差 a1−c | =B1-B5 |
| 第n項 (a1−c)×p^(n−1)+c | =B6*B2^(B4-1)+B5 |
| 係数 p | 2 |
| 定数 q | 3 |
| 第1項 a1 | 1 |
| 第2項 | =B1*B3+B2 |
| 第3項 | =B1*B4+B2 |
| 第4項 | =B1*B5+B2 |
| 第5項 | =B1*B6+B2 |
| 第6項 | =B1*B7+B2 |
| 第7項 | =B1*B8+B2 |
| 第8項 | =B1*B9+B2 |
| 第9項 | =B1*B10+B2 |
| 第10項 | =B1*B11+B2 |
| 初項 a1 | 5 |
| 公差 q | 3 |
| 求める項の番号 n | 4 |
| 第n項 a1+(n−1)q | =B1+(B3-1)*B2 |
| 初項 a1 | 3 |
| 公比 p | 2 |
| 求める項の番号 n | 4 |
| 第n項 a1×p^(n−1) | =B1*B2^(B3-1) |
Pythonで計算する方法
from fractions import Fraction
first_term = Fraction(1) # 初項 a1(Fraction(1, 2) のように分数も書ける)
coefficient = Fraction(2) # 係数 p(a_n に掛ける数)
constant = Fraction(3) # 定数 q(足す数)
term_number = 10 # 値を求める項の番号 n
# 第1〜10項を漸化式のとおり順番に計算する
terms = [first_term]
for _ in range(9):
terms.append(coefficient * terms[-1] + constant)
print("第1〜10項:", ", ".join(str(t) for t in terms))
# 第n項(漸化式を n-1 回適用する)
nth_term = first_term
for _ in range(term_number - 1):
nth_term = coefficient * nth_term + constant
print(f"第{term_number}項: {nth_term}(小数では {float(nth_term)})")
# p が 1 でなければ、特性解 c = q/(1-p) から一般項も求められる
if coefficient != 1:
fixed_point = constant / (1 - coefficient)
start_diff = first_term - fixed_point
print(f"特性解 c: {fixed_point}")
print(f"一般項: a_n = ({start_diff})×({coefficient})^(n-1) + ({fixed_point})")
数式記述言語(LaTeX等)での書き方(コピペ可)
aₙ₊₁ = p·aₙ + q
a_{n+1} = p a_n + q
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>a</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub>
<mo>=</mo>
<mi>p</mi>
<msub><mi>a</mi><mi>n</mi></msub>
<mo>+</mo>
<mi>q</mi>
</mrow>
</math>
a_(n+1) = p a_n + q
RSolve[{a[n + 1] == p a[n] + q, a[1] == a1}, a[n], n]
rsolve({a(n+1) = p*a(n) + q, a(1) = a1}, a(n));
a(n+1) = p*a(n) + q
a_(n+1) = p a_n + q
c = q/(1 − p)
c = \dfrac{q}{1-p}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>c</mi>
<mo>=</mo>
<mfrac>
<mi>q</mi>
<mrow><mn>1</mn><mo>−</mo><mi>p</mi></mrow>
</mfrac>
</mrow>
</math>
c = q/(1-p)
c = q/(1 - p)
c := q/(1 - p);
c = q/(1 - p);
c = q/(1 − p)
aₙ₊₁ − c = p(aₙ − c)
a_{n+1} - c = p(a_n - c)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>a</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub>
<mo>−</mo><mi>c</mi>
<mo>=</mo>
<mi>p</mi>
<mo>(</mo>
<msub><mi>a</mi><mi>n</mi></msub>
<mo>−</mo><mi>c</mi>
<mo>)</mo>
</mrow>
</math>
a_(n+1) - c = p(a_n - c)
a[n + 1] - c == p (a[n] - c)
a(n+1) - c = p*(a(n) - c);
a(n+1) - c = p*(a(n) - c)
a_(n+1) − c = p(a_n − c)
aₙ = (a₁ − c)·pⁿ⁻¹ + c
a_n = (a_1 - c)p^{n-1} + c
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>a</mi><mi>n</mi></msub>
<mo>=</mo>
<mo>(</mo>
<msub><mi>a</mi><mn>1</mn></msub>
<mo>−</mo><mi>c</mi>
<mo>)</mo>
<msup><mi>p</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup>
<mo>+</mo>
<mi>c</mi>
</mrow>
</math>
a_n = (a_1 - c)p^(n-1) + c
a[n_] := (a1 - c) p^(n - 1) + c
a := n -> (a1 - c)*p^(n-1) + c;
a_n = (a1 - c)*p^(n-1) + c;
a_n = (a_1 − c)p^(n−1) + c
aₙ = a₁ + (n − 1)q
a_n = a_1 + (n-1)q
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>a</mi><mi>n</mi></msub>
<mo>=</mo>
<msub><mi>a</mi><mn>1</mn></msub>
<mo>+</mo>
<mo>(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo>)</mo>
<mi>q</mi>
</mrow>
</math>
a_n = a_1 + (n-1)q
a[n_] := a1 + (n - 1) q
a := n -> a1 + (n-1)*q;
a_n = a1 + (n-1)*q;
a_n = a_1 + (n − 1)q
aₙ = a₁·pⁿ⁻¹
a_n = a_1 p^{n-1}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>a</mi><mi>n</mi></msub>
<mo>=</mo>
<msub><mi>a</mi><mn>1</mn></msub>
<msup><mi>p</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup>
</mrow>
</math>
a_n = a_1 p^(n-1)
a[n_] := a1 p^(n - 1)
a := n -> a1*p^(n-1);
a_n = a1*p^(n-1);
a_n = a_1 p^(n−1)
ChatGPT に聞いて計算してもらう方法
あなたは数学(数列・漸化式)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 初項 a_1 = 1、漸化式 a_(n+1) = 2·a_n + 3 で決まる数列について、次の内容をそれぞれ示してください。 1. 特性方程式 x = 2x + 3 の解(特性解 c) 2. 一般項 a_n(c を使って等比数列に変形する途中式も) 3. 第1〜10項の値と、第10項の値 4. この数列は収束しますか(収束するなら極限値も) Pythonでは標準ライブラリの fractions モジュールを使って厳密に計算し、計算に使った式と実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
