기본 콘텐츠로 건너뛰기

라벨이 선형대수인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 선형변환(Linear transformation)

선형변환(Linear transformation) T: U → V은 벡터 공간의 U를 다른 벡터 공간 V로 옮기는 변환(함수)를 나타냅니다. 이 변환이 선형변환(Linear transformation)이 되기 위해서는 선형결합의 성립을 위한 식 1의 조건을 만족해야 합니다. 즉, 선형결합이 성립되는 벡터들은 선형변환이 가능하다는 것을 의미합니다. \begin{align} &\forall \; \text{u}_1,\; \text{u}_2 \in \text{U} \rightarrow T(\text{u}_1 + \text{u}_2) = T(\text{u}_1)+T(\text{u}_2)\\ &\forall \; \text{u} \in \text{U} \cap α \in \text{C} \rightarrow T(\alpha \text{u}) = \alpha T(\text{u})\\&u,\, v:\; \text{벡터, 스칼라} \end{align} (식 1) 예 1) 다음 식이 선형변환인지를 결정합니다. $$T\left(\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix} \right)=\begin{bmatrix}2x_1+x_3\\-4x_2\end{bmatrix} $$ 위 변환은 식 2와 같이 표준행렬 A에 의한 선형결합으로 나타낼 있습니다. \begin{align}\begin{bmatrix}2x_1+x_3\\-4x_2\end{bmatrix}&=\begin{bmatrix}2& 0& 1\\0& -4& 0\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\\\Leftrightarrow &\; T=Ax \end{align} (식 2) 식 2의 성립여부는 동차시스템으로 전환한 상태에서 해의 존재를 결정하는 것으로 확인할 수 있습니다. A=np.array([[2,0,1],[0,-4,0]]) c=np.ze...

[Linear Algebra] 벡터 공간과 부분공간 (vector space & subspace)

벡터 공간(vector space)과 부분공간 벡터들의 식 1과 같은 집합 V의 벡터들 사이의 선형결합 이 성립한다는 것은 선으로 표시되는 벡터들에 의해 n차원 등의 공간이 형성된다는 것을 의미합니다. 또한 선형결합의 성립은 그 결과 역시 피연산자인 벡터들에 의해 성립되는 공간에 포함되므로 집합 V에 포함됩니다. 이 집합 V를 벡터 공간(Vector space) 라고 하며 그 공간내에 포함된 벡터들 사이에 다음의 연산이 성립됩니다. V = {v 1 , v 2 , …,v n } (식 1) 표 1 벡터 공간에서의 연산 법칙 u, v ∈ Vector → u+v ∈ Vector α ∈ scalar, u ∈ Vector → αu ∈ Vector u + v = v + u (교환법칙) u + (v + w) = ( u + v) + w (결합법칙) 모든 요소가 0인 0벡터(zero vector)가 존재 u + (-u) = 0 α, β ∈ scalar, u ∈ Vector → α(βu) = (αβ) α ∈ scalar and u ∈ Vector → α(u + v) = αu + αv (분배법칙) α, β ∈ scalar and u ∈ Vector → (α + β)u = α u + β u (분배법칙) u ∈ V → 1·u = u 식 2는 두 벡터 u와 v의 선형결합을 나타낸 것입니다. 이 관계가 성립한다는 것은 두 벡터를 기본으로 하는 공간의 확대와 축소내에 선형결합의 결과가 존재함을 의미합니다. 벡터 u, v 그리고 그들의 선형결합 결과인 벡터들이 존재하는 벡터공간을 부분공간(subspace) 이라 합니다. 이 관계에서 0에 의한 스칼라배는 0벡터를 생성하므로 모든 벡터공간의 부분공간이 됩니다. \begin{align}u&=\begin{bmatrix} a_1\\a_2\\ \vdots \\a_n\end{bmatrix} \in W, \quad v=\begin{bmatrix} b_1\\b_2\\ \vdots \\b...

마코브 체인(Markov Chains)

내용 확률행렬의 조건 마코브 체인(Markov Chains) Andrey Markov의 이름을 딴 Markov 체인은 한 "상태"(상황 또는 값 집합)에서 다른 "상태"로 이동하는 수학적 시스템입니다. 예를 들어, 아기의 행동에 대한 Markov 체인 모델을 만든 경우 "놀기", "먹기", "자고 있음" 및 "울음"을 상태로 포함할 수 있으며 다른 행동과 함께 상태 공간 (state space)을 형성할 수 있습니다. 또한, 상태 공간의 맨 위에 있는 Markov 체인은 한 상태에서 다른 상태로의 "전환" 확률을 알려줍니다. 예를 들어 현재 놀이 중인 아기가 다음 상태에서 먼저 울지 않고 5분이내에 잠들 확률을 계산할 수 있습니다. 그림 1. 위 그림은 두 개의 상태(A 및 B)가 있는 경우로 4개의 가능한 전환이 있습니다(상태가 다시 자체로 전환될 수 있기 때문에 2가 아님). 우리가 'A'에 있으면 'B'로 전환하거나 'A'에 머무를 수 있습니다. 'B'에 있으면 'A'로 전환하거나 'B'에 머무를 수 있습니다. 이 두 상태 다이어그램에서 어떤 상태에서 다른 상태로 전환될 확률은 0.5입니다. 상태의 전환을 나타내기 위해 위의 Markov 체인 다이어그램 대신에 다음과 같은 전환행렬을 사용합니다. 이 행렬은 상태 전환의 확률을 즉, 전환확률을 계산하기 위해 사용합니다. A B A P(A|A):0.5 P(B|A):0.5 B P(A|B):0.5 P(B|B):0.5 이와 같은 마코브 체인은 생물학, 비즈니스, 화학, 공학, 물리학 등 다양한 상황에 적용되는 수학적 모델로서 동일한 방식으로 여러 번 수행되는 실험 또는 측정을 설명하는 데 사용됩니다. 여기서 각 시도(trial)의 ...

