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

Python 프로그램으로 포물선의 꼭짓점, 초점, 준선 구하기


이 글에서는 아래의 문제에 대한 해결 방법을 단계별로 알아보겠습니다.

문제 정의

포물선 방정식의 표준형은 y = ax2 + bx + c 입니다. 계수 a, b, c의 값을 입력받아 포물선의 꼭짓점(vertex)초점(focus)의 좌표, 그리고 준선(directrix)의 방정식을 구하는 것이 우리의 과제입니다.

Python 프로그램으로 포물선의 꼭짓점, 초점, 준선 구하기

주요 개념

꼭짓점(Vertex)은 포물선이 가장 급격하게 방향을 바꾸는, 즉 곡률이 가장 큰 지점의 좌표를 의미합니다. 대칭축이 이 점을 지나며, 포물선 전체의 형태를 결정하는 핵심 기준점입니다.

초점(Focus)은 포물선을 정의하는 데 사용되는 고정점입니다. 포물선 위의 모든 점은 초점까지의 거리와 준선까지의 거리가 서로 같다는 성질을 가집니다.

준선(Directrix)은 곡선이나 곡면을 기술하는 데 사용되는 고정 직선으로, 초점과 함께 포물선의 위치와 모양을 결정합니다.

그럼 실제 구현 코드를 살펴보겠습니다.

예제 코드

def findparabola(a, b, c):
    print ("Vertex: (" , (-b / (2 * a)) ,
", ",(((4 * a * c) - (b * b)) / (4 * a)) , ")" )

    print ("Focus: (" , (-b / (2 * a)) , ", ", (((4 * a * c) -(b * b) + 1) / (4 * a)) , ")" )

    print ("Directrix: y=", (int)(c - ((b * b) + 1) * 4 * a ))
# main()
a = 7
b = 5
c = 3

findparabola(a, b, c)

실행 결과

Vertex: ( -0.35714285714285715 , 2.107142857142857 )
Focus: ( -0.35714285714285715 , 2.142857142857143 )
Directrix: y= -725

위 코드에서 모든 변수와 함수는 아래 그림과 같이 전역 범위(global scope)에 선언되어 있어, 프로그램 어디에서든 접근할 수 있습니다.

Python 프로그램으로 포물선의 꼭짓점, 초점, 준선 구하기

계산 공식 정리

포물선 y = ax2 + bx + c가 주어졌을 때, 각 요소는 다음 공식으로 계산됩니다.

  • 꼭짓점: x = -b / (2a), y = (4ac − b2) / (4a)
  • 초점: x = -b / (2a), y = (4ac − b2 + 1) / (4a)
  • 준선: y = c − (b2 + 1) × 4a

꼭짓점과 초점의 x좌표는 항상 동일하며, 이는 포물선의 대칭축이 수직이라는 사실을 반영합니다. 초점의 y좌표는 꼭짓점보다 항상 1/(4a)만큼 위에 위치한다는 점도 눈여겨볼 만합니다.

결론

이 글에서는 Python을 활용해 포물선의 꼭짓점, 초점, 그리고 준선을 구하는 방법을 살펴보았습니다. 표준형 방정식 y = ax2 + bx + c의 세 계수만 알고 있다면, 간단한 함수 하나로 포물선의 핵심 특징들을 손쉽게 계산할 수 있습니다. 이러한 원리는 그래프 시각화, 물리 시뮬레이션, 최적화 문제 등 다양한 분야에서 응용될 수 있습니다.