LU 분해
주어진 행렬을 특정한 형태를 가지는 두 행렬의 곱으로 나누는 행렬분해이다.
- L
: lower triangular matrix(하삼각행렬)
- U
: upper triangular matrix(상삼각행렬)
- 주어진 행렬 A가 LU분해되어 있으면 선형시스템을 다음과 같이 두 단계로 간단히 해결할 수 있다.
1. Forward-substitution(전방대치법): y 구하기
2. Back-substitution(후방대치법): x 구하기
L
: 행렬 A를 전방소거하는데 쓰인 replacement와 scaling에 대한 EROs를 기록해 둔 행렬U
: 행렬 A를 전방소거한 후 남은 상삼각행렬P
: 행렬 A를 전방소거하는데 쓰인 interchange에 대한 EROs를 기록해 둔 행렬(옵션)행렬연산과 선형조합
전치행렬(Transpose Matrix)
벡터 표기법
- 벡터라고 하면 일반적으로 열벡터를 말한다.
- 벡터는 볼드체 소문자로 표기한다.
- n-벡터는 n개의 스칼라(scalar)로 구성된 벡터를 말한다.
영행렬(Zero Matrices)
- 행렬의 모든 요소가 0인 행렬
- 숫자의 0과 같은 존재로 행렬합에 대한 항등원 역할을 한다.
- 행렬의 합은 두 행렬 A와 B의 행과 열의 개수가 모두 같을 때 성립하여, 각 (i, j)요소의 합으로 정의된다.
정방행렬(Square Matrix)
- 행과 열의 개수가 모두 n인 정사각형 모향의 행렬을 n차 정방행렬이라 한다.
- 특히 aii(i = 1, 2, ..., n)를 행렬 An의 주대각선(main diagonal)이라 한다.
항등행렬(Identity Matrices)
- 주대각선이 1이고 나머지 요소는 모두 0인 n차 정방행렬을 항등행렬이라 한다.
- 항등행렬은 숫자의 1과 같은 존재로 행렬곱에 대한 항등원 역할을 한다.
행렬의 곱
- 행렬 C의 각 요소 cij는 '곱의 왼쪽 행렬 A의 i번째 행벡터'와 '곱의 오른쪽 행렬 B의 j번째 열벡터'의 내적(inner product)이다.
- 따라서 두 행렬의 곱 AB에 대해 A의 열 개수와 B의 행 개수는 일치해야 한다.
- m x r 행렬과 r x n 행렬을 곱하면 m x n 행렬이 만들어진다.
- 일반적으로 AB≠BA이다. 행과 열을 뽑아오는 방법이 다르기 때문이다.
- 행렬의 곱은 병렬처리(parallel processing)로 가속할 수 있다.
스칼라, 벡터, 행렬, 그리고 텐서: 계층적 구조 이해하기
- 스칼라는 숫자 하나로 구성되어 있다.
- 벡터는 여러 숫자가 일렬로 늘어선 구조이다.
- 행렬은 사각형 구조에 여러 숫자가 행과 열로 늘어선 구조이다.
텐서(tensor)
- 스칼라, 벡터, 행렬을 아우르는 개념으로 숫자가 늘어설 수 있는 방향이 k개면 k-텐서로 부른다.
- 0-텐서: 스칼라, 1-텐서: 벡터, 2-텐서: 행렬, 3-텐서: RGB 컬러영상
분할행렬(Partitioned Matrix)
- 행렬을 조각(partition) 단위로 분할하여 생각하자.
- 행렬은 부분행렬(submatrix)로 이루어진 직사각형 구조로 확장해서 생각할 수 있다.
- 행벡터 혹은 열벡터들의 집합이라고 볼 수 있다.
- 분할행렬로 행렬의 곱 이해하기
matrix-column vector products
혹은 row vector-matrix products
로 볼 수 있다.선형조합(Linear Combination)
Ax는 A의 열벡터에 대한 선형 조합
m x n 행렬은 m-벡터가 n개 있다
고 해석하자.col(A)
: 행렬 A의 열벡터들에 대한 가능한 모든 선형조합의 결과를 모아 집합으로 구성한 것좌표계 변환(Change of Basis)
좌표계 :: 좌표값 = 행렬 :: 벡터
벡터의 수학적 표현
- 좌표계를 도입한 후, 벡터의 시작점을 원점에 맞추고 끝점의 위치를 벡터 v의 수학적 표현으로 정의한다.
- v의 크기: 화살표의 길이를 계산
- v의 방향: 화살표의 방향을 벡터로 표현
좌표계(Coordinate System)
선형변환(Linear Transformation)
함수에 대한 고찰
- 함수
: D의 각 원소 x가 C의 한 원소 y(=f(x))에 대응되는 두 집합 간의 맵핑룰(mapping rule)
- 정의역(domain)
: 입력이 정의되는 집합 D
- 공역(codomain)
: 출력이 정의되는 집합 C
- 치역(range)
: 공역 중 실제 함수의 출력이 나오는 부분집합
선형함수(Linear Function)
- 함수 f가 아래 두가지 조건을 만족하면 이 함수를 선형함수라고 한다.
- f(x + y) = f(x) + f(y)
- f(cx) = cf(x) (단, c는 임의의 스칼라)
행렬변환(Matrix Transformation)
- 함수의 입출력이 벡터인 함수를 변환(transformation)이라고 한다.
- 입력이 n-벡터이고 출력이 m-벡터인 함수 T에서 특별히 n = m인 경우 해당 변환을 연산자(operator)라고 한다.
- m x n 행렬은 n-벡터를 입력으로 받아 m-벡터를 출력으로 내는 선형변환이며, 임의의 선형변환은 행렬로 표현가능하다. 즉, 행렬은 선형변환의 구현체이다.
행렬변환 코딩하기
1. 구현하고자 하는 기능의 입/출력이 벡터로 정의되는지 확인한다.
2. 구현하고자 하는 기능이 선형인지 확인한다.
3. 입력이 n-벡터이고, 출력이 m-벡터이면 m x n 표준행렬(standard matrix)을 구성한다.