Affin combination과 linear combination

기하학적으로 두 점들이 이루는 집합 S에서 이 점들을 통과하는 선이 그 집합내에 존재한다면 그 집합은  affin입니다. 이것은 S의 두 점에 대한 모든 affin combination은  S를 포함합니다. 정리하면 집합 S의 점들에 대한 모든 affin combination이 S 내에 존재한다면 그 집합은 Affine 입니다. S=aff S → S는 affine 간단히 말하면 어떤 집합 S는 선형결합이 존재하고 그 집합의 원소들 사이의 Affine combination에서도 선형결합이 성립해야 한다는 것입니다. 이것은  linear combination이 성립한다면 Affine combination이 이루어지는 것을 의미 합니다. 선형관계성을 알아보기 위해 동차시스템(homogeneous system) 을 먼저 정의합니다. 어떤 시스템을 동차시스템으로 만드는 것은 다음과 같습니다. Ax = b → Ax-b=0 이 변화를 행렬 형태로 나타내보면 다음과 같습니다.  $A=\left[\begin{matrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{matrix}\right], x=\left[\begin{matrix}x_{1}\\x_{2}\end{matrix}\right], b=\left[\begin{matrix}b_{1}\\b_{2}\end{matrix}\right] $ $\left[\begin{matrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{matrix}\right]\left[\begin{matrix}x_{1}\\x_{2}\end{matrix}\right]=\left[\begin{matrix}b_{1}\\b_{2}\end{matrix}\right] \\ \rightarrow \left[\begin{matrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{matrix}\right]\left[\begin{matri...

affin combination이란

f(x) =f($x_1, x_2, \cdots. x_n$) 위 함수에서 $x_1, x_2, \cdots. x_n$은 함수 f의 인수들 입니다. 이 함수는 $R^n \rightarrow R^n$의 영역에서 이루어 집니다. 즉, n 차원의 실수 집합에서  n 차원의 실수 집합에 대응하는 함수를 나타내는 것입니다. 예를 들어 4차원 실수 집합을 1차원으로 대응시키는 함수는 다음과 같이 나타냅니다. $R^4 \rightarrow R$ f(x) = $x_1+x_2-x_4^2$ 위 함수는 각 항의 계수 벡터와 변수를 원소로 하는 벡터로 나타낼 수 있습니다. $a= \left[\begin{array}{r}1\\1\\0\\-1 \end{array}\right], \quad x=\left[\begin{array}{r}x_1\\x_2\\x_3\\x_4\end{array}\right]$ $f(x)= a^T x=\left[\begin{matrix}1&1&0&-1 \end{matrix}\right] \left[\begin{matrix}x_1\\x_2\\x_3\\x_4\end{matrix}\right]$ 위 형태는 벡터와 행렬 곱에서 앞 벡터의 열의 수와 뒤 벡터의 행의 수가 일치하여야 계산 될 수 있기 때문에 열벡터인 경우 앞 벡터는 전치시켜야 합니다. 위의 표현은 다음의 경우에서도 성립됩니다. $f(\alpha x+\beta y)=a^T(\alpha x+\beta y)=\alpha  a^T x+ \beta a ^Ty=\alpha f(x)+ \beta f(y)$ $\alpha, \beta$: scalar 위 함수는 벡터들의 선형결합 입니다. Affin 결합은 이러한 선형결합의 특별한 형태입니다. 즉, 다음과 같습니다. $c_1v_1+ c_2v_2 + \cdots +c_nv_n$ 위와 같은 선형결합에서 모든 계수의 합이 1인 경우를 $c_1+c_2+\cdots+c_n=1$을 Affin combination 이라고 합니다. ...

가역행렬에 대한 정의

가역행렬의 정의 n × n 차원의 정방행렬 A가 가역행렬(invertible matrix)일 경우 다음은 모두 동치입니다. 1. A의 행렬식은 0이 아닙니다. (det A ≠ 0) numpy.linalg.det() 함수에 의해 계산됩니다. import numpy as np import numpy.linalg as la import sympy as sp A=np.array([[2,3],[6, 8]]); A array([[2, 3], [6, 8]]) round(la.det(A), 4) -2.0 2. 역행렬이 존재합니다. numpy.linalg.inv() 함수에 의해 계산됩니다. Ainv=la.inv(A); Ainv array([[-4. , 1.5], [ 3. , -1. ]]) np.dot(A, Ainv) array([[1., 0.], [0., 1.]]) 3. 가역행렬 A의 전치행렬 A T 역시 가역행렬입니다. 이 두행렬의 행렬식은 같습니다. det(A) = det(A T ) AT=A.T; AT array([[2, 6], [3, 8]]) la.inv(AT) array([[-4. , 3. ], [ 1.5, -1. ]]) round(la.det(AT), 4)==round(la.det(A), 4) True round(la.det(AT), 4) -2.0 4. 행렬방정식 Ax=c에 대해 유일한 해를 가집니다. 식의 해를 계산하기 위해 numpy.linalg.solve() 함수를 적용합니다. 식의 c즉 상수항이 다음 코드의 const라면 A가 가역행렬이므로 변수 x의 해를 계산할 수 있습니다. const=np.array([2,1]).reshape(2,1);const array([[2], [1]]) sol=la.solve(A, c...