본문 바로가기

Mathematics/Linear Algebra

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

https://cuffyluv.tistory.com/36

 

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

본 글은 [장철원 저 - 선형대수와 통계학으로 배우는 머신러닝 with 파이썬]을 읽고, 개인적으로 찾아본 내용을 더해 정리한 글입니다. 본 글에 나오는 소스코드들의 원본은 출판사의 github 레포

cuffyluv.tistory.com

우선 윗 글을 읽고와주시면 감사합니다.

 


 

 

가우스 행렬(행 사다리꼴 행렬)과 가우스 소거법에 대해,

 

  • 가우스 행렬도 leading entry(pivot)가 무조건 1이어야 한다.

이런 방식으로 이 책에선 설명하고 있는데,

다른 글, 책, 위키백과를 참고하니 이 설명이 대중적이진 않는 것을 나중에 알게 되었다.

대부분의 다른 글들이 정의하는 바를 따르면,

 

  • 가우스 행렬은 leading entry(pivot)가 0이 아닌 수이기만 하면 된다.

라는 것이다. 아마 이 책은 간략한 설명을 위해 전자의 방식을 채택한 것으로 보이나…

다른 글들을 봤을 때도 약 30% 정도는 전자의 방식으로 설명하고 있었다.

그러나 위키백과와 각종 전공서적 등을 봤을 때 후자의 방식을 채택하고 있어

나도 후자의 방식으로 이해하고 가는 게 맞을 것 같다

 

아래는 예시이다. (출처 : 위키백과)

대부분의 자료에서는 위 행렬이 가우스 행렬이라고 설명하나,(후자의 방식)

 

일부 자료들과 이 책에서는 위 연산 과정의 4번째 행렬과 같은 꼴 만이 가우스 행렬이라고 설명한다.(전자의 방식)

 


 

추가로,

 

  • 가우스 소거법에서도 특정 행을 상수배하는 연산을 해도 된다

vs

 

  • 가우스 소거법에서는 특정 행을 상수배하는 연산을 하지 않는다

 

이 두가지도 약간 갈리는데, 우선 내 생각에 정답은 전자가 맞다는 것이다.

더 자세히 말하자면, 가우스 소거법은 “상수배를 해도 되나, 상수배를 할 경우 행렬식 값이 달라진다는 것을 인지해야 한다.”이다.

 

상수배를 해버릴 경우 나중에 행렬식을 구할 때 값이 달라진다. 나중에 복잡한 행렬을 가우스 행렬 형태 또는 대각 행렬 형태로 바꿔도 행렬식은 동일하다는 걸 이용하게 되는데, 이 때 만약 전자의 조건대로 가우스 행렬을 해버리면 행렬식 또한 상수배가 되어 값이 변한다.

그러나, 그저 선형 시스템의 해를 구하는 게 목적이면 상수배를 해도 당연히 상관이 없다. 상수배를 해도 당연히 첨가 행렬은 row-동치이다.

 

그렇기때문에 써도 되나 인지만 하고 있으면 될 듯하다.

 

 

이건 어느 네이버 블로그(https://blog.naver.com/ldj1725/220251781811)에서 찾게 된 계산식인데, 이 계산 과정이 위 내용을 가장 잘 대변하는 것 같다.

 

Gilbert Strang 교수님의 수업에서도 후자의 방식이 사용된 걸 볼 수 있다. (추가로 상수배도 사용되지 않았다.) (https://adamdhalla.medium.com/1-3-a-complete-guide-to-gaussian-elimination-dd51f7b4a300#6437)