Pythonで球面鏡の焦点距離を計算する方法|凹面鏡・凸面鏡の公式とコード例
この記事では、以下の問題に対する解決方法を学びます。
問題の概要
球面鏡の曲率半径が与えられたとき、その鏡の焦点距離を求めることを目標とします。
焦点距離とは、鏡の曲率中心から主焦点までの距離のことです。球面鏡の焦点距離を求めるには、まずその鏡の曲率半径を知る必要があります。鏡の頂点から曲率中心までの距離を「曲率半径」と呼びます。
数式で表すと −
凹面鏡の場合: F = R∕2
凸面鏡の場合: F = −R∕2
凸面鏡の焦点距離が負の値になるのは、光学における符号規約によるものです。凸面鏡の焦点は虚焦点であり、入射光の進行方向とは反対側にできるため、マイナス符号を付けて表します。
それでは、実際の実装を見ていきましょう。
実装例
# 凹面球面鏡の焦点距離を求める関数
def focal_length_concave(R):
return R / 2
# 凸面球面鏡の焦点距離を求める関数
def focal_length_convex(R):
return -(R / 2)
# 実行部分
R = 30
print("凹面球面鏡の焦点距離 :", focal_length_concave(R), "単位")
print("凸面球面鏡の焦点距離 :", focal_length_convex(R), "単位")
出力
凹面球面鏡の焦点距離 : 15.0 単位 凸面球面鏡の焦点距離 : -15.0 単位
出力の単位は、メートル・センチメートル・ミリメートルなど、任意の長さの単位を使用できます。ここでは汎用的な結果を示すため、特定の単位名の代わりに「単位」と表記しています。
上記のコードでは、以下の画像に示すように、すべての変数がグローバルフレームで宣言され、2つの関数が定義されています。

コードのポイント
- 焦点距離は曲率半径の半分であるため、計算自体は非常にシンプルです。
- 凹面鏡用と凸面鏡用の関数を分けることで、符号の違いが明確になり、可読性が向上します。
- 変数 R の値を変更すれば、任意の曲率半径に柔軟に対応できます。
まとめ
この記事では、球面鏡の曲率半径から焦点距離を計算するPythonプログラムについて学びました。「焦点距離 = 曲率半径 ÷ 2」という基本公式を押さえておけば、凹面鏡・凸面鏡のどちらにも簡単に対応できます。光学の基礎とPythonの関数定義を組み合わせた、シンプルながら実践的な例といえるでしょう。
-
Pythonで単利を計算するプログラムの作成方法
この記事では、Python 3.x(およびそれ以前のバージョン)を使用して、単利を計算する方法について解説します。単利とは、元本に対して一定の利率で発生する利息のことです。一般的には、利率に元本を掛け、さらに利息が発生する期間を掛けることで求められます。単利の計算式単利は数学的に以下の式で表すことができます。単利(SI) = (P × T × R) / 100 P:元本(Principal) T:期間(Time) R:利率(Rate)例えば、元本 P = 1000、利率 R = 1%、期間 T = 2 の場合、単利は次のように計算されます。SI = (1000 × 1 × 2) / 100
-
Pythonで円柱の周囲長を求めるプログラムの書き方
この記事では、以下の問題をPythonを使って解く方法を解説します。 問題の定義 問題: 直径と高さを入力として受け取り、円柱の周囲長を求める。 ここでいう「周囲長」とは、円柱を横から見たときに現れる長方形の外周のことです。つまり、円柱の側面を展開すると長方形になり、その縦が円柱の高さ、横が円の直径(円周ではありません)に相当します。 したがって、周囲長は次の式で表せます。 周囲長 = 2 × ( 高さ h + 直径 d ) d:円柱の直径 h:円柱の高さ 実装例 それでは、実際のコードを見てみましょう。 # 円柱の周囲長を計算する関数 def perimeter(diameter, he