Fractal graphic(이하 프랙탈)의 집합에는 Mandelbrot, Jilua, Newton, Lorenz 등 수많은 집합이 있습니다.
이런 유명한 집합들은 간단한 방식(짧은 수식 한두 개로써!)으로 아름답고 화려한 그림을 보여줍니다.
프랙탈은 자연계에 존재하는 무한반복의 특성을 수식으로 표현하는 방식입니다.
이러한 무한반복 특성을 순환성(Recursiveness)과 자기 유사성(Self-similarity)으로 정의합니다.
너무 어렵다구요? 아래의 그림들을 보시면 그렇게 어렵지만은 않다는 것을 알 수 있을 것입니다.
Fractal, himself
Benoît Mandelbrot라는 박사님이 계십니다.
이 분께서 바로 Fractal이라는 용어를 만드신 분이십니다. (박수 짝짝짝)
이 분께서 1975년 어느 날 IBM에서 일하시면서 다음의 간단한 수학식을 놓고 연구하고 계셨습니다.
Z = Z²+C
이 수식이 바로 Mandelbrot Set입니다.
복소평면의 각 좌표 Z에서 위의 수식을 무한히 반복하였을 때 각 좌표의 점이 발산하는가 수렴하는가 그리고, 수렴한다면 얼마로 수렴하는가를 복소평면 위에 그려봤는데, 의외의 결과가 나온 것입니다.
(물론, 이 분께는 의외가 아니었겠죠. 평범한 사람들에게 의외란 뜻입니다)
Mandelbrot의 기본 Set는 실수 -2.5~1.5, 허수 -1.5~1.5의 복소평면 위에 그려집니다.
즉, 아래와 같은 복소좌표계에서 각 점에 대해서 같은 수식을 계속 반복한 결과를 색으로 표시한 것입니다.
y=ax+b가 아닙니다. 복소평면입니다.
Mandelbrot set에 대해서 좀 더 궁금하신 분은 Wikipedia를 읽어보시기 바랍니다.
Stone Soup라는 말의 어원은 동화에 나오는 "돌국"이야기 입니다.
어느 지방에 기근이 들었을 때 지나가던 나그네가 돌을 꺼내 국을 끓이면서 마을사람들이 숨겨놓은 재료들을 하나씩 집어넣도록 설득해서 결국 모든 마을사람들이 맛있는 국을 먹을 수 있었다는 이야기가 이름의 어원입니다.
즉, 사람들의 지혜를 모아서 좋은 프로그램을 만들자는 뜻을 담고 있습니다.
당시만 해도 coprocessor가 많이 장착되지 않았습니다. 이 프로그램은 이 사실을 고려해서 가능한 모든 허수 계산을 정수로 계산하도록 만들어졌습니다.
DOS에서 동작하던 이 프로그램은 당시의 척박한 환경에서 정말 빠르게 동작하는 프랙탈 그래픽 도구로 명성을 날립니다. 또한 오픈소스로 개발되어 여러 환경으로 이식되었습니다. 물론, Windows로도 이식되었습니다.
그리고, 평면에 대해서는 좀 더 빠른 알고리즘을 연구하였고 특히, Boundary pass(단축키 x-b)는 특이한 알고리즘으로 대단히 빠른 결과를 보여줬습니다.
012
Fractint로 Newton set(degree=3)을 그리는 과정 (boundary pass)
이 프로그램(정확히는 DOS용 Fractint)은 지금 사용하기에도 무리가 없는 프로그램입니다.
명확한 그리고, 사용에 정확하게 최적화된 인터페이스도 일품입니다.
하지만, 약간의 단점이 있습니다.
최근, 20.0 발표 이후로 추가적인 개발 소식이 없어서 아쉬웠는데, 그 사이에 Ultra Fractal이라는 상용 프로그램이 나와있었습니다. 2008년 1월 현재 4.04까지 나와있고, 홈페이지에서 free trial 버전도 다운받을 수 있습니다.
1달의 사용제한기한이 있기는 하지만, Fractint와 비교했을 때 엄청난 성능을 보여줍니다.
01
Mandelbrot set (default)
01
Newton set (degree=5)
정확하게 같은 수식을 같은 범위에 대해서 같은 크기(1024x768)로 출력한 결과입니다.
정말 멋있고 아름답지 않나요?
마지막으로, 맨 위에 Fractint의 boundary pass를 설명하기 위해 표시한 Newton set(degree=3)의 Ultra Fractal 버전은 아래와 같습니다.
Ultra Fractal로 그린 Newton set(degree=3)
수학이 지루하고, 재미없으며, 그래프가 보기 싫다면 Fractal graphic으로 눈을 돌려보시기 바랍니다.
단순한 수식 1~2개가 너무나 아름답고 환상적인 그림으로 변하는 것을 볼 수 있습니다.
p.s. 사실, 이런 개념을 최초로 생각한 것은 Mandelbrot가 아니라 Gaston Julia라는 프랑스 수학자입니다.
이 분께서는 무려 1918년에 유사한 개념을 생각했습니다.
그 시기엔 (그 분께는) 컴퓨터가 없다는 것이 문제였죠. (Mandelbrot 박사님은 IBM 연구원…)
Recent comment