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

Matplotlib로 암시적 방정식을 그리는 방법

Matplotlib에서 암시적 방정식 그리기

Matplotlib는 암시적 방정식(implicit equation)을 직접 플롯하는 전용 기능을 제공하지 않습니다. 하지만 contour() 함수를 활용하면 f(x, y) = 0 형태의 방정식을 만족하는 곡선을 손쉽게 시각화할 수 있습니다. 아래 예제 코드를 참고해 보세요.

구현 단계

  • numpy를 사용하여 xrangeyrange 데이터 포인트를 생성합니다.
  • meshgrid() 메서드로 좌표 벡터로부터 좌표 행렬을 반환받습니다.
  • x와 y를 이용해 원하는 방정식을 정의합니다.
  • contour() 메서드에 x, y와 방정식을 전달하여 등고선 플롯을 생성합니다.
  • show() 메서드를 호출하여 그래프를 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
delta = 0.025
xrange = np.arange(-5.0, 20.0, delta)
yrange = np.arange(-5.0, 20.0, delta)
x, y = np.meshgrid(xrange, yrange)
equation = np.sin(x) - np.cos(y)**2
plt.contour(x, y, equation, [0])
plt.show()

실행 결과

Matplotlib로 암시적 방정식을 그리는 방법

위 코드에서 contour(x, y, equation, [0])의 마지막 인자 [0]은 방정식 값이 0이 되는 지점만 추출하라는 의미입니다. 즉, sin(x) − cos²(y) = 0을 만족하는 곡선이 화면에 그려지게 됩니다.

추가 팁

보다 복잡한 암시적 방정식이나 수치 해석이 필요한 경우에는 scipy.optimize 모듈을 함께 활용하면 좋습니다. 이를 통해 특정 구간에서의 근을 찾거나 더 정교한 시각화를 구현할 수 있습니다.