더북(TheBook)

프로그램 1.5.6 함수 그래프 (functiongraph.py)

import math
import sys
import stdarray
import stddraw
 
n = int(sys.argv[1])
 
x = stdarray.create1D(n+1, 0.0)
y = stdarray.create1D(n+1, 0.0)
 
for i in range(n+1):
    x[i] = math.pi * i / n
    y[i] = math.sin(4.0*x[i]) + math.sin(20.0*x[i])
 
stddraw.setXscale(0, math.pi)
stddraw.setYscale(-2.0, +2.0)
 
for i in range(n): 
    stddraw.line(x[i], y[i], x[i+1], y[i+1])
 
stddraw.show()
n
x[]
y[]
샘플 수 
x 좌표들
y 좌표들

이 프로그램은 명령 줄 인수로 정수 n을 입력받고 x축의 0에서 까지를 동일 간격으로 n+1개의 점을 샘플링해 y = sin(4x) + sin(20x) 함수의 그래프를 불연속 선형 보간법을 이용해 그린다. 이 프로그램을 실행해보면 샘플 수를 선택할 때 주의해야 함을 알 수 있다. 단지 20개의 샘플만 선택한 왼쪽 그래프에서는 곡선의 굴곡이 많이 빠져 있음을 알 수 있다.

% python3 functiongraph.py 20

% python3 functiongraph.py 200

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.