프로그램 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 |
![]() |
![]() |