Linear Independence
하나의 행렬은 공간을 나타낸다고 볼 수 있다.
다음과 같은 행렬이 있다면,
column 벡터를 보면, i, j, k를 나타냄을 알 수 있다.
그런데 만약에 각각의 벡터가 서로의 상수배를 한 관계를 가지고 있다면,
이 공간은 행렬 사이즈에 해당하는 공간을 매핑하지 못한다.
이 경우 우리는 행렬이 선형 종속 이라 말한다.
반대로 공간을 매핑할 수 있다면 선형 독립 이라 말한다.
이것을 수식으로 판단해보면,
위 식을 만족하는 e 벡터가 0 벡터인 경우
a .. 벡터들은 선형 독립 이라 한다.
선형 독립이 되기 위해서는 위의 행렬식에서,
Determinant 가 존재해야만 한다.
즉, 비특이행렬 이어야 하고, 위 식의 해인 e 벡터는 0 벡터로 유일 해야 한다.
Rank
행렬은 하나의 공간을 매핑한다고 했다.
방금은 3 x 3 의 행렬에 대해 봤기 때문에,
열벡터 공간과 행벡터 공간이 동일하게 3차원 공간을 매핑하고 있었다.
하지만 행렬이 꼭 정사각행렬이라는 법은 없다.
따라서 우리는 행벡터와 열벡터에 대한 선형 독립성을 판단할 지표가 필요한데,
이 때 등장하는 개념이 Rank 이다.
A 행렬이 다음과 같이 있을 때,
첫번째가 열벡터로 묶은 행렬,
두번째가 행벡터로 묶은 행렬이다.
A 행렬의 모든 벡터들이 선형 독립이라 가정 할때,
열벡터들의 개수가 Column Rank(Nc) ,
행벡터들의 개수가 Row Rank(Nr) 이다.
만약 정사각 행렬이라면,
이다.
Rank와 행렬식과의 관계
정사각 행렬에서 Full Rank 인 경우, 동치인 말이 여러개 존재한다.
- Full Rank
- det(A) != 0
- 역행렬이 존재한다.
- non-singular Matrix
- non-trivuial solution
Gauss Elimination
가우스 소거법은, 연립방정식의 해를
행렬을 이용해 쉽게 구하는 방법이다.
기본적으로 행벡터의 계수를 조작하여 구하는 방법으로,
Upper Triangle Matrix, Lower Triangle Matrix 를 만들어 구하는 방법이다.
역행렬을 구하여 답을 찾는 방식은 Cost가 많이 들어,
해를 구하는데는 적합하지 않다.
자세한 방법은 생략한다.
Gauss - Jordan Method
가우스- 조르당 방법의 가장 큰 이점은,
역행렬 을 구하는데에 있다.
기존의 Cramer's rule을 사용하는 것은 computing cost가 많이 들기 때문에,
이 방법이 매우 유용하다.
역행렬을 구하는데 있어 Gauss Elimination에서 한 행벡터를 조작해서 하는 방법은 동일하다.
Pivoting
Motivation of Pivoting
가우스 소거법과, 가우스-조르당 방법에서
대각행렬을 기준으로 수행한다는 것은 명백하다.
우리는 그래서 이 대각 행렬의 요소를 Pivot 이라 부른다.
Pivoting 이란, 행렬이 있을때, 이 Pivot을 기준으로 행을 판단해서
두 행을 바꿔 계산하는 방법을 말한다.
그렇다면 이 Pivoting은 왜 필요한 것일까?
우리는 행렬을 계산하는데 있어 Computing Method를 사용하는데,
현실의 값을 근사해서 매핑하는 컴퓨터의 한계 때문에,
우리는 Round Off Error 를 필연적으로 가질 수 밖에 없다.
이 에러를 줄이기 위해 우리는 Pivoting을 한다.
예제를 살펴보자.
이 식의 정확한 값은,
가우스 소거법을 사용해서 위 식을 계산해보자.
우리는 대각 요소를 1로 만드는 것에 관심이 있기 때문에,
1행 1열의 값을, 2행 1열의 값과 같게 만든뒤 빼줘야 한다.
그러기 위해서
이 값을 1행에 곱하고 2행을 더한 행을 2행과 바꿔주자.
결과 식은,
이 때 계산된 해는,
다음과 같이 현저히 다른 해가 도출된다.
결국 우리는 대각 요소의 값과 밑의 행이 비율이 큰 것을 피하면 된다!
j는 행의 번호를 말하고,
k는 대각 요소의 행번호를 의미한다.
우리는 이 값이 1보다 클경우 Round Off 에러가 발생한다는 것을 알았으므로
이것을 막으면 된다.
Remedy
- Partial Pivoting
- Scaled Pivoting
Partial Pivoting
가장 간단한 방법은, 저 값이 1보다 훨씬 클경우
아래 행과 위의 행을 바꾸는 것이다!
k는 현재 있는 행을 의미한다.
n은 마지막 행을 의미한다.
그 사이에 있는 i 라는 값을 가지면서 각 행의 요소들을 조사하면서 가장 큰 값을 리턴한다.
이때, 행의 index를 저장하고, 만약
해당 행의 대각 요소의 값이 가장 크다면 p = k 가 될 것이다.
만약 그렇지 않다면 p != k 일 것이다.
이 경우 p 행과 k 행을 Pivoting 한다.
그렇게 되면 필연적으로 m_jk 값은 1보다 작아지므로 Round Off Error 를 피할 수 있다.
적용
Scaled Pivoting
만약 m 값이 1에서 크게 차이가 없다면
이 방법은 사실의미가 없다.
따라서 이 경우에는 각 행에 특정 같은 값을 곱한뒤,
답을 구하는 방법을 사용해야 한다.
가우스 소거법의 특성상,
밑의 값부터 올라오기 때문에,
특정 행의 계수들의 크기가 균등하다면 값의 변화가 크다.
따라서 우리는 행의 계수들의 비율이 큰 행을 아래로 피보팅 해야한다.
따라서 1행과 2행을 피보팅한다.