만델브로 탐험기베타
만델브로 집합을 끝없이 확대하고 클릭 한 번으로 쥘리아 집합까지 탐험
이 도구는 아직 안정화 중인 베타 버전입니다. 결과가 예상과 다르면 알려주세요.
마우스 휠이나 두 손가락 핀치로 확대하고, 드래그해서 이동하세요. 각 점 c 에 대해 z → z² + c 를 반복해 |z| 가 커지기까지 걸린 횟수로 색을 칠합니다(검정 = 끝까지 발산하지 않은 점, 즉 집합 내부). 로그를 이용한 부드러운 색칠로 띠가 매끄럽게 이어집니다. ‘쥘리아 c 고르기’를 누르고 만델브로 위를 클릭하면 그 c 로 만든 쥘리아 집합을 봅니다 — 만델브로 안쪽의 c 는 이어진 모양, 바깥쪽 c 는 먼지처럼 흩어진 모양이 됩니다. 64비트 실수 한계 때문에 약 28조 배(2.8 × 10¹³)에서 더 확대되지 않습니다.
처리 중…
0.0
멈춘 것이 아닙니다. 계산이 끝나면 결과가 표시됩니다.
만델브로 탐험기 소개
화면의 각 픽셀은 복소수 c 하나다. 도구는 z₀ = 0에서 시작해 z → z² + c를 반복하고, |z|가 256을 넘으면 그때까지의 반복 횟수로 색을 칠한다. 최대 반복 횟수 안에 한 번도 넘지 않으면 검은색, 즉 만델브로 집합에 속한다고 판정한다. 계산은 64비트 부동소수점(f64)으로 하고, 처음 화면은 중심 −0.6, 짧은 변 폭 2.8이다.
「클릭으로 쥘리아 c 고르기」를 눌러 만델브로 집합 위를 클릭하면 모드가 바뀐다. 이번에는 c를 고정하고 픽셀마다 시작점 z₀를 바꿔 같은 반복을 한다. 두 그림은 같은 식에서 무엇을 고정하느냐의 차이일 뿐이다.
집합의 정의와 「2를 넘으면 끝」인 이유
만델브로 집합은 0에서 출발한 z² + c의 궤도가 무한히 커지지 않는 c 전체다. 수학적으로는 |z|가 한 번이라도 2를 넘으면 그 뒤로는 반드시 무한대로 달아난다는 것이 증명되어 있어서, 판정에는 반지름 2면 충분하다. 이 도구가 256까지 기다리는 것은 판정 때문이 아니라 색을 부드럽게 칠하기 위해서다. |z|가 클수록 아래 설명할 보정 공식이 정확해진다.
몇 개를 손으로 따라가 보면 감이 온다. c = −1이면 0, −1, 0, −1…로 영원히 오가므로 집합 안이다. c = −2면 0, −2, 2, 2, 2…로 멈춰 있으니 역시 안이고, 집합이 실수축에서 −2까지 뻗는 이유다. c = 1이면 0, 1, 2, 5, 26, 677로 다섯 번째 반복에서 256을 넘는다.
만델브로는 1980년 논문에서 이 집합의 그림을 처음 널리 알렸고, 곧 두아디와 허버드가 이 집합에 「만델브로 집합」이라는 이름을 붙이고 연결성 같은 성질을 증명했다.
탈출 시간 알고리즘과 부드러운 색
반복 횟수 n을 그대로 색으로 쓰면 n이 정수라 색이 계단처럼 띠를 이룬다. 이 도구는 μ = n + 1 − log₂(log₂|zₙ|)로 소수점 이하를 보정한다. |z|가 커지면 매 반복마다 대략 제곱되므로, 탈출 순간에 |z|가 얼마나 컸는지를 보면 「실제로는 n과 n+1 사이 어디쯤에서 넘었는지」를 추정할 수 있다. 그래서 띠 경계가 사라진다.
속도를 위한 요령도 하나 있다. 주 카디오이드(가장 큰 심장 모양)와 그 왼쪽의 주기 2 원판 안쪽은 식 하나로 바로 판정할 수 있다. 여기는 최대 반복까지 돌아도 결국 검은색이 되는 곳이라, 계산을 건너뛰면 처음 화면이 훨씬 빨리 나온다.
최대 반복 횟수가 모자라면 생기는 일
검은색은 「집합 안」이 아니라 「최대 반복까지 탈출하지 않았다」는 뜻이다. 경계 근처에는 아주 오래 버티다 탈출하는 점이 많아서, 반복 횟수가 모자라면 바깥 점이 검게 칠해지고 가는 필라멘트가 뭉툭해 보인다.
재미있는 예가 해마 골짜기의 입구, c = −0.75 근처다. c = −0.75 + εi에서 탈출에 걸리는 반복 수에 ε를 곱하면 π에 가까워진다. 1991년 데이브 볼이 발견하고 클레바노프가 2001년 논문으로 정리한 현상이다. 기본값 500회로는 ε = 0.001인 점(실제로는 3,146회 만에 탈출)을 집합 안으로 잘못 칠한다. 「확대에 맞춰 자동」을 켜면 반복 수가 200 + 120 × (log₁₀ 배율)²로 늘어나며, 최대 20,000회다.
확대가 약 10¹³배에서 멈추는 이유
f64는 유효숫자가 53비트다. 1과 2 사이의 수는 약 2.2 × 10⁻¹⁶ 간격으로만 표현되고, 0.5와 1 사이는 그 절반이다. 이 도구는 화면 폭이 10⁻¹³ 밑으로 내려가지 않게 막아 두었는데, 캔버스가 800픽셀이라면 한 픽셀 간격이 1.25 × 10⁻¹⁶이 된다. 실수부 크기가 1을 넘는 지점(예: 해마 골짜기 왼쪽, c ≈ −1.25)에서는 이 간격이 표현 가능한 간격보다 작아져, 이웃 픽셀이 같은 수로 반올림되고 네모난 블록이 보이기 시작한다.
초고배율 동영상을 만드는 프로그램들은 기준점 하나만 임의 정밀도로 계산하고 나머지는 그 차이만 f64로 계산하는 섭동(perturbation) 기법 등을 쓴다. 이 도구는 브라우저에서 즉시 움직이는 것을 우선해 이 방법을 쓰지 않는다. 그래서 확대 한계는 약 2.8 × 10¹³배다.
쥘리아 집합: c를 어디서 고르느냐
c가 만델브로 집합 안이면 그 c의 쥘리아 집합은 한 덩어리로 이어진 모양이고, 바깥이면 흩어진 먼지(칸토어 집합)가 된다. 만델브로 집합은 「쥘리아 집합이 이어져 있는 c의 지도」라고 볼 수 있다. 경계 가까이에서 c를 고를수록 쥘리아 집합도 복잡해진다. 기본값 c = −0.8 + 0.156i는 경계 바로 근처의 점이다.
예시
c = 1을 이 도구 방식으로 계산
- 입력
c = 1 + 0i, 탈출 반지름 256- 결과
z: 0 → 1 → 2 → 5 → 26 → 677, n = 5에서 탈출, 부드러운 값 μ ≈ 2.77
μ = 5 + 1 − log₂(log₂ 677) = 6 − log₂(9.40) ≈ 6 − 3.23 = 2.77. 반복 횟수(5)보다 작은 값이 나오는 것은 공식의 보정 방식 때문이며, 색 순서만 맞으면 된다.
해마 골짜기 입구에서 π 찾기
- 입력
c = −0.75 + εi, ε = 0.1 / 0.01 / 0.001- 결과
탈출 반복 수 36 / 318 / 3,146 → ε를 곱하면 3.6 / 3.18 / 3.146
ε가 작아질수록 곱이 π = 3.14159…에 다가간다. 세 번째 점은 기본 최대 반복 500회에서는 검게 칠해지므로, 최대 반복을 5,000 이상으로 올려야 바깥이라는 것이 보인다.
실수축의 끝
- 입력
c = −2 와 c = −2.01- 결과
−2: 0, −2, 2, 2, 2…(안) / −2.01: 8번째 반복에서 탈출
집합은 실수축에서 정확히 −2까지다. −2.01은 0.01만 벗어났지만 궤도가 금방 커진다.
사용 방법
- 휠이나 두 손가락으로 확대하고, 끌어서 이동한다.
- 경계가 뭉개지면 최대 반복을 올리거나 「확대에 맞춰 자동」을 켠다.
- 「클릭으로 쥘리아 c 고르기」를 누르고 집합 위 한 점을 클릭한다.
- 색상 팔레트를 바꿔 반복 구조를 다르게 본다.
주요 용어
- 탈출 시간
- 궤도의 크기가 탈출 반지름을 처음 넘을 때까지의 반복 횟수.
- 주 카디오이드
- 집합 본체의 심장 모양 부분. 이 안의 c는 궤도가 한 점으로 수렴한다.
- 쥘리아 집합
- c를 고정했을 때 z² + c 반복이 발산하지 않는 시작점들의 경계.
- 배정밀도(f64)
- IEEE 754의 64비트 부동소수점 형식. 유효숫자 53비트, 십진 약 15~16자리.
자주 묻는 질문
만델브로 집합의 넓이는 얼마인가요?
정확한 값은 알려져 있지 않고, 수치 추정으로 약 1.5 정도라고만 알려져 있다. 이 도구는 넓이를 계산하지 않는다.
끝없이 확대할 수 있다는데 왜 멈추나요?
수학적으로는 경계를 무한히 확대할 수 있지만, 이 도구는 64비트 부동소수점을 쓰므로 픽셀 간격이 약 10⁻¹⁶에 가까워지면 서로 다른 픽셀을 구분할 수 없다. 그래서 약 2.8 × 10¹³배에서 확대를 막았다.
검은 부분은 모두 집합 안인가요?
최대 반복 안에 탈출하지 않았다는 뜻일 뿐이다. 경계 근처는 반복을 늘리면 검은 점 일부가 색을 얻는다.
확대할수록 계산이 느려지는 이유는?
깊이 들어갈수록 경계 근처 점이 많아지고 반복 수도 자동으로 늘어나기 때문이다. 도구는 8픽셀 블록, 2픽셀, 1픽셀 순서로 점점 선명하게 그려 화면이 멈추지 않게 한다.
출처
- B. B. Mandelbrot, Fractal aspects of the iteration of z → λz(1−z) for complex λ and z, Ann. N.Y. Acad. Sci. 357, 249–259 (1980)
- A. Klebanoff, π in the Mandelbrot set, Fractals 9(4) (2001)
- D. Goldberg, What Every Computer Scientist Should Know About Floating-Point Arithmetic (1991)
기준일: