「山の頂上まで登るとき、必ず中間の高さを通過する」 「気温が朝10度から昼20度になったら、必ず15度の瞬間があった」 「車で時速0kmから60kmまで加速したら、必ず時速30kmの瞬間があった」
これらは当たり前のように思えますよね?
実は、この「当たり前」を数学的に証明したのが中間値の定理なんです。シンプルに見えて、方程式の解の存在証明から、コンピューターのアルゴリズムまで、幅広く活用される重要な定理です。
今回は、中間値の定理を身近な例を使いながら、その本質と応用まで分かりやすく解説していきます!
中間値の定理とは? – 直感的に理解する

一番簡単な説明
中間値の定理を一言で: 「つながったグラフは、2つの点の間のすべての高さを必ず通る」
もう少し詳しく言うと: 「連続な関数において、ある区間の両端の値の間にある値は、必ずその区間内のどこかで取る」
エレベーターで考える
エレベーターの例:
1階(高さ0m)から5階(高さ15m)まで上がるとき:
1階: 0m
2階: 3m ← 必ず通る
3階: 6m ← 必ず通る
4階: 9m ← 必ず通る
5階: 15m
エレベーターがワープしない限り、
必ず間のすべての高さを通過する!
これが中間値の定理の本質です。
気温の変化で理解する
1日の気温変化:
朝6時: 10℃
昼12時: 25℃
この間に気温が連続的に変化したなら:
- 15℃になった瞬間が必ずある
- 20℃になった瞬間が必ずある
- 10℃~25℃のすべての温度を必ず経験
ワープして突然25℃になることはありません。これが「連続」の意味です。
数学的な定義 – 正確に表現すると
中間値の定理の正式な表現
定理: 関数f(x)が閉区間[a, b]で連続であり、f(a) ≠ f(b)のとき、 f(a)とf(b)の間の任意の値kに対して、 f(c) = kとなるcが区間(a, b)内に少なくとも1つ存在する。
もっと分かりやすく言い換えると
条件:
1. グラフがつながっている(連続)
2. 区間の両端で違う値を取る
結論:
両端の値の間のどんな値も、必ず区間内のどこかで取る
重要なポイント
必要な条件:
- 連続性(グラフが切れていない)
- 閉区間(両端を含む)
- 両端の値が異なる
これらが1つでも欠けると、定理は成り立ちません。
具体例で確かめる
例1:方程式の解の存在
問題: x³ – 2x – 5 = 0 は解を持つか?
中間値の定理で証明:
f(x) = x³ - 2x - 5 とする
f(2) = 8 - 4 - 5 = -1(負の値)
f(3) = 27 - 6 - 5 = 16(正の値)
f(x)は連続関数で、
f(2) < 0 < f(3)
→ 中間値の定理より、f(c) = 0となるcが
区間(2, 3)内に必ず存在する!
つまり、方程式は2と3の間に必ず解を持ちます。
例2:山道の標高
状況:
山のふもと: 標高100m
山頂: 標高1,500m
質問:標高500mの地点は必ず存在する?
答え:YES!
理由:連続的に登る限り、必ず通過する
例3:株価の変動
月曜日と金曜日の株価:
月曜日の終値: 1,000円
金曜日の終値: 1,200円
この週に1,100円になった瞬間はあった?
答え:取引時間中に連続的に変化したなら、YES!
中間値の定理が成り立たない例
不連続な関数の場合
階段関数の例:
駐車料金:
0-1時間: 200円
1-2時間: 400円
2-3時間: 600円
30分で出庫した場合: 200円
90分で出庫した場合: 400円
300円になることはない!(不連続だから)
開区間の場合
例:
関数 f(x) = 1/x を区間(-1, 1)で考える
この関数はx = 0で定義されない(不連続)
f(-1) = -1, f(1) = 1
0という値は取らない!
(x = 0で不連続だから)
中間値の定理の応用

