Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
수학:코흐_곡선 [2022/01/16 22:15] – yong | 수학:코흐_곡선 [2022/01/17 16:23] – yong | ||
---|---|---|---|
Line 76: | Line 76: | ||
$d_{\rm sq}\,, d_{\rm dead}\,, d_{\rm cor}$는 0, $d_{\rm para}$는 1, $d_{\rm line}$는 11, $d_{\rm empty}$는 25의 고윳값을 가지는 것을 확인할 수 있다. | $d_{\rm sq}\,, d_{\rm dead}\,, d_{\rm cor}$는 0, $d_{\rm para}$는 1, $d_{\rm line}$는 11, $d_{\rm empty}$는 25의 고윳값을 가지는 것을 확인할 수 있다. | ||
- | 고유방정식의 의미를 생각해보면, | + | 고유방정식의 의미를 생각해보면, |
- | 다음으로 정수로 구성되는 고유벡터는, | + | |
- | \begin{align} | + | 한편 각 고유값에 대응되는 고유벡터는, |
- | \mathbf{d}_{\rm{sq}} =& \left( -1 ~~ 4 ~~ -4 ~~ 0 ~~ 0 ~~ 1 \right) \\ | + | \begin{equation*} |
- | \mathbf{d}_{\rm{dead}} =& \left( 0 ~~ 1 ~~ -2 ~~ 0 ~~ 1 ~~ 0 \right) \\ | + | \begin{aligned} |
- | \mathbf{d}_{\rm{cor}} | + | \mathbf{d}_{\rm{sq}} =& |
- | \mathbf{d}_{\rm{para}} =& \left( 0 ~~ 1 ~~ -1 ~~ 1 ~~ -3 ~~ 2 \right) \\ | + | \mathbf{d}_{\rm{dead}} =& |
- | \mathbf{d}_{\rm{line}} =& \left( 0 ~~ -98 ~~ -112 ~~ -28 ~~ -196 ~~ 379 \right) \\ | + | \mathbf{d}_{\rm{cor}} |
- | \mathbf{d}_{\rm{empty}} =& | + | \end{aligned} |
- | \end{align} | + | \qquad |
+ | \begin{aligned} | ||
+ | \mathbf{d}_{\rm{para}} =& | ||
+ | \mathbf{d}_{\rm{line}} =& | ||
+ | \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:// | ||
+ |