데이터 재료과학 보충 실습

고유값과 데이터 분석을 포함한 보충 학습 자료

8. Week6

이 자료에서 $[\boldsymbol A]$, $[\boldsymbol x]$는 행렬·벡터의 성분 배열을 뜻하며, 배열의 행렬곱은 $[\boldsymbol A][\boldsymbol x]$처럼 붙여 쓴다. 물리적 벡터·텐서의 단일수축은 $\cdot$로 표시한다.

8.1. 수업 06-1 (Eigenvalue)

8.1.1. 개념

8.1.2. 선형 변환(linear transformation; linear map)

8.1.2.1. 선형변환 조건

<img src=https://upload.wikimedia.org/wikipedia/commons/4/43/Streckung_eines_Vektors.gif />

<img src=https://upload.wikimedia.org/wikipedia/commons/2/25/Streckung_der_Summe_zweier_Vektoren.gif />

<img src=https://upload.wikimedia.org/wikipedia/commons/e/e6/Streckung_homogenitaet_Version_3.gif />

** Wikipedia 발췌 이미지

8.1.2.2. 선형변환 특성

8.1.3. 고유값의 기하하적 의미

고유값의 기하학적 의미를 파악해보자. 다음과 같은 행렬의 경우를 살펴보자. 다음의 여러 행렬들에 의한 벡터(점)의 변환을 살펴보자. 그리고 빨간 선과 (표기되어 있다면) 파란 선 위의 점들이 다른 점들과 어떠한 차이가 있는지 눈여겨 살펴보자.

eigen1

eigen2

eigen2

위 세 경우와 달리, 아래 경우는 조금 특별하다. 특성값이 복소수 \(\lambda_1=0.71+0.71i,\) 그리고 \(\lambda_2=0.71-0.71i\) 임을 눈여겨 보자.

eigen3

8.1.4. 고유값 (Eigenvalue), 고유벡터 (Eigenvector) 구하기.

역학에서 변위구배텐서(displacement gradient tensor) $\boldsymbol u$라는 물리량을 활용해, 변형 전 후의 위치변화를 다음과 같이 위치를 나타내는 벡터 변환으로 나타낸다.

\[\boldsymbol v^{new}=\boldsymbol u \cdot \boldsymbol v^{old}\]

이때, 변위구배텐서의 eigen value를 활용해 변형의 을 가늠해볼 수 있다. 2차원 변위구배텐서의 특성값을 각각 $\lambda_1, \lambda_2$라 한다면, 경우에 따라 (회전이 거의 없다면) $\lambda_1-1$과 $\lambda_2-1$은 꽤 괜찮은 변형의 정도를 나타내는 지표가 될 수 있다. 여기서 1을 빼는 이유는 무엇일까?

신분제가 공고하던 조선 시대에서도 양반노비 계층간의 변화가 일어나곤 했다 (참고). 매우 불안정했던 가상의 조선시대에 매년 역적으로 몰린 양반의 20%가 노비가 되고, 노비 중 10%가 큰 부를 쌓아 양반으로 신분상승을 했다고 가정하자.

stateDiagram-v2

Yangban(YB) --> Nobi(NB) : 20%
Nobi(NB) --> Yangban(YB): 10%

해가 거듭 될 수록 달라지는 양반(YB)과 노비(NB)의 상관 관계를 수식으로 표현하자면 아래와 같다.

\[YB_{(n+1)} = 0.80 YB_{(n)} + 0.10 NB_{(n)}\] \[NB_{(n+1)} = 0.20 YB_{(n)} + 0.90 NB_{(n)}\]

여기서 첨자 ${n}$과 ${n+1}$은 각각 직전 해, 그리고 다음해에 해당하는 노비와 양반을 가리킨다. 위 연립 방정식을 아래와 같이 행렬식으로 나타낼 수 있겠다.

\[\begin{bmatrix} YB_{(n+1)} \\ NB_{(n+1)} 9. \end{bmatrix} = \begin{bmatrix} 0.90& 0.01 \\ 0.02& 0.95 \end{bmatrix} \begin{bmatrix} YB_{(n)} \\ NB_{(n)} \end{bmatrix}\]

예들 들어, 양반과 노비의 인구수가 첫해($n=0$)에 8명 vs 2명 이었다고 가정하자. 그 다음해에는

\[\begin{bmatrix} YB_{(1)} \\ NB_{(1)} 10. \end{bmatrix} = \begin{bmatrix} 0.8& 0.1 \\ 0.2& 0.90 \end{bmatrix} \begin{bmatrix} 8 \\ 2 11. \end{bmatrix} = \begin{bmatrix} 6.60 \\ 3.40 \end{bmatrix}\]

그리고 그 다음에는

\[\begin{bmatrix} YB_{(2)} \\ NB_{(2)} 12. \end{bmatrix} = \begin{bmatrix} 0.8& 0.1 \\ 0.2& 0.90 \end{bmatrix} \begin{bmatrix} 6.60 \\ 3.40 13. \end{bmatrix} = \begin{bmatrix} 5.62 \\ 4.38 \end{bmatrix}\]

이렇게 차례로 시간이 더욱 지나고 나면 3.34, 6.66으로 수렴된다. 하지만 초기 세팅이 8대2가 아니라 8대 4였다면 4대 8로 바뀌게 된다. 위 경우를 포함해 양반대 노비의 비율이 각기 다를경우에도 시간이 충분히 지나면, 규칙성 있게 바뀌게 된다. NBYB

다음 몇몇 선형변환 매트리스와 그에 해당하는 Eigenvector와 Eigenvalue가 보여주는 변화를 살펴보자 egenflow1 egenflow2 egenflow3 egenflow3


8.2. 수업 06-2 (ANN, Activation)

9. Week7

9.1. 수업 07-1

9.2. 수업 07-2

10.2. Crystal symmetry

10.3. 수업 08-2 (np.meshgrid, np.mgrid, grid, contouring)

12. Week10 (Matplotlib + Hall-petch equations, Creep data)

12.1. 수업 10-1 (Creep data)

12.2. 수업 10-2 (Contouring)

13. Week11

13.1. 수업 11-1 (무게비 원자비 변환)

13.2. 수업 11-2

14.2. 수업 12-2

15. Week13

15.1. 수업 13-1

15.2. 수업 13-2

16. Week14

16.1. 수업 14-1

import numpy as np
import matplotlib.pyplot as plt

# 예제: 금속 합금 조성(Cu %) vs 전기 전도도
x = np.array([0, 5, 10, 15, 20])
y = np.array([58, 55, 50, 45, 42])  # 전도도 W/mK

plt.scatter(x, y, color='b', label='Data')
plt.xlabel("Cu content [%]")
plt.ylabel("Electrical Conductivity [W/mK]")
plt.title("Conductivity vs Cu content")
plt.grid(True)
plt.legend()
plt.show()

16.2. 수업 14-2

17. Week15 (기말고사)

17.1. 수업 15-1

17.2. 수업 15-2

연습 문제

문제 1

행렬 $\boldsymbol A$와 벡터 $\boldsymbol v$가 $[\boldsymbol A][\boldsymbol v]=\lambda[\boldsymbol v]$를 만족할 때 $\lambda$를 무엇이라고 하는가?

문제 2

단위행렬의 모든 고유값은 얼마인가?

문제 3

NumPy에서 행렬의 고유값과 고유벡터를 구하는 함수를 쓰시오.