본문 바로가기

Mathematics/Linear Algebra

[선형대수학] 5장 - 선형 시스템 <알고리즘 구현으로 배우는 선형대수 with 파이썬>

 

본 글은 [장철원 저 - 선형대수와 통계학으로 배우는 머신러닝 with 파이썬]을 읽고, 개인적으로 찾아본 내용을 더해 정리한 글입니다. 
본 글에 나오는 소스코드들의 원본은 출판사의 github 레포지토리(https://github.com/bjpublic/LinearAlgebra) 에서 찾아볼 수 있습니다.
까먹었을 때 바로바로 확인하기 위한 용도로 정리하는 것이기에, 제 필요에 따라 생략, 변형 및 추가된 내용이 많습니다.
책의 내용을 그대로 담지 않도록 노력하였으나, 혹여 문제가 있다면 cuffyluv.1@gmail.com으로 연락주시기 바랍니다.

 

  • 선형 방정식(linear equation)

: 최고 차수의 항의 개수가 1을 넘지 않는 다항 방정식.

→ a1x1 + a2x2 + a3x3 + … + anxn = b 꼴로 일반화 가능.

 

  • 선형 시스템(linear system) 또는 연립 1차 방정식(system of linear equation)

: 선형 방정식이 다수 존재하는 경우, 선형 방정식의 집합을 의미.

→ p개의 변수로 구성된 n개의 방정식 형태로 일반화 가능.

 

  • 첨가 행렬(Argumented matrix)

: 선형 시스템의 상수 부분만 모아서 행렬 형태로 나타낸 것.

[a11 a12 … a1p b1
 a21 a22 … a2p b2
 … … … … … … … …
 an1 an2 … anp bn] 꼴이다. 변수 p개, 방정식 n개, b는 상수
  • 기본 행 연산(elementary row operation)
  1. 한 행에 영이 아닌 상수를 모두 곱한다.
  2. 두 행을 교환한다.
  3. 한 행의 배수를 다른 행에 더한다.

이러한 3가지 연산을 의미함. (어려우니 교재 보고 참고)

+) ‘기본행렬’이라는 것도 있는데, 책엔 아직 안나왔음. (블로그 참고 : https://blog.naver.com/qio910/221511710559)

 

 

** 주의!!!!!
아래에서부터 나오는 글이, 여러분이 기존에 알던 내용과 다를 수 있으나,

현재 글을 다 읽고 나서 아래 링크된 글도 이어서 읽어주시면 이해가 되실겁니다.

https://cuffyluv.tistory.com/38

 

[선형대수학] 가우스 소거법에서 pivot은 1이어야 하는가? NO!

https://cuffyluv.tistory.com/36" data-og-description="본 글은 [장철원 저 - 선형대수와 통계학으로 배우는 머신러닝 with 파이썬]을 읽고, 개인적으로 찾아본 내용을 더해 정리한 글입니다. 본 글에 나오는 소

cuffyluv.tistory.com

 

  • 가우스 행렬(Gauss matrix)
  1. 행이 오직 0으로 구성되지 않았다면, 각 행의 가장 첫 원소는 0이 아닌 값이고, 그 값 아래에 위치하는 원소는 모두 0인 행렬 (이러한 값을 leading entry 또는 pivot이라 함.)
  2. 아랫 행의 leading entry가 윗 행의 leading entry보다 오른쪽에 있어야 함.
  3. 모든 원소가 0인 행이 존재할 수도 있는데, 이 때 그러한 행들은 행렬의 맨 아래로 내려가야 한다.

 

** 가우스 행렬은 원소들이 사다리꼴 형태를 띄기 때문에, ‘**행 사다리꼴 행렬(row echelon form matrix, REF)’**이라고도 불림. (오히려 이쪽이 더 정석적인 명칭인듯??)

→ 가우스 소거법을 통해 연립방정식을 풀 때, 첨가 행렬을 더 간단하게 변형해나가 가우스 행렬을 도출해나감.

# 여담
해가 존재하지 않는 경우 : x + y = 3, 0 = 3 같은 꼴 (모순이 존재)
또는 x + y = 3, x + y = 6 같은 꼴. (평행한 직선, 두 식을 빼면 위와 동일함)
해가 무한히 많은 경우 : x + y = 6와 같이 변수 개수 > 방정식 개수 인 경우. (해가 직선)
# 2차원의 예시만 들었지만 3차원으로도 확장 가능~~ (직선 -> 면)
  • 기약 가우스 행렬(reduced Gauss matrix)
  1. 모든 leading entry(pivot) = 1 이며(이 때는leading one이라고 부름)
  2. leading one이 있는 열의 나머지 원소들이 모두 0인 가우스 행렬.

또는,

  1. 행이 오직 0으로 구성되지 않았다면, 각 행의 가장 첫 원소는 1이고, 1과 같은 열에 위치하는 위치하는 원소가 모두 0인 행렬 (이러한 1을 leading one이라 함.)
  2. 아랫 행의 leading one이 윗 행의 leading one보다 오른쪽에 있어야 함.
  3. 모든 원소가 0인 행이 존재할 수도 있는데, 이 때 그러한 행들은 행렬의 맨 아래로 내려가야 한다.

 

** 가우스 행렬과 같은 이유로 ‘기약 행 사다리꼴 행렬(reduced row echelon form matrix, RREF)’이라고도 불림.

→ 가우스 조르단 소거법을 통해 연립방정식을 풀 때, 첨가 행렬을 더 간단하게 변형해나가 가우스 행렬을 도출해나감.

여담) 선형대수학에서 ‘원소’와 ‘요소’는 동의어인듯? element의 번역어. 난 요소 쪽이 더 입이 잘 붙는다. 왜징..

 

  • 가우스 조르단 소거법(Gauss Jordan elimination)

