最終更新日:2026年8月12日
fe technology algorithm numerical-analysis
まず結論
反復処理で、同じ計算を繰り返した結果、値が変わらなくなった ときは、
次に計算しても同じ値になる
と考えます。
たとえば、
y ← f(x)
x ← y
を繰り返して y が一定になったなら、次の計算でも同じ y が得られるので、
f(y) = y
が成り立ちます。
FE試験では、
「繰り返して値が変わらなくなった」→ 入力と出力が同じになる条件を探す
と考えるのがポイントです。
直感的な説明
反復処理は、ある計算結果を次の計算の入力として、同じ処理を何度も繰り返す方法です。
たとえば、
x = a
↓
y = f(x)
↓
x = y
↓
y = f(x)
↓
...
と進む処理を考えます。
最初の1回だけを見ると、
y = f(a)
です。
しかし、次の周回では x ← y によって、前回の y が新しい x になります。
そのため、2回目以降は、
次の y = f(今の y)
という形で値が更新されます。
ここで y が変わらなくなったなら、
次の y = 今の y
です。
したがって、
f(y) = y
と判断できます。
定義・仕組み
反復処理は2〜3回だけ展開してみる
FE試験の擬似コードや手順問題では、処理を頭の中だけで追うと混乱しやすくなります。
そこで、まず2〜3回だけ具体的に書き出します。
初期値を x0 = a とすると、
x0 = a
y1 = f(x0) = f(a)
x1 = y1
y2 = f(x1) = f(y1)
x2 = y2
y3 = f(x2) = f(y2)
となります。
このように展開すると、
前回の出力が、次回の入力になる
という構造が見えます。
値が変わらなくなるとは?
十分に反復して、ある値 p から変化しなくなったとします。
すると、次の計算でも同じ p が得られます。
p = f(p)
このように、関数に入力しても同じ値が返ってくる値を 不動点(fixed point) といいます。
FE試験では「不動点」という用語そのものよりも、
値が変わらなくなった
という文章から、f(p)=p を導けることが重要です。
初期値と収束した値は別物
反復処理では、最初に与えた値を 初期値 といいます。
しかし、反復後に得られる値が、初期値と同じになるとは限りません。
たとえば、初期値が a でも、
a → f(a) → f(f(a)) → ... → p
と別の値 p に近づくことがあります。
そのため、
f(p) = a
ではなく、値が変わらなくなった条件としては、
f(p) = p
を考えます。
収束するとは限らない
反復処理を行えば、必ず一定値になるわけではありません。
関数や初期値によっては、
- ある値に近づく
- 値が行き来する
- 値が大きくなり続ける
といったことがあります。
したがって、
反復すれば必ず一定値になる
と決めつけないようにします。
今回の判断軸は、問題文に「十分に繰り返した後、値が変化しなくなった」と書かれている場合に使います。
どんな場面で使う?
擬似コードや手続の追跡問題
変数への代入を繰り返す問題では、式だけを見て答えを決めるのではなく、処理を数回展開します。
特に、
x ← y
y ← f(x)
のように、前回の計算結果を次回に使う問題では有効です。
数値計算の反復法
方程式の解や近似値を求める計算では、反復によって値を更新する方法があります。
たとえば ニュートン法 も、計算した近似値を次の計算に使う反復法の一つです。
ただし、ニュートン法では f(x)=0 の解を探すのに対し、不動点の問題では、
f(x) = x
となる値を考えます。
この2つを混同しないようにします。
よくある誤解・混同
❌ 最初の式だけを見て f(a)=y と判断する
最初の1回では、たしかに y=f(a) です。
しかし、問題が聞いているのが「十分に反復した後」の状態なら、初回の関係だけでは判断できません。
反復後の入力は、初期値 a ではなく、前回の y です。
❌ 値が一定なら f(y)=0
値が変わらなくなったことと、0になったことは別です。
f(y)=0 は、関数の零点を表します。
一方、反復して同じ値が返る条件は、
f(y) = y
です。
❌ 収束した値は初期値に戻る
初期値は、あくまで計算を始めるための値です。
収束した値が初期値と同じとは限りません。
「初期値」と「反復後の一定値」を分けて考えます。
❌ 反復処理は必ず収束する
関数によっては収束しません。
FE試験では、問題文に
値が変化しなくなった
と条件が与えられているときに、その状態から関係式を考えます。
確認問題(FE試験対策)
実数を引数とし、実数を返す関数 g(x) がある。次の処理を十分に繰り返した結果、表示される z の値が一定になった。このとき成立する関係として最も適切なものはどれか。
x ← b
繰り返し
z ← g(x)
x ← z
z を表示する
- ア.
g(b)=z - イ.
g(z)=0 - ウ.
g(z)=b - エ.
g(z)=z
▶ クリックして答えと解説を見る(ここを開く)
正解:エ
十分に繰り返して z が変わらなくなったなら、前回の z が次回の x に代入されます。
したがって次回の計算は、
z ← g(z)
となります。
それでも z が同じ値なら、
g(z) = z
が成立します。
👉 判断ポイント
反復して値が変わらない → 次の入力と出力が同じ → g(z)=z と考えます。
まとめ(試験直前用)
- 反復処理は、2〜3回だけ具体的に展開して追う
- 前回の出力が次回の入力になる処理に注意する
- 「値が変わらなくなった」なら、次に計算しても同じ値
- したがって、
f(x)=xの形を疑う f(x)=0は零点、f(x)=xは不動点なので混同しない- 初期値と、反復後に一定になった値は別物
FE試験では、
繰り返して値が変わらない → 入力=出力
と考えると、選択肢を切りやすくなります。