Visual Studio Code 설치 (Windows)
Visual Studio Code 설치 (Mac)
Visual Studio Code.app
아이콘을 'Applications' 폴더로 드래그하여 설치합니다.Python 설치 (Windows)
python3 --version
과 pip3 --version
을 입력하여 파이썬과 pip이 정상적으로 설치되었는지 확인할 수 있습니다.Python 설치 (Mac)
python3 --version
과 pip3 --version
을 입력하여 파이썬과 pip이 정상적으로 설치되었는지 확인할 수 있습니다.NumPy, Matplotlib 설치
pip3 install numpy matplotlib
python3 -c "import numpy; print(numpy.__version__)"
python3 -c "import matplotlib; print(matplotlib.__version__)"
PTF_static_1by1_H.py
라는 이름으로 지정하세요.python3 PTF_static_1by1_H.py
mytetration_x_0_y_0_eps_5.png
라는 이름의 이미지 파일이 생성됩니다 :n
은 x축의 화소수를 결정합니다. 16:9 비율에서 n=3840
으로 설정하면 4K화질로 출력할 수 있습니다. rendering시간은 컴퓨터 사양에 따라 상당한 차이가 있으며, 원하는 화질과 rendering시간을 고려하여 적절한 n
값을 설정하세요.x0
와 y0
는 이미지 중심의 (x,y)좌표이며 eps
는 출력범위를 설정합니다. x축방향으로의 출력범위는 x0-eps부터 x0_eps까지 입니다.x0
, y0
에 입력하고, 확대정도는 eps
변수를 통해 재설정 할 수 있습니다. eps=1e-1
은 10-1를 뜻하며, 1.234×10-12를 입력하고 싶다면, eps=1.234e-12
로 수정하면 됩니다.eps_y
를 통해 변경 할 수 있습니다. 1:1, 16:9, 4:5비율에 대해서는 [Power Tower Fractal (static)] 폴더에 별도의 code를 만들어 두었습니다.eps_y
를 조절하시면 됩니다.#mytetration
과 함께 업로드 해주세요. 그것이 해쉬태그를 통한 분류기능을 공식지원 하지 않는 플랫폼이더라도, #mytetration
은 tetration컨텐츠들을 이어주는 강력한 거미줄 역할을 해 줄 것입니다.x0
, y0
, eps
값을 반드시 기재해주세요. PTF의 패턴은 무한히 다양해서, 그런 정보가 없으면 해당이미지의 plot범위를 알기가 매우 어렵습니다.#mytetration
으로 공유해 주세요. 당신의 그런 홛동은 인류 수학지식에 큰 기여일 수 있습니다.확대 한계 (zoom-in limit)
eps
가 10-13을 넘어가면서 픽셀화되고, 확대 animation은 그 움직임이 불안정해 집니다. (참조영상)PTF 확대영상 만들기
eps
를 통해 10배정도씩 확대해 들어가세요. 그 작업을 반복하면서 원하는 지점까지 확대해 들어가서 최종목표좌표 (px_target
,py_target
)을 설정합니다.zoom-factor
를 가능한 1에 가깝게 해야 합니다. 하지만 그렇게 되면 최종 확대지점까지 필요한 총 frame 수가 늘어나게 되고 rendering 시간도 그만큼 늘게됩니다. 경험상, 4K해상도로 600~700frame 정도 rendering 하는데 왠만한 고성능 컴퓨터도 1주일을 훌쩍 넘어갈겁니다. 컴퓨터 여러대를 동시에 돌리는등 frame을 나누어서 rendering 하고자 한다면, start_frame
과 end_frame
을 통해 시작과 끝 frame을 따로 설정해줄 수 있습니다.파워타워함수는 무한층의 tetration 이므로, 이론적으로 max_iter
의 값은 무한대여야 합니다. 하지만 어떤 컴퓨터도 '무한'을 계산할수는 없으므로, 적절한 한계를 정해줘야 합니다. eps
가 10-5 정도에서는 max_iter = 500
정도면 충분해 보입니다. 그 이상의 층을 계산해도 결과이미지는 크게 차이나지 않습니다. 하지만 확대 order가 커질수록 max_iter
의 값에 따라 눈에띄는 차이가 보이는데요, 관련한 결과 이미지와 코멘트는 이전 블로스 포스팅을 참조 바랍니다.
저는 수학을 업으로 하는 사람이 아님에도, 알려지지 않은 tetration의 새로운 몇몇 구조들을 어렵지 않게 발견 할 수 있었습니다. 최근에 발견한 한가지를 소개드립니다 : √2의 무한층은 그 값이 2입니다. 이때 가장 윗층을 변수 x로 두면, x가 2보다 작을때는 함수가 2로 수렴하고, x가 2일 때는 그 값이 4이고, 2보다 클때는 무한대로 발산합니다. 이러한 사실은 'cobweb plot'이라는 간단한 그래프분석을 통해 알 수 있는데요 - 상세한 설명은 관련한 블로그 포스팅이 있으니 참조바랍니다. Power Tower Fractal을 재밋게 가지고 놀던 경험이 있던 저는, 당연히 그 함수의 수렴/발산지도가 복소평면에서 어떻게 그려지는지가 궁금했습니다. 그리고 저는 기존 PTF코드을 바탕으로 바로 새로운 코드를 짤 수 있었고, 다음과 같은 결과를 얻을 수 있었죠 :
이어서 프랙탈 확대영상도 만들었는데요, 제가 아는한 이런 함수에 대해 수렴/발산지도를 출력한 사례는 없습니다.이는 하나의 단편적 사례입니다. 저는 기존에 알려져 있지 않은 Power Tower Fractal의 특정영역을 확대 해 들어가면서, 완전히 새로운 패턴들을 발견 할 수 있었습니다.
이런 경험 속에서 저는, tetration 속엔 인류가 전혀 본적 없는 패턴들로 가득차있음을 느꼈습니다. 패턴 뿐아니라, color도 입힐 수 있습니다. tetration에 대한 위키피디아 문서를 보면, 'period'와 'escape'을 기준으로 PTF의 영역들을 색상으로 나운 이미지가 있습니다[^3]. 이런식으로 얼마든지 tetration에 대한 새롭고 다양한 이미지들을 만들어 볼 수 있을 겁니다. 여러분의 탐구를 위해 도움이 될 수 있는 참조사이트나 문헌몇가지를 소개 드립니다 :
다음은 지금까지 publish된 DMT PARK의 tetration 관련 포스팅과 영상 입니다 :
[^1]: 다른 IDE를 사용하셔도 됩니다. 초보자분들을 위해 대표적인 프로그램을 선정한것입니다. [^2]: Peter Lych 교수의 논문을 보면, PTF이 망델브로트 프랙탈보다 계산이 어려운 근본적 이유가 있는듯 보입니다. 필자는 아직 그 이유를 이해하진 못했지만, 망델브로트 프랙탈 확대영상처럼 시원시원하게 확대되는 PFT 확대영상을 만들고자 한다면 상당한 연구와 노력이 필요할 것으로 보입니다. [^3]: DMT PARK의 tetration 영상을 보면, 특정 복소수의 무한층 tetration은 여러개의 값으로 수렴하기도 합니다. 아마 'period'라는 것은 수렴값의 갯수에 따라 색을 입힌것 같고, 'escape'은 얼마나 빠르게 발산하는지를 기준으로 색을 나눈것으로 보입니다.