: 기약 가우스 행렬 형태를 이용해 방정식의 해를 구하는 방법.

: (또는) 첨가 행렬을 기약 가우스 행렬 형태로 바꿔 방정식의 해를 구하는 방법.

→ input : 첨가 행렬

→ output : 기약 가우스 행렬(기약 행 사다리꼴 행렬)

여담) 1번째 정의는 책에 나와있고 2번째 정의는 내가 만들어 봤는데 이게 더 입에 잘 붙는당

 

  • 가우스 소거법(Gauss elimination)

: 가우스 행렬 형태를 이용해 방정식의 해를 구하는 방법.

: (또는) 첨가 행렬을 가우스 행렬 형태로 바꿔 방정식의 해를 구하는 방법.

→ input : 첨가 행렬

→ output : 가우스 행렬(행 사다리꼴 행렬)

 

******* 매우중요) 주의) 이 때, ‘상수 배’를 곱하는 기본 행 연산은 조심히 해야함!!!!!!!!**

******* 왜냐하면, 저걸 해버릴 경우 나중에 행렬식이 k배만큼 변형됨.**

→ 가우스 행렬의 마지막 과정에서, 아래에서 구한 해를 위 식에 대입해 나머지 해를 구하는 방법을 ‘역 대입법(back substitution)’ 이라고 함.

 

여담1) substitution은 수학에서 ‘대입’ 과 ‘치환’ 두 가지 한국어로 번역함.

여담2) 아마 가우스 조르단 소거법이 있는데 가우스 소거법을 같이 소개한 이유는, 가우스 조르단 소거법이 좀 귀찮아서 그런 것 같다. 가우스 소거법의 결과인 가우스 행렬 형태에서도 그냥 역 대입법을 사용하면 선형 시스템으로 표현한 후 쉽게 해를 구할 수 있는데, 굳이 마지막까지 귀찮고 손 많이가는 행렬 연산을 해야할까??

→ 그래서 아마 앞으로도 가우스 조르단 소거법보단 가우스 소거법을 많이 쓰게되지 않을까 싶다.

 

  • 동차 선형 시스템(homogeneous linear system)

: 우변이 모두 0인 선형 시스템.

→ x1 = 0, x2 = 0, … , xp = 0 이라는 적어도 하나의 해가 존재함.

→ 변수 개수 < 방정식 개수 인 경우 항상 무한개의 해를 가짐.

(책인 이거 관련 자세한 이야기는 안나와 있지만, 사실 당연한 거임. 아마 책은 아직 기저에 대해 설명하지 않았기 때문에 자세한 설명은 생략한듯?)