Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Next revisionBoth sides next revision | ||
수학:코흐_곡선 [2022/01/16 17:29] – created yong | 수학:코흐_곡선 [2022/01/17 16:23] – yong | ||
---|---|---|---|
Line 20: | Line 20: | ||
{{ : | {{ : | ||
+ | |||
+ | 마찬가지로 다음 변환을 진행하기 위해, 가로 및 세로의 길이를 5배 늘리고, 변환 I를 진행하여 그림을 그릴 수 있을 것이다. 하지만 앞의 선의 경우와 달리 | ||
+ | 면을 형성하고 있어 다소 복잡하므로, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 외부는 신경쓰지 않고, 내부에서 형성되는 사각형을 살펴보면, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 번호순대로 모양별 사각형을 square, dead-end, corner, parallel, line, empty라고 부르자. 오른쪽에 그려진 도형은 각 도형별로 변환 I를 거쳤을 때 | ||
+ | 생각할 수 있는 그림이다. | ||
===== 선형 분석 ===== | ===== 선형 분석 ===== | ||
Line 25: | Line 37: | ||
\begin{equation} | \begin{equation} | ||
- | \vec{d}_{sq} \quad \vec{d}_{dead} \quad \vec{d}_{cor} \quad \vec{d}_{para} \quad \vec{d}_{line} \quad \vec{d}_{empty} | + | \mathbf{d} = \left( d_{\rm sq}\,, d_{\rm dead}\,, d_{\rm cor}\,, d_{\rm para}\,, d_{\rm line}\,, d_{\rm empty} |
\end{equation} | \end{equation} | ||
+ | |||
+ | 위 식의 기저를 순서로 하여, 도형 변환 I와 크기 변환 S의 행렬 SI를 아래와 같이 구성할 수 있을 것이다. | ||
+ | |||
+ | \begin{align} | ||
+ | SI = | ||
+ | \begin{pmatrix} | ||
+ | 0 & 0 & 0 & 0 & 0 & 0 \\ | ||
+ | 8 & 5 & 3 & 2 & 1 & 0 \\ | ||
+ | 4 & 4 & 3 & 4 & 2 & 0 \\ | ||
+ | 4 & 2 & 1 & 0 & 0 & 0 \\ | ||
+ | 4 & 6 & 5 & 8 & 4 & 0 \\ | ||
+ | 1 & 5 & 11 & 9 & 17 & 25 | ||
+ | \end{pmatrix} | ||
+ | \end{align} | ||
+ | |||
+ | 따라서 n-1번의 변환을 거친 프랙탈에 대해 아래와 같은 선형 방정식을 세울 수 있다. | ||
+ | |||
+ | \begin{equation} | ||
+ | \mathbf{d}_{n} = SI \mathbf{d}_{n-1} = SI^{n-1} \mathbf{d}_1 \qquad (n \geq 2) | ||
+ | \end{equation} | ||
+ | |||
+ | 하지만 이는 편의상 우리가 살펴보는 직교좌표계의 행렬이므로, | ||
+ | 행렬 SI를 대각화하면 | ||
+ | |||
+ | \begin{align} | ||
+ | D= | ||
+ | \begin{pmatrix} | ||
+ | 0 & 0 & 0 & 0 & 0 & 0 \\ | ||
+ | 0 & 0 & 0 & 0 & 0 & 0 \\ | ||
+ | 0 & 0 & 0 & 0 & 0 & 0 \\ | ||
+ | 0 & 0 & 0 & 1 & 0 & 0 \\ | ||
+ | 0 & 0 & 0 & 0 & 11 & 0 \\ | ||
+ | 0 & 0 & 0 & 0 & 0 & 25 | ||
+ | \end{pmatrix} | ||
+ | \end{align} | ||
+ | |||
+ | $d_{\rm sq}\,, d_{\rm dead}\,, d_{\rm cor}$는 0, $d_{\rm para}$는 1, $d_{\rm line}$는 11, $d_{\rm empty}$는 25의 고윳값을 가지는 것을 확인할 수 있다. | ||
+ | 고유방정식의 의미를 생각해보면, | ||
+ | |||
+ | 한편 각 고유값에 대응되는 고유벡터는, | ||
+ | \begin{equation*} | ||
+ | \begin{aligned} | ||
+ | \mathbf{d}_{\rm{sq}} =& \, \left( -1 ~~ 4 ~~ -4 ~~ 0 ~~ 0 ~~ 1 \right) \\ | ||
+ | \mathbf{d}_{\rm{dead}} =& \, \left( 0 ~~ 1 ~~ -2 ~~ 0 ~~ 1 ~~ 0 \right) \\ | ||
+ | \mathbf{d}_{\rm{cor}} =& \, \left( 1 ~~ -2 ~~ 0 ~~ 1 ~~ 0 ~~ 0 \right) | ||
+ | \end{aligned} | ||
+ | \qquad | ||
+ | \begin{aligned} | ||
+ | \mathbf{d}_{\rm{para}} =& \, \left( 0 ~~ 1 ~~ -1 ~~ 1 ~~ -3 ~~ 2 \right) \\ | ||
+ | \mathbf{d}_{\rm{line}} =& \, \left( 0 ~~ -98 ~~ -112 ~~ -28 ~~ -196 ~~ 379 \right) \\ | ||
+ | \mathbf{d}_{\rm{empty}} =& | ||
+ | \end{aligned} | ||
+ | \end{equation*} | ||
+ | 고유벡터로 구성되는 행렬 Q를 $Q = \left( \mathbf{d}_{\rm{sq}}\,, | ||
+ | 으로 구성하면 대각화의 성질을 이용하여 n번의 변환을 거친 프랙탈 기본 구성 사각형의 총 개수를 얻을 수 있다. 즉, | ||
+ | \begin{equation*} | ||
+ | SI^{n} = \left( QDQ^{-1} \right)^{n} = QD^{n}Q^{-1} | ||
+ | \end{equation*} | ||
+ | python을 이용하여 그래프를 그리면 다음을 얻을 수 있다. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | <code Python | fractalstep.py> | ||
+ | import numpy as np | ||
+ | import numpy.linalg as lin | ||
+ | import matplotlib.pyplot as plt | ||
+ | |||
+ | matrix = np.array( | ||
+ | [[0, | ||
+ | [8, | ||
+ | [4, | ||
+ | [4, | ||
+ | [4, | ||
+ | [1, | ||
+ | ) | ||
+ | |||
+ | steps = 10 | ||
+ | eigval, eigvec = lin.eig(matrix) | ||
+ | diagmat = np.zeros((6, | ||
+ | np.fill_diagonal(diagmat, | ||
+ | diagmat0 = diagmat | ||
+ | sum_mat = np.zeros((6, | ||
+ | for i in range(steps): | ||
+ | A = eigvec @ diagmat @ lin.inv(eigvec) | ||
+ | for j in range(6): | ||
+ | sum_mat[j][i] = np.sum(A[j]) | ||
+ | diagmat = diagmat0 @ diagmat | ||
+ | |||
+ | x = np.arange(1, | ||
+ | label = [' | ||
+ | for i in range(6): | ||
+ | plt.plot(x, sum_mat[i], label=label[i]) | ||
+ | plt.yscale(' | ||
+ | plt.plot((2, | ||
+ | log_5_11=np.log(11)/ | ||
+ | plt.plot((2, | ||
+ | plt.xlabel(' | ||
+ | plt.ylabel(' | ||
+ | plt.legend() | ||
+ | plt.savefig(' | ||
+ | </ | ||
+ | |||
+ | ====== 함께 보기 ====== | ||
+ | * [[물리: | ||
+ | * [[http:// | ||
+ | |||
+ |