1. 二分探索法(方程式の解を求める)
アルゴリズム:
# 方程式 f(x) = 0 の解を求める
def 二分探索(f, a, b, 誤差):
while b - a > 誤差:
中点 = (a + b) / 2
if f(a) * f(中点) < 0:
# 解は[a, 中点]にある
b = 中点
else:
# 解は[中点, b]にある
a = 中点
return (a + b) / 2
実例:√2を求める
x² = 2 の解を求める(f(x) = x² - 2)
f(1) = -1 < 0
f(2) = 2 > 0
区間を半分ずつ狭めていく:
[1, 2] → [1, 1.5] → [1.25, 1.5] → [1.375, 1.5] → ...
→ 1.41421356...(√2)
2. 不動点定理
原理:
f(x)が[0, 1]から[0, 1]への連続関数なら、
f(c) = c となる点c(不動点)が必ず存在する
証明:g(x) = f(x) - x とすると
g(0) = f(0) ≥ 0
g(1) = f(1) - 1 ≤ 0
中間値の定理より、g(c) = 0となるcが存在
→ f(c) = c
3. 実生活での応用
地図上の点:
地図を床に置いたとき、
「地図上の点」と「実際のその場所」が
一致する点が必ず1つ存在する(不動点)
パンケーキ定理:
どんな形の2つのパンケーキも、
1回の直線カットで両方を同時に
半分ずつに分けることができる
プログラミングでの活用
方程式の数値解法
def solve_equation(f, a, b, tolerance=0.0001):
"""
中間値の定理を使って方程式 f(x) = 0 を解く
"""
if f(a) * f(b) > 0:
print("解が存在しない可能性があります")
return None
while abs(b - a) > tolerance:
mid = (a + b) / 2
if abs(f(mid)) < tolerance:
return mid
if f(a) * f(mid) < 0:
b = mid
else:
a = mid
return (a + b) / 2
# 使用例:x³ - x - 1 = 0 を解く
import math
def equation(x):
return x**3 - x - 1
solution = solve_equation(equation, 1, 2)
print(f"解: x = {solution}") # 約1.3247
ゲーム開発での応用
def find_collision_time(object1_height, object2_height, start_time, end_time):
"""
2つのオブジェクトが衝突する時刻を見つける
"""
def height_difference(t):
return object1_height(t) - object2_height(t)
# 中間値の定理で交点を探す
if height_difference(start_time) * height_difference(end_time) < 0:
return solve_equation(height_difference, start_time, end_time)
return None
よくある誤解と注意点
誤解1:解は1つだけ?
誤り: 中間値の定理は「少なくとも1つ」の存在を保証
例:
sin(x) = 0.5 を区間[0, 4π]で考える
解は複数ある:
x = π/6, 5π/6, 13π/6, 17π/6
誤解2:不連続でも成り立つ?
誤り: 連続性は必須条件
反例:
f(x) = { 1 (x < 0)
{ -1 (x ≥ 0)
f(-1) = 1, f(1) = -1
でも f(x) = 0 となるxは存在しない
誤解3:逆も成り立つ?
誤り: 「中間の値をすべて取る → 連続」とは限らない
中間値の性質を持つが不連続な関数も存在します(ダルブーの定理)。
練習問題
問題1
f(x) = x² - 3x + 1 が区間[0, 3]で
f(x) = 0 となる点を持つことを示せ
ヒント:f(0)とf(3)の値を計算
問題2
ある日の気温:
午前0時: 5℃
午後0時: 15℃
この日、気温がちょうど10℃に
なった時刻は必ず存在する?理由も述べよ
問題3
cos(x) = x を満たすxが
区間[0, 1]に存在することを示せ
ヒント:g(x) = cos(x) - x を考える
まとめ – つながっているということの数学的意味
中間値の定理について、本質を理解できましたか?
覚えておくべきポイント
✅ 連続な関数は中間の値をすべて取る
✅ グラフがつながっていることが重要
✅ 方程式の解の存在を保証する
✅ 二分探索などのアルゴリズムの基礎
定理の本質
「ワープできない」「ジャンプできない」という当たり前のことを、数学的に厳密に表現したのが中間値の定理です。
応用の広がり
- 方程式の数値解法
- コンピューターアルゴリズム
- 物理現象の解析
- 経済学のモデル
シンプルだけど強力な、数学の美しい定理の一つ。この「当たり前」が、実は多くの数学的議論の土台となっているんです!
コメント