이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

5. 행렬식과 여인수 (Determinant and Cofactor)

  • 2020.10.04 20:04
  • 학부 수업/선형대수학
반응형

행렬식Determinant이란, 정사각행렬을 하나의 스칼라 값으로 대응시키는 함수로, 행렬의 가역성을 판별해준다.

행렬식은 미지수의 수와 식의 수가 같은 연립일차방정식의 근이 유일하게 존재하는지 결정(determine)하는데 중요한 역할을 한다.

행렬 A에 대한 행렬식은 $\det (A)$나 $\mid A \mid$로 나타낸다.

행과 열의 갯수가 각각 1, 2인 정사각행렬의 행렬식은 다음과 같다.

$$ A = \begin{bmatrix} a_{11} \end{bmatrix}\\
\mid A \mid = a_{11}\\ \\
B = \begin{bmatrix} b_{11}&b_{12}\\ b_{21}&b_{22} \end{bmatrix}\\
\mid B \mid = b_{11}b_{22} - b_{12}b_{21} $$

행렬식의 기하적 의미

$2 \times 2$ 행렬 $A$의 행렬식은 행렬의 열벡터 $\begin{bmatrix}a\\c\end{bmatrix}$, $\begin{bmatrix}b\\d \end{bmatrix} $가 이루는 평행 사변형의 넓이와 같다.

여인수를 이용하여 행렬식 구하기

여인수는 행렬 $A$에서 어떤 $i$번째 행과 $j$번째 열을 제거하여 만들어진 소행렬 $A_{ij}$의 행렬식 $\mid A_{ij} \mid$에 소행렬의 위치에 따라 적절한 부호를 붙여 얻어진 값을 의미한다.

$A$의 행렬식를 이러한 여인수들의 선형 결합으로 구할 수 있다.

$$C_{ij} = (-1)^{i+j}\mid A_{ij} \mid $$

$n\times n$ 행렬 $A$의 행렬식은 다음과 같이 $(n-1)\times (n-1)$ 행렬들의 행렬식 값의 선형 조합으로 나타낼 수 있다.

$$ \det(A) = a_{11}\det(A_{11}) - a_{12}\det(A_{12}) + \cdots + (-1)^{1+n}a_{1n}\det(A_{1n}) $$

위 공식은 모든 행에 적용할 수 있으므로, 다음과 같이 나타낼 수 있다.

$$ \begin{align*} \det(A) &= (-1)^{i+1}a_{i1}\det(A_{i1}) + \cdots + (-1)^{i+n}a_{in}\det(A_{in}) \\
&= \sum^{n}_{j=1} (-1)^{i+j}a_{ij}\det(A_{ij}) \end{align*}$$

여인수 분해 재귀

여인수 분해 방법을 이용해, 재귀적으로 행렬식을 구하는 프로그램을 짤 수 있다.

def determinant(matrix):
    matrix = np.array(matrix)
    if matrix.shape[0] != matrix.shape[1]:
        raise Exception('Determinant doesn\'t exist! (Input Matrix is not Square Matrix)')
    if matrix.shape[0] == 2:
        return matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0]

    sum = 0
    for i in range(0, matrix.shape[1]):
        nm = np.delete(matrix, 0, axis=0)
        sum += (-1)**(i) * matrix[0][i] * determinant(np.delete(nm, i, axis=1))
    return sum

정칙행렬non-singular matrix과 특이행렬singular matrix

$n\times n$ 정사각행렬의 행렬식이 0이 아닐 때 행렬을 정칙행렬이라 하고, 행렬식이 0일 때 특이행렬이라 한다.

행렬의 가역성

행렬 $A$와 $B$가 모두 $n\times n$ 행렬일 때, $AB = BA = I$($I$는 항등행렬)인 행렬 $B$가 존재하는 경우, A를 가역적(non-singlular, invertible)이라 한다. 이 경우가 성립하는 행렬 $B$를 행렬 $A$의 역행렬이라 하고 $A^{-1}=B$로 나타낸다. 역행렬이 존재하는 행렬을 정칙행렬이라 하고, 존재하지 않는 행렬을 특이행렬이라 한다.

행렬식의 성질

  • 행렬에서 임의의 두 행의 값이 같으면, 행렬식은 0이 된다.
  • 행렬 $A$에서 임의의 두 행(열)을 바꿔 만든 행렬 $B$에서, $\det(A) = -\det(B)$가 성립한다.
  • $\det(A) = \det(A^T)$이다.
  • $\det(AB) = \det(A) \times \det(B)$
  • 행렬의 특정 행(열)에 어떤 값 $k$를 곱하여 구한 행렬식은 처음 행렬에 $k$를 곱한 것과 같다.
  • 행렬의 한 행(열)의 값이 모두 0이면 행렬식은 0이다.
  • 삼각행렬의 행렬식은 모든 주대각원소의 곱과 같다.

행렬의 기하학적 성질

어떤 도형 $S$를 행렬 $A$를 이용하여 선형 변환했을 때, 변환된 도형 $P$의 면적은 $S$의 면적에 $\det(A)$를 곱합 것과 같다. 이때, $\det(A)$의 부호를 통해 변환의 방향을 알 수 있다.

이때, 행렬식이 0인 행렬을 이용해 선형 변환을 수행하면, 아무리 복잡한 도형이라도 면적이 0인 평면으로 변환된다.

더 자세히 알아보자면, 어떤 2차원 도형을 행렬식이 0인 행렬로 변환하면 직선이 되고, 3차원 도원을 한 행이나 열이 0으로만 이루어진 행렬로 변환하면 평면이 된다.

반응형

'학부 수업 > 선형대수학' 카테고리의 다른 글

7. 역행렬과 크래머의 규칙을 이용한 선형 시스템의 해 (Cramer's Rule)  (0) 2020.10.05
6. 역행렬 (Inverse Matrix)  (0) 2020.10.05
4. 행렬의 계수와 기저, 차원 (Rank of Matrix, Basis, Dimension)  (0) 2020.10.04
3. 행렬의 연산과 다양한 특수 행렬들  (0) 2020.09.14
2. 선형 방정식의 소거법 (Elimination Method of Linear Equations)  (0) 2020.09.10

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 7. 역행렬과 크래머의 규칙을 이용한 선형 시스템의 해 (Cramer's Rule)

    7. 역행렬과 크래머의 규칙을 이용한 선형 시스템의 해 (Cramer's Rule)

    2020.10.05
  • 6. 역행렬 (Inverse Matrix)

    6. 역행렬 (Inverse Matrix)

    2020.10.05
  • 4. 행렬의 계수와 기저, 차원 (Rank of Matrix, Basis, Dimension)

    4. 행렬의 계수와 기저, 차원 (Rank of Matrix, Basis, Dimension)

    2020.10.04
  • 3. 행렬의 연산과 다양한 특수 행렬들

    3. 행렬의 연산과 다양한 특수 행렬들

    2020.09.14
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (276)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (42)
      • 회고 & 계획 (16)
      • 내 이야기 (8)
      • 리뷰 (3)
      • 군대에 간 공돌이 (9)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바