선형대수학

행렬의 Subspace 정리

2023. 1. 10. 19:01
목차
  1. 행렬
  2. Gauss-Jordan Elimination
  3. Reduced Row Echelon Form (rref)
  4. Rank
  5. Subspace
  6. Span, Basis
  7. 행렬 $ A $의 Subspace
728x90

행렬

여러 개의 식을 하나로 묶어놓은 것
선형대수학에서 마주하는 행렬방정식은 $ A \mathbf{x} = \mathbf{b} $ 형태를 만족한다.

$$ \begin{align} \begin{cases} 2x_1 + x_2 = 1 \\[2ex] 3x_1 - 2x_2 = 4 \end{cases} && \Rightarrow && \begin{bmatrix} 2 &1 \\ 3 &-2 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 1 \\ 4 \end{bmatrix} \end{align} $$

Gauss-Jordan Elimination

행렬방정식에 일련의 연산을 가해 해를 구하는 방법

  • $ 0 $이 아닌 상수를 행에다 곱한다.
  • 한 행을 다른 행에 더하거나 뺀다.
  • 두 행을 교환한다.

Reduced Row Echelon Form (rref)

다음의 성질들을 만족하는 행렬들을 reduced row echelon form 행렬이라고 한다.

  • 각 행의 pivot은 이전 행의 pivot의 오른쪽에 있어야 한다.
  • 모든 pivot의 값이 $ 1 $이다.
  • pivot 위 아래의 모든 성분의 값은 $ 0 $이다.

Gauss-Jordan elimination을 통해 행렬을 reduced row echelon form 형태로 만들면 해를 구할 수 있다.

Rank

vector space의 차원을 뜻한다. 이는 행렬을 rref으로 만들었을 때 pivot의 개수와 같다.

