거북이로 코흐 눈송이 그리기
수학이야기 2017. 7. 23. 20:45코흐 눈송이를 그리기에 앞서 코흐 곡선을 그리자. 코흐 곡선은 아래와 같은 일을 되풀이하면 된다.
0단계 : 주어진 길이(len)의 선분이 있다.
1단계 : 주어진 선분을 3등분 하고 가운데 삼각형 모양 홈을 만든다.
>>> def ks(len,d):
if d==0:
t.fd(len)
else:
len=len/3
d=d-1
ks(len,d)
t.rt(60)
ks(len,d)
t.lt(120)
ks(len,d)
t.rt(60)
ks(len,d)
길이(len)와 단계(d)를 변수로 하는 함수를 정의한다.
if : 단계(d)가 0이면 주어진 길이 선분을 그린다.
else : 단계가(d) 0이 아니라면 단계를 줄여가면 0이 될 때까지 선분을 3등분 한 길이로 같은 그림을 그린다.
코흐 곡선을 되풀이하여 그리면 코흐 눈송이가 된다.
>>> def kss(len,d):
for i in range(3):
ks(len,d)
t.lt(120)
위에 있는 코흐 곡선과 눈송이는 대표적인 프랙탈 도형이다.
먼저 코흐 곡선 길이를 구해보자.
$0$단계 길이를 $a$라고 하면 $1$단계는 $\displaystyle{\frac{4}{3}a}$이다. 단계별로 같은 비율로 늘어나는 등비수열을 이룬다.
따라서 $n$단계 길이를 $l_n$이라고 하면
$$l_n=\bigg(\frac{4}{3}\bigg)^n a$$
이므로 $$\lim_{n\rightarrow \infty}l_n=\infty$$
다음으로 코흐 눈송이 넓이를 구해보자.
$0$단계 넓이를 $S$라고 하면 $1$단계 넓이는 $\displaystyle{\frac{1}{9}S}$인 삼각형이 $3$개 더해진다.
$2$단계는 넓이가 $\displaystyle{\bigg(\frac{1}{9}\bigg)^2S}$인 삼각형이 $3\cdot 4$개 늘어난다.
$n$단계 넓이를 $S_n$이라고 하면
$$S_n =S+3\cdot \bigg(\frac{1}{9}\bigg)S+3\cdot 4\cdot \bigg(\frac{1}{9}\bigg)^2 S+\cdots+3\cdot 4^{n-1}\cdot\bigg(\frac{1}{9}\bigg)^nS=S+\frac{3}{5}S\bigg[1-\bigg(\frac{4}{9}\bigg)^{n}\bigg]$$
$$\lim_{n\rightarrow\infty}S_n=\frac{8}{5}S$$
코흐 눈송이를 둘러싸고 있는 곡선은 길이는 무한대로 발산하지만 넓이는 수렴한다. 뭔가 독특하지 않은가! 프랙탈 도형은 차원이 분수 차원이 된다.