Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 구면 거울의 초점 거리 계산하기

이 글에서는 다음과 같은 문제를 파이썬 코드로 해결하는 방법을 알아보겠습니다.

문제 정의

구면 거울의 곡률 반지름(radius of curvature)이 주어졌을 때, 해당 거울의 초점 거리(focal length)를 구하는 것이 목표입니다.

개념 설명

초점 거리란 거울의 곡률 중심에서 주 초점(principal focus)까지의 거리를 의미합니다. 구면 거울의 초점 거리를 구하려면 먼저 그 거울의 곡률 반지름을 알아야 합니다. 여기서 곡률 반지름은 거울의 꼭짓점(vertex)에서 곡률 중심까지의 거리를 말합니다.

수식으로 표현하면 다음과 같습니다.

  • 오목 거울(concave mirror): F = R / 2
  • 볼록 거울(convex mirror): 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 단위

결과 해석

출력 결과의 단위는 미터(m), 센티미터(cm), 밀리미터(mm) 등 어떤 단위든 될 수 있습니다. 일반적인 결과를 제공하기 위해 특정 단위 대신 '단위'로 표기했습니다. 위 예제에서는 곡률 반지름 R = 30이 주어졌으므로, 오목 거울의 초점 거리는 +15.0, 볼록 거울의 초점 거리는 -15.0으로 계산됩니다.

모든 변수는 전역 프레임(global frame)에 선언되며, 두 개의 함수가 각각 오목 거울과 볼록 거울의 초점 거리를 담당합니다.

결론

이 글에서는 파이썬을 활용하여 구면 거울의 초점 거리를 계산하는 방법을 살펴보았습니다. 곡률 반지름의 절반을 초점 거리로 삼고, 볼록 거울의 경우 부호만 음수로 바꾸어 주면 되므로 매우 간단한 연산으로 해결할 수 있습니다. 이러한 기본 원리는 광학 시뮬레이션이나 물리 관련 프로그래밍 문제를 풀 때 유용하게 활용될 수 있습니다.