이번시간에는 numpy와 pylab을 이용하여 리사주도형 그래프를 4개 그려보도록 하겠습니다.
일단 그래프를 그려보기에 앞서 리사주도형에 대해 간략히 설명을 드리곘습니다.
리사주도형이란?
리사주도형(Lissajous Curve)은 두개의 조화운동이 서로 다른 주파수로 진동하면서 만들어지는 곡선을 말합니다.
이 곡선은 수학적으로는 매우 복잡하지만, 의외로 단순하고 우아한 모양으로 눈에 잘 띄어서 다양한 분야에 활용이 되는데요, 이 곡선은 보통 X축과 Y축으로 이루어진 second dimensions, catesian 좌표계에서 그려지게 됩니다.
조화운동의 주기, 진폭, 위상 등의 속성에 따라 곡선의 모양이 달라지게 됩니다.
예를 들어, 두 개의 운동이 같은 주파수로 진동하면 직선이 되고, 한 운동이 다른 운동보다 1/2 주기 늦게 시작하면 타원형이 됩니다. 이와 같이 여러 속성을 조합하여 다양한 모양의 리사주도형을 만들어낼 수 있습니다.
위 곡선에 대한 식은 아래와 같습니다.
저희는 위 식에서 a와b의 값 4가지를 배열에 넣어놓고, 델타의 값을 상수로 고정시킨뒤,
네개의 그래프가 어떻게 그려지는 확인해보도록 할 것입니다.
(리사주도형을 좀더 와닿게 이해하고 싶다, 또는 이 곡선으로 이것저걱 다뤄보고 싶다, 하는 분들은 아래 링로
들어가셔서, 12방향에서 두 힘이 시작될때, 3시방향에서 두 힘이 시작될때, 그리고 두 힘이 속도가 서로 같아서 동기적으로 움직일때와, 두 힘이 속도가 달라서 비동기적으로 움직일때에 대해 관찰해보시는 것을 추천드립니다.)
https://javalab.org/lissajous_figures/
리사주 도형 - 자바실험실
리사주 도형 리사주 도형은 매개 변수 t에 의해 x = A cos(Bt + C)y = D sin(Et + F) 의...
javalab.org
이제 본격적으로 파이썬으로 그래프그리기 작업에 들어가보겠습니다.
from numpy import sin,pi,linspace
from pylab import plot,show,subplot
a = [1,3,5,3] #plotting the curves of
b = [1,5,7,4] #different values of a/b
delta = pi/2
t = linspace(-pi,pi,300)
for i in range(0,4):
x = sin(a[i] * t + delta)
y = sin(b[i] * t)
subplot(2, 2, i+1)
plot(x,y)
show()
위 코드를 돌려보면 아래와 같은 창이 뜨게 될것입니다.
현재 위 그래프는 delta값을 pi/2로 설정했을때의 그래프들입니다.
이번에는 delta의 값을 변경해보도록 하겠습니다.
i) delta = pi/1
ii) delta = pi/3
iii) delta = pi/4
iiii) delta = pi/5
이번에는 배열 a, b의; 값을 바꿔보도록 하겠습니다.
만약, a=[1,2,2,1], b=[5,8,1,2], 그리고 델타값을 pi/4로 설정하다면,
from numpy import sin,pi,linspace
from pylab import plot,show,subplot
a = [1,2,2,1] #plotting the curves of
b = [5,8,1,2] #different values of a/b
delta = pi/4
t = linspace(-pi,pi,300)
for i in range(0,4): #0보다 크거나 같고 4보다 작다.(i=0,1,2,3)
x = sin(a[i] * t + delta)
y = sin(b[i] * t)
subplot(2, 2, i+1) #2행2열
plot(x,y)
show()
저도 이제 막 이부분에 대해서 이해하는 중이라;;ㅎㅎ;;
좀 더 이해를 하게 되고 나서, 상세하게 기술하도록 하겠습니다. 감사합니다ㅎㅎ

참고 및 출처:
https://glowingpython.blogspot.com/2011/12/lissajous-curves.html
'matplolib > 함수그래프' 카테고리의 다른 글
yfinance를 이용하여 애플주식에 대한 차트를 그려보자! (1) | 2023.09.08 |
---|---|
직렬 RLC회로에서 R값이 0으로 설정되었을때의 과제동응답의 전류/전압 그래프를 나타내보자! (0) | 2023.05.30 |
댓글