1. はじめに
天体観測では、星、惑星、銀河、ブラックホール連星、超新星残骸など、非常に遠くにある天体を観測する。望遠鏡の説明ではよく、
「遠くの天体から来た光は、望遠鏡の焦点面に集まる」
と言われる。
これは天文学ではあまりにも基本的な事実である。
しかし、実際には、この基本は簡単なようで、特に、薄レンズの式
\frac{1}{a}+\frac{1}{b}=\frac{1}{f}
を見たときに、
「なぜ像の位置が焦点距離になるのか?」
「焦点距離とは、そもそも何を意味しているのか?」
という点で混乱しやすい(かもしれない)。
この記事では、薄レンズの式を単なる暗記公式として扱うのではなく、光線図と相似三角形から導出し、そのうえで天体観測の場合に何が起きるのかを説明してみます。
結論を先に言うと、標準的な記法では
a = \text{物体距離}
b = \text{像距離}
f = \text{焦点距離}
である。このとき、天体観測では天体が非常に遠くにあるため、
a \to \infty
とみなせる。その結果、
b \to f
となる。つまり、天体観測では
\boxed{\text{物体距離がほぼ無限大なので、像距離は焦点距離にほぼ等しくなる}}
のである。
本記事のイメージ
望遠鏡の歴史については下記に簡単にまとめてみました。
2. 薄レンズの式で使う記号
まず、薄レンズの式に出てくる記号を確認する。$\frac{1}{a}+\frac{1}{b}=\frac{1}{f}$
ここで、
a
は物体距離である。つまり、レンズから物体までの距離である。
b
は像距離である。つまり、レンズを通った光が集まって像を作る位置までの距離である。
f
は焦点距離である。これは、無限遠から来た平行光がレンズを通ったあとに集まる位置までの距離である。
ここで最も大切なのは、焦点距離の意味である。焦点距離とは、なんとなく「レンズの性能を表す数字」なのではない。物理的には、
\boxed{\text{無限遠から来た平行光が集まる位置までの距離}}
である。
この定義をしっかり理解しておくと、天体望遠鏡の焦点面の意味が自然にわかる。
3. 薄レンズの式を導出する
ここでは、薄レンズの式を簡単に導出する。難しい波動光学ではなく、幾何光学の範囲で考える。
薄レンズを原点に置き、光軸を横方向にとる。物体はレンズの左側にあり、像はレンズの右側にできるとする。
物体の高さを $h$、像の高さを $h'$ とする。物体距離を $a$、像距離を $b$、焦点距離を $f$ とする。
このとき、代表的な2本の光線を考える。
1本目は、レンズの中心を通る光線である。薄レンズ近似では、レンズの中心を通る光線はほぼ直進すると考える。この光線に注目すると、物体、レンズ中心、像の間に相似な三角形ができる。
したがって、
\frac{h'}{h}=-\frac{b}{a}
が成り立つ。マイナス符号は、像が上下反転することを表している。
2本目は、光軸に平行にレンズへ入る光線である。凸レンズでは、光軸に平行に入った光線は、レンズを通過した後、焦点を通る。この光線と焦点の関係から、もう一つの相似三角形を作ることができる。
その相似関係から、
\frac{h'}{h}=-\frac{b-f}{f}
が得られる。
ここで、どちらの式も同じ像の高さ $h'$ を表している。したがって、
-\frac{b}{a}=-\frac{b-f}{f}
である。
符号を取り除いて、
\frac{b}{a}=\frac{b-f}{f}
となる。
これを整理する。
bf=a(b-f)
bf=ab-af
af+bf=ab
両辺を $abf$ で割ると、
\frac{1}{b}+\frac{1}{a}=\frac{1}{f}
したがって、
\frac{1}{a}+\frac{1}{b}=\frac{1}{f}
が得られる。
つまり、薄レンズの式は暗記すべき謎の公式ではない。これは、光線の進み方と相似三角形から出てくる、幾何学的な関係式である。
4. 天体観測では、どちらの距離が無限大になるのか
薄レンズの式
\frac{1}{a}+\frac{1}{b}=\frac{1}{f}
において、標準的な記法では、
a = \text{物体距離}
b = \text{像距離}
である。
天体観測では、観測対象である天体が非常に遠くにある。したがって、無限大とみなすのは、レンズから天体までの距離、つまり物体距離である。
したがって、
a \to \infty
である。
このとき、
\frac{1}{a}\to 0
となる。
薄レンズの式に代入すると、
[
0+\frac{1}{b}=\frac{1}{f}
]
したがって、
\frac{1}{b}=\frac{1}{f}
となり、
b=f
が得られる。
つまり、天体観測では
\boxed{a\simeq \infty,\quad b\simeq f}
である。
ここで注意したいのは、「$b=\infty$ で $a\simeq f$」ではない、ということである。標準的な記法では、無限大になるのは物体距離 $a$ であり、焦点距離に近づくのは像距離 $b$ である。
ただし、教科書や授業によっては、$a$ と $b$ の定義が逆になっている場合もある。その場合は記号が入れ替わるだけである。大切なのは記号そのものではなく、
\boxed{\text{遠くの天体は無限遠にあるので、像は焦点距離の位置にできる}}
という物理的な内容である。
5. なぜ遠くの天体から来る光は平行光とみなせるのか
薄レンズの式からは、天体が無限遠にあるとき像距離が焦点距離になることがわかった。
次に、もう少し直感的に理解してみる。
近くにある電球やろうそくから出た光は、レンズに届くときに大きく広がっている。つまり、レンズから見ると、光は一点から発散している。
一方、星や銀河のように非常に遠い天体から来る光は、地球に届くころにはほとんど平行になっている。もちろん、天体から出た光は本当は球面状に広がっている。しかし、天体までの距離があまりにも大きいため、望遠鏡の口径程度の小さな範囲だけを見れば、波面はほぼ平面、光線はほぼ平行とみなせる。
凸レンズには、次の性質がある。
\boxed{\text{光軸に平行に入ってきた光は、焦点を通る}}
これは焦点距離の定義そのものである。
したがって、天体から来る光を平行光とみなせるなら、その光はレンズまたは鏡によって焦点に集められる。
この意味で、天体望遠鏡とは、
\boxed{\text{無限遠から来るほぼ平行な光を、焦点面上の像に変換する装置}}
である。
6. 望遠鏡ではレンズより鏡を使うことが多い
ここまで「薄レンズ」という言葉を使って説明してきた。しかし、実際の天体望遠鏡、とくに大型望遠鏡では、レンズではなく鏡を使うことが多い。
これは、大きなレンズを作るのが難しいこと、レンズでは色収差が生じやすいこと、大口径化に限界があることなどが理由である。反射望遠鏡では、主鏡が光を集め、焦点面に像を作る。
この場合、厳密には薄レンズの式ではなく、鏡の結像式を使う。しかし、天体観測の基本的な考え方は変わらない。
遠方天体からの光は、望遠鏡に入る時点でほぼ平行光である。
平行光は、主鏡によって焦点に集められる。したがって、検出器やカメラは焦点面に置く。
可視光望遠鏡でも、赤外線望遠鏡でも、X線望遠鏡でも、基本的な考え方は同じである。ただし、X線の場合は普通の鏡のように正面から反射させることが難しいため、斜入射光学系を使う。このように実装は異なるが、「遠方天体から来る光を焦点面に集める」という考え方は共通している。
7. 近くの物体を見るカメラとは何が違うのか
この話は、カメラのピント合わせと比較するとわかりやすい。
近くの物体を撮影する場合、物体距離 $a$ は有限である。すると、
\frac{1}{a}
は無視できない。
薄レンズの式
\frac{1}{a}+\frac{1}{b}=\frac{1}{f}
を見ると、$a$ が有限なら、像距離 $b$ は焦点距離 $f$ と完全には一致しない。
式を変形すると、
\frac{1}{b}=\frac{1}{f}-\frac{1}{a}
である。さらに、
b=\frac{af}{a-f}
となる。
ここで、物体がレンズに近づく、つまり $a$ が小さくなると、像距離 $b$ は大きくなる。これは、カメラで近くのものにピントを合わせるとき、レンズとセンサーの距離を変える必要があることに対応している。
一方、遠くの景色や星にピントを合わせる場合、物体距離 $a$ は非常に大きい。このとき、
b\simeq f
である。
つまり、天体望遠鏡は基本的に、
\boxed{\text{常に無限遠にピントを合わせたカメラ}}
と考えることができる。
8. どれくらい遠ければ「無限遠」とみなしてよいのか
「天体は遠いから無限遠」と言われても、最初は少し乱暴に感じるかもしれない。そこで、どれくらい遠ければ像距離が焦点距離に近づくのかを見てみる。
先ほど得た式は、
b=\frac{af}{a-f}
である。
これを少し変形すると、
b=\frac{f}{1-f/a}
となる。
天体観測では
a\gg f
なので、
\frac{f}{a}
は非常に小さい。したがって、近似的に
b\simeq f\left(1+\frac{f}{a}\right)
と書ける。
このとき、像距離 $b$ と焦点距離 $f$ の差は、
b-f\simeq \frac{f^2}{a}
である。
たとえば、焦点距離 $f=1~\mathrm{m}$ の望遠鏡で月を見る場合を考える。月までの距離は約
a\simeq 3.8\times 10^8~\mathrm{m}
である。このとき、
b-f\simeq \frac{1^2}{3.8\times 10^8}~\mathrm{m}
であり、
b-f\simeq 2.6\times 10^{-9}~\mathrm{m}
程度になる。これはナノメートル程度である。
つまり、月でさえ、通常の天体望遠鏡にとっては実用上ほぼ無限遠である。星や銀河なら、なおさら無限遠として扱ってよい。
9. 焦点と焦点面は少し違う
ここで、「焦点」と「焦点面」の違いにも触れておきたい。
理想的な一点光源が光軸上の無限遠にある場合、その光は焦点に集まる。この一点が焦点である。
しかし、実際の天体観測では、空の一点だけを見るわけではない。望遠鏡は、ある広がりを持った視野を観測する。光軸から少しずれた方向にある天体からの光は、焦点そのものではなく、焦点面上の少しずれた位置に像を作る。
つまり、望遠鏡は、空の方向の違いを焦点面上の位置の違いに変換している。
小さな角度 $\theta$ だけ光軸からずれた方向にある天体を考える。この天体の像は、焦点面上で光軸から距離 $x$ だけずれた位置にできる。このとき、小角近似では、
x\simeq f\theta
である。
この式は非常に重要である。焦点距離 $f$ が長いほど、同じ角度差 $\theta$ が焦点面上で大きな距離 $x$ に対応する。つまり、焦点距離は、空の角度を検出器上の長さに変換する比例係数でもある。
したがって、焦点距離は単に「光が集まる位置までの距離」ではない。天体観測では、焦点距離は
\boxed{\text{空の角度スケールを、検出器上の位置スケールへ変換する量}}
でもある。
10. つまずきやすいポイント
この話でつまずきやすい点は、主に三つある。
第一に、記号の意味を確認しないまま式を使ってしまうことである。薄レンズの式に出てくる $a$ と $b$ は、教科書によって使い方が異なる場合がある。したがって、必ず「どちらが物体距離で、どちらが像距離なのか」を確認する必要がある。
第二に、「天体が遠い」ということを、「像が遠くにできる」と誤解してしまうことである。実際には逆である。天体が遠い、つまり物体距離が無限大になると、像は焦点距離の位置にできる。
第三に、焦点距離を単なる望遠鏡のスペックとして見てしまうことである。焦点距離は、無限遠から来た平行光が集まる位置を決めるだけでなく、空の角度を検出器上の位置に変換するスケールでもある。
この三点を押さえるだけで、天体望遠鏡の焦点面の意味はかなり明確になる。
11. まとめ
薄レンズの式は、
\frac{1}{a}+\frac{1}{b}=\frac{1}{f}
である。標準的な記法では、$a$ は物体距離、$b$ は像距離、$f$ は焦点距離である。
この式は、光線の進み方と相似三角形から導出できる。つまり、単なる暗記公式ではなく、幾何光学の基本から自然に得られる関係式である。
天体観測では、天体が非常に遠くにあるため、
a\to\infty
とみなせる。そのため、
\frac{1}{a}\to 0
となり、
\frac{1}{b}=\frac{1}{f}
すなわち、
b=f
が得られる。
したがって、天体観測では、
\boxed{\text{遠方天体から来る光は、焦点距離の位置に像を作る}}
と言える。
より直感的には、遠方天体から来る光は望遠鏡に入る時点でほぼ平行光であり、その平行光がレンズや鏡によって焦点に集められる、ということである。
天体望遠鏡の基本は、次の一文にまとめられる。
\boxed{\text{天体はほぼ無限遠にあるため、望遠鏡に入る光はほぼ平行光であり、その光は焦点面に集まる。}}
Appendix: matplotlib による可視化
ここからは付録である。本文の理解には必須ではないが、Python と matplotlib を使うと、薄レンズの式の意味を視覚的に確認できる。
google colab で再現できます。
A.1 物体距離を大きくすると、像距離が焦点距離に近づく
まず、物体距離 $a$ を変えたとき、像距離 $b$ がどのように変化するかを見る。
薄レンズの式
\frac{1}{a}+\frac{1}{b}=\frac{1}{f}
から、
b=\frac{1}{1/f-1/a}
である。
以下のコードでは、焦点距離を $f=1~\mathrm{m}$ とし、物体距離 $a$ を変化させて、像距離 $b$ をプロットする。
import numpy as np
import matplotlib.pyplot as plt
# 焦点距離
f = 1.0 # m
# 物体距離 a を f より少し大きいところから遠方まで変化させる
a_array = np.linspace(1.05 * f, 20 * f, 500)
# 薄レンズの式から像距離 b を計算
# 1/a + 1/b = 1/f
# 1/b = 1/f - 1/a
# b = 1 / (1/f - 1/a)
b_array = 1.0 / (1.0 / f - 1.0 / a_array)
plt.figure(figsize=(7, 5))
plt.plot(a_array / f, b_array / f, label=r"$b/f$")
plt.axhline(1.0, linestyle="--", label=r"$b=f$")
plt.xlabel(r"Object distance $a/f$")
plt.ylabel(r"Image distance $b/f$")
plt.title("Image distance approaches the focal length for distant objects")
plt.ylim(0, 10)
plt.grid(True)
plt.legend()
plt.show()
この図を見ると、物体距離 $a$ が大きくなるほど、像距離 $b$ が焦点距離 $f$ に近づくことがわかる。
A.2 焦点距離からのずれ (b-f) を見る
次に、像距離 $b$ と焦点距離 $f$ の差を見てみる。
天体観測では、物体距離 $a$ が非常に大きいので、
b-f\simeq \frac{f^2}{a}
となる。この関係を可視化する。
import numpy as np
import matplotlib.pyplot as plt
# 焦点距離
f = 1.0 # m
# 物体距離 a を対数的に広く取る
# a は f より大きい必要がある
a_array = np.logspace(0.1, 10, 500) # m
# 像距離 b
b_array = 1.0 / (1.0 / f - 1.0 / a_array)
# 焦点距離からのずれ
delta_b = b_array - f
plt.figure(figsize=(7, 5))
plt.loglog(a_array, delta_b)
plt.xlabel(r"Object distance $a$ [m]")
plt.ylabel(r"$b - f$ [m]")
plt.title("Difference between image distance and focal length")
plt.grid(True, which="both")
plt.show()
物体距離が大きくなるほど、$b-f$ が小さくなる。両対数グラフでは、おおよそ傾き $-1$ の直線に近づく。これは、
b-f\simeq \frac{f^2}{a}
という近似に対応している。
A.3 薄レンズの光線図を描く
次に、物体から出た光がレンズを通って像を作る様子を描く。
import numpy as np
import matplotlib.pyplot as plt
# パラメータ
f = 1.0
a = 3.0
h = 0.6
# 薄レンズの式から像距離を計算
b = 1.0 / (1.0 / f - 1.0 / a)
# 倒立像の高さ
h_image = -b / a * h
plt.figure(figsize=(9, 5))
# 光軸
plt.axhline(0, color="black", linewidth=1)
# レンズ
plt.axvline(0, color="black", linewidth=2)
plt.text(0, 1.0, "lens", ha="center")
# 焦点
plt.scatter([f, -f], [0, 0])
plt.text(f, -0.12, "F", ha="center")
plt.text(-f, -0.12, "F", ha="center")
# 物体
plt.arrow(
-a, 0, 0, h,
head_width=0.05,
head_length=0.08,
length_includes_head=True
)
plt.text(-a, h + 0.1, "object", ha="center")
# 像
plt.arrow(
b, 0, 0, h_image,
head_width=0.05,
head_length=0.08,
length_includes_head=True
)
plt.text(b, h_image - 0.15, "image", ha="center")
# 光線1: レンズ中心を通る光線
plt.plot([-a, b], [h, h_image])
# 光線2: 光軸に平行に進み、レンズ後に焦点を通る光線
plt.plot([-a, 0], [h, h])
plt.plot([0, b], [h, h_image])
plt.xlim(-a - 0.5, b + 0.5)
plt.ylim(-1.2, 1.2)
plt.xlabel("position along optical axis")
plt.ylabel("height")
plt.title("Ray diagram for a thin lens")
plt.grid(True)
plt.gca().set_aspect("equal", adjustable="box")
plt.show()
この図では、物体から出た代表的な2本の光線が、レンズを通って像の位置で交わる様子が見える。
A.4 天体観測に対応する平行光の図
最後に、天体観測に対応する図を描く。天体は無限遠にあるので、物体そのものを左側に描くよりも、左から平行光が入ってくる図にした方が自然である。
import numpy as np
import matplotlib.pyplot as plt
# 焦点距離
f = 1.0
# 入射する平行光の高さ
y_values = np.linspace(-0.6, 0.6, 5)
plt.figure(figsize=(8, 4))
# 光軸
plt.axhline(0, color="black", linewidth=1)
# レンズ
plt.axvline(0, color="black", linewidth=2)
plt.text(0, 0.9, "lens", ha="center")
# 焦点
plt.scatter([f], [0], color="black")
plt.text(f, -0.12, "focus", ha="center")
# 平行光と屈折後の光線
for y in y_values:
# レンズまでの平行光
plt.plot([-2.0, 0], [y, y])
# レンズ後、焦点へ向かう光
plt.plot([0, f], [y, 0])
plt.xlim(-2.2, 1.4)
plt.ylim(-1.0, 1.0)
plt.xlabel("position along optical axis")
plt.ylabel("height")
plt.title("Parallel rays from a distant astronomical object focus at f")
plt.grid(True)
plt.gca().set_aspect("equal", adjustable="box")
plt.show()
この図が、天体望遠鏡の基本を最も直接的に表している。遠くの天体から来た光はほぼ平行光であり、その平行光はレンズまたは主鏡によって焦点に集められる。したがって、検出器を置くべき場所は、基本的には焦点距離 $f$ の位置である。
A.5 天体観測に対応する斜め入射の平行光の図
A.4 では、遠方天体から来る光を「光軸に平行な平行光」として描いた。この場合、光は焦点面の中心、すなわち光軸上の焦点に集まる。
しかし、実際の天体観測では、空の一点だけを見るわけではない。望遠鏡はある広がりをもった視野を観測している。つまり、光軸方向から来る天体光だけでなく、光軸から少しずれた角度方向から来る天体光も、同じ焦点面上の別の位置に像を作る。
ここで、光軸から角度 $\theta$ だけずれた方向から来る平行光を考える。天体は十分遠方にあるため、この光も望遠鏡に入る時点では平行光とみなせる。ただし、A.4 のように光軸に平行ではなく、全体として少し傾いた平行光である。
理想的な薄レンズ、または理想的な望遠鏡光学系を考えると、この斜め方向から来た平行光は、焦点面上で光軸からずれた位置に集まる。焦点面がレンズから距離 $f$ の位置にあるとすれば、単純な幾何から
x = f \tan\theta
である。ここで、$x$ は焦点面上で光軸中心から測った像の位置である。
天体観測で扱う角度は多くの場合十分小さいため、
\tan\theta \simeq \theta
と近似できる。ただし、$\theta$ はラジアンで表す。このとき、
x \simeq f\theta
となる。
この式は、望遠鏡が単に光を一点に集める装置ではなく、
\text{空の角度方向} \longrightarrow \text{焦点面上の位置}
へ変換する装置であることを表している。
たとえば、焦点距離 $f$ が長い望遠鏡では、同じ角度差 $\theta$ が、焦点面上でより大きな距離 $x$ に対応する。したがって、焦点距離は「光が集まる距離」を決めるだけでなく、「空の角度を検出器上の長さに変換するスケール」も決めている。
以下のコードでは、青い光線で光軸に平行な入射光、赤い光線で角度 $\theta$ だけ傾いた方向から来る平行光を描いている。青い光は焦点面の中心に集まり、赤い光は焦点面上の $x=f\tan\theta$ の位置に集まる。
import numpy as np
import matplotlib.pyplot as plt
# ============================================================
# 無限遠方から角度 theta で来た平行光が、
# 焦点面上の x = f tan(theta) に集光される様子を描く
# ============================================================
# 焦点距離
f = 1.0 # [m]
# 入射角 theta
# 図で見やすくするため、ここでは少し大きめの角度を使う
theta_deg = 12.0
theta = np.deg2rad(theta_deg)
# 焦点面上での結像位置
x_focus = f * np.tan(theta)
print(f"theta = {theta_deg:.1f} deg")
print(f"f = {f:.2f} m")
print(f"x = f tan(theta) = {x_focus:.3f} m")
print(f"small-angle approximation: f theta = {f * theta:.3f} m")
# レンズ位置と焦点面位置
z_lens = 0.0
z_focus = f
# レンズに入る光線の高さ
x_rays_at_lens = np.linspace(-0.45, 0.45, 5)
# 入射光を左側に延ばす距離
z_left = -1.5
plt.figure(figsize=(9, 5))
# ------------------------------------------------------------
# 光軸
# ------------------------------------------------------------
plt.axhline(
0,
color="black",
linewidth=1,
linestyle="--",
label="optical axis"
)
# ------------------------------------------------------------
# レンズ
# ------------------------------------------------------------
plt.axvline(z_lens, color="black", linewidth=2)
plt.text(z_lens, 0.72, "lens", ha="center", va="bottom")
# ------------------------------------------------------------
# 焦点面
# ------------------------------------------------------------
plt.axvline(z_focus, color="red", linewidth=1.5, linestyle="--")
plt.text(
z_focus,
0.72,
"focal plane",
color="red",
ha="center",
va="bottom"
)
# ------------------------------------------------------------
# 光軸上の焦点
# theta = 0 の場合の焦点
# ------------------------------------------------------------
plt.scatter([z_focus], [0], color="black", zorder=5)
plt.text(
z_focus + 0.03,
0.03,
r"$\theta=0$",
ha="left",
va="bottom"
)
# ------------------------------------------------------------
# theta 方向から来る平行光の集光位置
# ------------------------------------------------------------
plt.scatter([z_focus], [x_focus], color="red", zorder=6)
plt.text(
z_focus + 0.03,
x_focus,
r"$x=f\tan\theta$",
color="red",
ha="left",
va="center"
)
# ------------------------------------------------------------
# theta = 0 の平行光を薄い青で描く
# ------------------------------------------------------------
for x0 in x_rays_at_lens:
# レンズまで平行に進む
plt.plot(
[z_left, z_lens],
[x0, x0],
color="tab:blue",
alpha=0.35
)
# レンズ後、焦点へ向かう
plt.plot(
[z_lens, z_focus],
[x0, 0],
color="tab:blue",
alpha=0.35
)
# ------------------------------------------------------------
# theta 方向から来る平行光を赤で描く
# ------------------------------------------------------------
# 入射前の光線は、傾き tan(theta) を持つ平行線として描く。
# ここでは、各光線がレンズ面 z=0 で x_rays_at_lens を通るようにする。
for x_at_lens in x_rays_at_lens:
# レンズより左側での入射光線
#
# x(z) = x_at_lens + z * tan(theta)
#
# として描く。z=0 で x=x_at_lens になる。
z_in = np.array([z_left, z_lens])
x_in = x_at_lens + z_in * np.tan(theta)
# レンズ後は焦点面上の x_focus に向かうように描く。
# これは理想薄レンズによる結像を模式的に表している。
z_out = np.array([z_lens, z_focus])
x_out = np.array([x_at_lens, x_focus])
plt.plot(z_in, x_in, color="red", linewidth=1.5)
plt.plot(z_out, x_out, color="red", linewidth=1.5)
# ------------------------------------------------------------
# 焦点距離 f の注記
# ------------------------------------------------------------
y_arrow = -0.65
plt.annotate(
"",
xy=(z_lens, y_arrow),
xytext=(z_focus, y_arrow),
arrowprops=dict(arrowstyle="<->", color="black")
)
plt.text(
0.5 * (z_lens + z_focus),
y_arrow - 0.05,
r"$f$",
ha="center",
va="top"
)
# ------------------------------------------------------------
# 焦点面上のずれ x の注記
# ------------------------------------------------------------
plt.annotate(
"",
xy=(z_focus + 0.08, 0),
xytext=(z_focus + 0.08, x_focus),
arrowprops=dict(arrowstyle="<->", color="red")
)
plt.text(
z_focus + 0.12,
0.5 * x_focus,
r"$x$",
color="red",
ha="left",
va="center"
)
# ------------------------------------------------------------
# 入射角 theta の注記
# ------------------------------------------------------------
plt.text(
z_left + 0.1,
0.55,
rf"incoming parallel rays at $\theta={theta_deg:.1f}^\circ$",
color="red",
ha="left"
)
# ------------------------------------------------------------
# 図の体裁
# ------------------------------------------------------------
plt.xlabel("distance along optical axis")
plt.ylabel("height on focal plane")
plt.title(r"Off-axis parallel rays focus at $x=f\tan\theta \simeq f\theta$")
plt.xlim(z_left, 1.35)
plt.ylim(-0.8, 0.9)
plt.grid(True)
plt.gca().set_aspect("equal", adjustable="box")
plt.show()
この図で重要なのは、青い光と赤い光の違いである。
青い光線は、光軸に平行に入射している。したがって、焦点面の中心、つまり光軸上の点に集まる。
一方、赤い光線は、互いには平行だが、光軸に対して角度 $\theta$ だけ傾いている。この光は、焦点面の中心ではなく、光軸からずれた位置に集まる。そのずれが
x = f\tan\theta
である。
小角近似では、
x \simeq f\theta
となる。この関係は、焦点面上の画像スケールを考えるときの基本である。
たとえば、焦点距離 $f=1~\mathrm{m}$ の望遠鏡で、角度 $\theta=1^\circ$ の方向から来る光を考えると、
x = f\tan 1^\circ \simeq 0.0175\,\mathrm{m}
となる。つまり、焦点面上では約 $1.75~\mathrm{cm}$ だけ中心からずれた位置に像ができる。
ただし、天文学でよく使う角度は、度よりもはるかに小さいことが多い。たとえば $1$ 秒角は、
1\,\mathrm{arcsec}
=
\frac{1}{3600}\,\mathrm{deg}
\simeq 4.85\times 10^{-6}\,\mathrm{rad}
である。焦点距離 $f=1~\mathrm{m}$ の場合、焦点面上の長さは
x\simeq f\theta
\simeq 4.85\times 10^{-6}\,\mathrm{m}
となる。つまり、$1$ 秒角は焦点面上で約 $4.85~\mu\mathrm{m}$ に対応する。
このように、焦点距離 $f$ がわかると、空の角度スケールを焦点面上の長さスケールに変換できる。
注意:この話は理想薄レンズ近似である
ここで描いた図は、あくまで理想的な薄レンズ、または理想的に補正された望遠鏡光学系を仮定した模式図である。
実際のレンズや望遠鏡では、すべての光線が完全に一点に集まるわけではない。特に、光軸から外れた斜め入射の光では、いくつかの収差が問題になる。
代表的には、以下のような効果がある。
-
球面収差
レンズや鏡の中心付近を通る光と、周辺部を通る光で焦点位置がずれる効果。 -
コマ収差
光軸から外れた天体の像が、点ではなく彗星のような形に広がる効果。 -
非点収差
垂直方向と水平方向で焦点位置が異なり、点像が一方向に伸びる効果。 -
像面湾曲
像が完全な平面ではなく、曲がった面上にできる効果。 -
歪曲収差
角度 $\theta$ と焦点面上の位置 $x$ の関係が、単純な比例関係 $x\simeq f\theta$ からずれる効果。
したがって、広い視野を高精度に結像する望遠鏡では、単純な薄レンズの式だけでは不十分である。実際の光学設計では、レンズや鏡の形状、屈折率、面間距離、波長依存性、開口の大きさなどを含めた光線追跡が必要になる。
しかし、この記事で説明したい基本概念、すなわち
\text{無限遠から来る平行光は焦点面に集まる}
および
\text{光軸から角度 }\theta\text{ だけずれた光は焦点面上で }x\simeq f\theta\text{ だけずれる}
という理解には、理想薄レンズ近似で十分である。
この近似は、天体望遠鏡の焦点面を理解するための第一歩として非常に重要である。実際の望遠鏡では、この単純な関係を出発点として、収差をどのように補正し、どの程度の視野でどの程度よい像を得るかを設計していくことになる。
関連記事






