극방정식 r^2 = cos( 2 theta )
또는 직교방정식 (x^2 + y^2)^2 = x^2 - y^2
으로 주어진다. 이 곡선은 철도 공사나 도로 공사시 곡선형 도로를 만들 때
원심력을 줄이기위한 방편으로 사용되기도 한다.
이제 이 곡선을 여러가지 도구
Mathematica, Maxima, Grapher, Gnuplot, Octave, Matplotlib
들로 각각 그려보자.
* 윈도우 XP 에서 Mathematica 8 을 이용하여 그리기
* 윈도우 XP 에서 wxMaxima 를 이용하여 연주형 곡선 그리기
1) 직교방장식 (x^2 + y^2)^2 = x^2 - y^2 의 곡선
2) 극방정식 r^2 = cos(2 theta) 의 곡선
** 그리기 명령 입력
** 위의 명령으로 별도의 창에 그려진 연주형 곡선(lemniscate)
* Mac OS X Lion 에서 Grapher 를 이용하여 그리기
1) 직교방정식의 연주형 곡선 그리기
2) 극방정식의 연주형 곡선 그리기
* Gnuplot 을 이용하여 연주형 곡선 그리기
1) 직교방정식의 연주형 곡선 그리기
** 윈도우 XP 에서 Gnuplot 을 실행시켜서 그리기 명령을 입력한 화면
** 위의 명령으로 Gnuplot 이 그려준 곡선
1) 극방정식의 연주형 곡선 그리기
** Gnuplot 소스
set clip points
unset border
set dummy t,y
unset key
set polar
set samples 1600, 1600
set xzeroaxis linetype 0 linewidth 1.0
set yzeroaxis linetype 0 linewidth 1.0
set zzeroaxis linetype 0 linewidth 1.0
set xtics axis in scale 1,0.5 nomirror norotate offset character 0, 0, 0 autofreq
set ytics axis in scale 1,0.5 nomirror norotate offset character 0, 0, 0 autofreq
set title "Lemniscate"
set trange [ 0.0 : 2*pi ] noreverse nowriteback
set xrange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
set yrange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
Lemniscate(x) = sqrt(cos(2*x))
plot 1, 0.5, Lemniscate(t)
** 윈도우 XP 에서 Gnuplot 을 실행시켜서 그리기 명령을 입력한 화면
** 위의 명령으로 Gnuplot 이 그려준 곡선
* Octave 를 이용하여 그리기
1) 직교방정식의 연주형 곡선 그리기 (소스)
** 위의 명령으로 Octave 가 그려준 곡선
2-1) 극방정식의 연주형 곡선 그리기 (소스)
polar(t, sqrt(cos(2*t)));
** 위의 명령으로 Octave 가 그려준 곡선
2-1) 극방정식의 연주형 곡선 그리기 (소스)
polar(t, sqrt(cos(2*t)));
** 위의 명령으로 Octave 가 그려준 곡선
* Matplotlib 를 이용하여 그리기
1) 직교방정식의 원주형 곡선 그리기
** 파이썬 소스
#!/usr/bin/env python
"""
An example which plots the graph of an implicit function.
Plot the lemniscate.
"""
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
delta = 0.01
x = np.arange(-1.1, 1.1, delta)
y = np.arange(-1.1, 1.1, delta)
X, Y = np.meshgrid(x, y)
Z = (X**2 + Y**2)**2 - X**2 + Y**2
# Set negative contours to be solid iine.
matplotlib.rcParams['contour.negative_linestyle'] = 'solid'
plt.figure()
CS = plt.contour(X, Y, Z, 1, colors='k')
plt.title("Lemniscate")
plt.show()
** 위의 소스를 실행시켜서 그린 그래프
2) 극방정식의 원주형 곡선 그리기
** 파이썬 소스
#!/usr/bin/env python
"""
An example which plots the graph of an implicit function.
Plot the lemniscate.
"""
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
delta = 0.01
x = np.arange(-1.1, 1.1, delta)
y = np.arange(-1.1, 1.1, delta)
X, Y = np.meshgrid(x, y)
R = np.sqrt(X**2 + Y**2)
T = np.arctan(Y/X)
Z = R**2 - np.cos(2*T)
# Set negative contours to be solid iine.
matplotlib.rcParams['contour.negative_linestyle'] = 'solid'
plt.figure()
CS = plt.contour(X, Y, Z, 1, colors='k')
plt.title("Lemniscate")
plt.show()
** 위의 소스를 실행시켜서 그린 그래프
'학습 > 수학' 카테고리의 다른 글
4엽장미 곡선(quadrifolium) 그리기 (0) | 2011.09.16 |
---|---|
심장형 곡선(cardioid) 그리기 (0) | 2011.09.16 |
삼각함수의 그래프 그리기 및 제거가능 특이점 (2) / y = x sin(1 over x) 의 그래프 그리기 (0) | 2011.09.15 |
삼각함수의 그래프 그리기 및 제거가능 특이점 (1) / sin(x) over x 그리기 (0) | 2011.09.14 |
직교방정식으로 그려보는 사이클로이드(cycloid) (0) | 2011.09.11 |