$$ \text{rank } A = \text{dim } A = \text{# of pivots} $$

Subspace

Vector Space

덧셈과 스칼라배에 대해 닫혀 있는 공간을 vector space라고 한다.

$$ \begin{align} &\mathbf{x_1} \in V, \; \mathbf{x_2} \in V \implies \mathbf{x_1} + \mathbf{x_2} \in V \\ &\mathbf{x} \in V, \; k \in \mathbb{R} \implies k \mathbf{x} \in V \end{align} $$

Subspace

vector space에 포함된 vector space를 subspace라고 한다. 즉, 덧셈과 스칼라배에 대해 닫혀 있으면서 공간 안의 모든 원소가 vector space에 포함되어 있다.

$$ \begin{align} &\mathbf{x_1} \in S, \; \mathbf{x_2} \in S \implies \mathbf{x_1} + \mathbf{x_2} \in S \\ &\mathbf{x} \in S, \; k \in \mathbb{R} \implies k \mathbf{x} \in S \\ &\mathbf{x} \in S \implies \mathbf{x} \in V \end{align} $$

Span, Basis

벡터 $ \mathbf{v_1}, \; \mathbf{v_2}, \; \cdots \mathbf{v_n} $을 서로 조합하여 공간 $ V $를 만들 수 있을 때, 벡터 $ \mathbf{v_1}, \; \mathbf{v_2}, \; \cdots \mathbf{v_n} $이 공간 $ V $를 span한다고 한다. 이때 각각의 벡터들이 서로 linearly independent하다면, $ \mathbf{v_1}, \; \mathbf{v_2}, \; \cdots \mathbf{v_n} $은 $ V $의 basis이다.

행렬 $ A $의 Subspace

  • column space: 행렬의 각 열벡터들이 span하는 공간이다. $ C(A) $로 표기한다.
  • null space: $ A \mathbf{x} = \mathbf{0} $ 을 만족하는 모든 벡터 $ \mathbf{x} $로 구성된 공간이다. $ N(A) $로 표기한다.
  • row space: 행렬의 각 행벡터들이 span하는 공간이다. $ C(A^T) $로 표기한다.
  • left null space: $ A^T \mathbf{y} = \mathbf{0} $ 을 만족하는 모든 벡터 $ \mathbf{y} $로 구성된 공간이다. $ N(A^T) $로 표기한다.

Subspace들의 성질

column space와 row space의 rank는 같다. 즉 $ A $와 $ A^T $의 rank가 서로 같다.

$$ \text{rank } A = \text{rank } A^T $$

또한 $ A $와 $ A^T A $의 rank가 같다. 이때 $ A $와 $ A^T A $의 행의 개수가 서로 같으므로 rank-nullity theorem에 의해 서로의 null space의 rank가 같다.

$$ \begin{align} &\text{rank } A = \text{rank } (A^T A) \\[1ex] &N(A) = N(A^T A) \end{align} $$

Rank-Nullity Theorem: $ m \times n $ 행렬 $ A $에서, column space의 rank와 null space의 rank의 합은 $ n $이다. 마찬가지로 row space의 rank와 left null space의 rank의 합은 $ m $이다.

$$ \begin{align} &\text{rank } C(A) + \text{rank } N(A) = n \\[1ex] &\text{rank } C(A^T) + \text{rank } N(A^T) = m \end{align} $$

$ A $의 rank를 $ r $이라 할 때, 정리하면 다음과 같다.

$$ \begin{align} \begin{cases} &\text{rank } C(A) = r \\[2ex] &\text{rank } N(A) = n - r \\[2ex] &\text{rank } C(A^T) = r \\[2ex] &\text{rank } N(A^T) = m - r \end{cases} \end{align} $$

Subspace별 Basis 구하는 방법

  • column space: 열벡터 중 서로 linearly independent한 열벡터만 선별한다.
  • row space: 행벡터 중 서로 linearly independent한 행벡터만 선별한다.
  • null space
    $ A \mathbf{x} = \mathbf{0} $을 푼 뒤, $ \mathbf{x} $에 존재하는 각각의 free variable마다 $ 1 $을 대입한다. 이때 $ 1 $을 대입한 free variable 외의 다른 free variable에는 $ 0 $을 대입한다. 도출되는 모든 벡터들을 모으면 null space의 basis를 구할 수 있다.
  • left null space
    행렬 $ A $ 옆에 $ I $를 붙여 augmented matrix를 만든 뒤 $ A $를 rref 행렬로 만든다.
    $$ \begin{align} \begin{bmatrix} A &I \end{bmatrix} && \Rightarrow && \begin{bmatrix} R &E \end{bmatrix} \end{align} $$이로부터 행렬방정식 $ EA = R $ 을 만족하는 행렬 $ E $를 얻는다. 이때 $ R $의 영행을 만드는 $ E $의 행벡터를 모으면 left null space의 basis를 구할 수 있다.
  • 행렬
  • Gauss-Jordan Elimination
  • Reduced Row Echelon Form (rref)
  • Rank
  • Subspace
  • Span, Basis
  • 행렬 $ A $의 Subspace
Park Joonyoung
Park Joonyoung
개발 블로그
DevJoon개발 블로그
Park Joonyoung
DevJoon
Park Joonyoung
전체
오늘
어제
  • 분류 전체보기 (88)
    • BOJ (41)
      • 틀렸습니다 (6)
    • 알고리즘 (4)
    • C++ (2)
    • Python (1)
    • 토이 프로젝트 (0)
    • 선형대수학 (1)
    • 기타 (3)
    • 에세이 (4)
    • [개인 보관용] (32)
      • 이코테 강의 정리 (0)
      • 알고리즘(old) (0)
      • 단변수미적분학 (0)
      • 다변수미적분학 (0)
      • 선형대수학 (32)
      • 선형대수학(old) (0)
      • 프랑스어 (0)
      • 독서노트 (0)
      • 사진 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Python
  • 개발
  • DP
  • 선형대수학
  • stl
  • 브루트포스
  • 백트래킹
  • c++
  • 구현
  • 수학
  • 에세이
  • next_permutation
  • dfs
  • DevJoon
  • github
  • 알고리즘
  • git bash
  • 시뮬레이션
  • 코딩테스트
  • ps
  • It
  • Notion
  • 그리디
  • bfs
  • BOJ
  • 백준

최근 댓글

최근 글

hELLO · Designed By 정상우.
Park Joonyoung
행렬의 Subspace 정리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.