앞으로 선형대수 시리즈에 올라오는 모든 내용은 MIT의 Gilbert Strang 교수님의 Linear Algebra and Its Applications과 히라오카 카즈유키, 호리 겐의 프로그래머를 위한 선형대수를 기반으로 하며, 학교 강의 및 추가로 공부한 내용을 개인적으로 정리하고자 글을 작성할 것이다. 공간이라고 생각하면 직관이 먹힌다 이 세상은 ...
Introduction 선형 방정식을 풀어야 할 때, 가장 단순하면서 가장 중요한 경우가 바로 미지수(Unknown)와 방정식(Equation)의 수가 같은 경우이다. n개의 방정식과 미지수가 있을 때, n = 2라는 가장 간단한 경우부터 생각해볼 것이다. 여기서 미지수는 x와 y일텐데, 우리는 2가지 방법으로 이 방정식들을 풀어보고자 한다. 1. 소거...
기하학적 접근 선형 방정식들의 기하학적인 접근은 방정식들 자체를 사용하는 행(Row) 접근법이 있고, 방정식들의 계수를 사용하는 열(Column) 접근법이 있다. 다음의 예시를 통해서 어떻게 기하학적으로 접근할 수 있는지 알아볼 것이다. 행(Row) 접근법 사실 이 방법은 굉장히 우리에게 친근할 것이다. 어릴적부터 이 방법으로 방정식들의 해를 구해 왔으며...
Gaussian Elimination 이제 Gaussian Elimination에 대해서 자세하게 알아볼 것이다. Ax = b 혹은 특수한 경우인 Ax = 0을 풀고 싶을 때, 어떻게 해야하는지 다음의 식을 가지고 알아볼 것이다. 우리는 위의 방정식들로부터 미지수인 u, v, w를 찾고 싶다. 그래서 우리가 할 행동은 첫번째 식을 가지고 나머지 식과 뺼셈...
Matrix Notation 이제 방정식을 그대로 사용하지 않고 행렬의 형태로 계수들만 사용해서 표현할 것이다. 우리는 주어진 방정식을 벡터들의 연산인 Column Form으로도 바꿨었는데, 이를 더 효율적으로 보기 좋게 바꾸게 되면 행렬식으로 바꿀 수 있다. 위의 예시에서 우리가 확인할 수 있는 정보로는 좌변에 9개의 계수(Coefficient), 3개...
Triangular Factors 우리의 목표인 Ax = b를 풀기 위해서 계속해서 나아가고 있다. 이번에 볼 내용은 A를 LU 구조로 Factorization하는 것이다. 다항식에서 생각했을 때 인수분해와 같은 메커니즘이라고 보면 이해하기 쉬울 것이다. A를 이렇게 구조를 바꾸려는 이유는 Ax = b의 계산 횟수를 줄이기 위해서이고, 더 나아가 PA = ...
역행렬(Inverse Matrix) 역행렬을 원래 행렬과 곱하게 되면 단위 행렬(I)가 나오게 된다. 이 사실은 누구나 알고 있을 것이다. 그렇다면 여기서 주목할 것은 역행렬의 존재성에 대한 것이다. 모든 행렬이 역행렬을 가지지는 않는다. 만약에 AX는 0이고 x는 0이 아니라면 역행렬은 존재할 수 없다. 어떠한 행렬도 0인 AX 벡터와 곱해서 0이 아닌...
벡터 공간(Vector Space) 지금까지 A가 정사각 행렬인 경우에 대해서 Ax = b의 해를 구했다. 지금부터는 행렬을 정사각행렬에서 행의 길이가 m이고, 열의 길이가 n으로 확장해 일반적인 Ax = b를 풀어볼 것이다. 그러기 위해서는 벡터 공간(Vector Space)라는 개념이 필요하여 이에 대해서 알아볼 것이다. 벡터 공간은 벡터들을 모아놓은 ...
우리는 기존의 invertible한 정사각행렬에서 유일한 해의 존재에 대해서 알아봤다. Gaussian Elimination을 사용했는데, 이제는 m by n 행렬이 주어져도 마찬가지로 Gaussian Elimination을 사용해서 해를 구할 것이다. 하지만 이 경우에 m과 n의 크기가 같은 정사각행렬이 아닌 경우에 Upper Triangula Matri...
Linear Independence or Dependence 벡터들이 서로 linear independent 한지, dependent 한지는 다음의 정의를 보면 알 수 있다. 벡터 공간 V에서 k개의 벡터 v와 상수 c가 있을 때, 벡터 v의 c배의 합이 0인데, 여기서 c가 전부 0이면 linear independent하다 하고, c가 0이 아니면 li...
이전에 Column space와 Null space에 대해서 알아봤다. 이번에는 이 둘을 포함하여 총 4가지 중요한 벡터 공간들을 살펴볼 것이다. 특히 basis와 dimension에 주목해서 공간들의 특징을 알아볼 것이다. A의 행은 A를 전치 행렬 한 것의 열이 되는 사실을 알아야 한다. 전치 행렬이 무엇인지 알고 있다면, 행과 열이 바뀌는 것 정도는 ...
Transformation 보통 수학을 공부하면서 한 종류의 집합 개념을 배우게 되면, 그 다음에는 이들 사이의 함수나 중요한 특성들에 대해서 배우게 된다. 지금까지 벡터 공간들에 대해서 계속 살펴보았는데, 이번에는 벡터 공간 사이의 함수들 중에서 특별한 특성을 가진 함수인 transformation에 대해서 살펴볼 것이다. Linear Transforma...
지금부터는 n차원의 벡터 v를 열벡터로 간주할 것이다. 그래서 그냥 v를 사용한다면, column인 것으로 생각하면 되고 여기에 transpose 기호인 T를 붙인다면, 행벡터로 간주하면 된다. 그리고 우리는 같은 공간 안에서 벡터를 표현하고 싶을 때, basis의 linear combination으로 표현하면 되는 것도 알고 있다. 여기서 linear c...
두 벡터 x와 y가 서로 orthogonal 할 때, 우리는 이 두 벡터가 서로 orthogonal 함을 이제는 당연하게 받아들일 수 있다. 이번 단원에서는 두 벡터가 주어졌을 때, 내적이 0이 아니고 orthogonal 하지 않은 경우에 대해서 다뤄볼 것이다. 다음의 상황을 가정하고 시작해보자. 위의 상황은 벡터 b가 벡터 a 위로 정사영 한 것으로, ...
이전 내용에서는 ax = b인 미지수가 1개인 경우에 대해서만 알아보았다. 이번에는 이를 일반화시켜 식이 m개이고, 미지수가 n개인 m by n 행렬인 Ax = b인 경우에 대해서 알아볼 것이다. 이때, A의 열들이 linearly independent하다고 가정할 것이기에 이는 full rank를 가지고 있다. Linearly dependent한 경우는 ...
지금까지 orthogonal과 관련해서 많은 이야기를 해봤는데, 이번에는 임의의 basis를 orthogonaal하게 바꾸는 과정을 진행할 것이다. 그리고 이 과정을 Gram-Schmidt process라고 한다. 그 전에 간단한 정의 하나 알고 가자. 벡터가 서로 orthogonal하고 각각의 길이가 1이면, orthonormal하다고 말하고, 행렬에서...
선형 대수학을 공부하는 입장에서 행렬식이라고 하는 determinant는 어떠한 의미를 가지고 있는 것인가? 정의를 먼저 살펴보면, determinant는 정사각 행렬에 수를 대응시키는 하나의 함수로, 대략 정사각 행렬이 나타내는 선형 변환의 부피를 확대시키는 정도를 나타낸다. 이렇게만 이야기하면 굉장히 난해할 수 있다. 확실히는 모르겠지만, 무엇인가 결정...
Determinant를 이해하는데 있어 몇가지 특성을 알아둬야 한다. 특성이 조금 많기는 하지만, 그렇게 어려운 내용은 아니다. 이해하기 쉽도록 가장 간단한 경우인 n = 2인 행렬에 대해서 살펴볼 것이다. 그리고 determinant는 모든 정방(square) 행렬에 대해서 다룰 것이다. 우리에게 친숙한 2 by 2 행렬의 determinant는 위와 ...
Formulas 이제 determinant의 여러 식들에 대해서 알아보고자 한다. 이전에 A를 PA = LDU로 나눌 수 있다고 했다. 이때 D는 pivot들이 대각 원소로 존재하는 행렬이고 L과 U의 대각 원소들은 전부 1이기 때문에 determinant를 구하면 1이 될 것이다. 그래서 detL, detD, detU의 곱은 pivot들의 곱이 될 것이...
Determinant가 가장 중요하게 적용되는 부분에 대해서 하나씩 살펴볼 것이다. Computation Inverse of A 2 by 2 행렬의 역행렬을 구할 때, determinant로 나눠주는 것을 알 수 있다. The Solution of Ax = b Cramer's rule을 소개할 것인데, 이 룰을 알고 있으면 determinant의 비율을...
지금까지 Ax = b를 풀고자 이와 관련된 이야기를 했었다. 지금부터는 Ax = λx를 풀어보는데 집중할 것이다. 가능하다면 행렬을 diagonal로 만들어 쉽게 푸는 방법에 대해서 알아볼 것이다. 그리고 Ax = b에서는 elimination을 통해서 더 쉽게 풀고자 했지만, Ax = λx에서는 elimination을 진행하지 않을 것이다. Row exc...
이전에 행렬 A를 LDU로 분해하는 법도 알아봤으며, QR로 분해하는 법도 알아보았다. 이번에는 eigenvalue와 eigenvector들을 이용해서 $$S\Lambda S^{-1}$$로 분해할 것이다. 단계별로 진행하자면, $$n\times n$$ 행렬 A가 eigenvector에 linearly independent하다고 가정해보자. 만약 이 eige...
피보나치 수열은 이전 2개의 숫자를 더해가면서 만들어진다. 만약 1000번째 피보나치 수열을 구하고자 할 때, 첫번째 숫자부터 하나씩 더해갈 것인가? 시간이 오래 걸릴뿐만 아니라 틀릴 확률도 높다. 우리는 이를 difference equations과 power를 이용해서 일반화 시키고, 쉽게 구해볼 것이다. 이전의 내용을 기반으로 A를 diagonaliz...
위와 같이 differential equation이 있을 때, 가장 먼저 할 일은 eigenvalue와 eigenvector를 구하는 일이다. 이를 이용해서 differential equation을 만족하는 general solution을 만들 수가 있다. ![](https://images.velog.io/images/claude_ssim/post/9f...
행렬 문제 중에서도 가장 기본이 되는 Ax = b를 풀어 해를 찾는 일을 했었다. 이제는 해를 찾을 때 방법이 궁금한 것이 아니고 수의 체계에 대해서 알아볼 것이다. 만약 A와 b가 실수 범위에 해당한다면, x 역시 실수 범위에 해당할 것이다. 그렇다면 복소수는 어떠할 것인가? 복소수도 가능할 것이다. 실수 범위를 넘어 복소수 범위에 대해서 살펴보자. 이전...
행렬 A가 주어졌을 때, 행렬 A로 부터 eigenvalue와 eigenvector를 구하는 법을 알았다. 다음으로 A의 eigenvector들이 column으로 하여 행렬 $$S$$를 만들었고, 이 $$S$$와 $$S^{-1}$$를 이용하여 A로부터 diagonal
Eigenvalue를 구하는 방법에 대해서는 알게 되었다. 그러나 eigenvalue의 부호에 대해서 생각해 본 적이 있는가? 그저 계산 방법에 의해서 eigenvalue를 구했고, 이 값이 양수인지 음수인지에 대해서는 크게 신경쓰질 않았다. 우리는 어떤 test를 통
행렬 A가 주어졌을 때, 여러 matrix factorization을 알고 있다. 아마 활용하는 측면에서 이번에 하는 특이값 분해(Singular Value Decomposition)이 가장 좋다고 생각한다. Singular Value Decomposition(SVD