행렬과 벡터 기초를 따로 포스팅하는 이유는
현재 다변량 정규분포를 공부를 하고 있는 상황인데 내용 중에서 블록행렬이 나와서
갑자기 행렬곱을 못하게된 경험을 하게 되었기 때문이다.
(행렬과 벡터 기초를 공부한 다음 추후 블록행렬에 대해서 포스팅을 할 계획입니다!)
(Khan Academy 라는 사이트가 있는데 인터넷으로 기초 미적분학이나 벡터 연산 등을 공부할 수 있다. )
우선 행렬의 가장 간단한 형태인 벡터에 대하여 살펴보자
벡터는 요소( 수 또는 변수를 뜻함 예를 들어 1 , x ) 들의 1차원적인 배열이다.
주의!: 여기서 말하는 '1차원적'이라는 말은 요소들이 일렬로 나열되어 있는것을 의미한다.
n차원 벡터할때 'n차원'이라는 말과 구분해야함
※ 요소는 단순히 벡터나 행렬 안에 있는 수를 말함
나중에 행렬 언급하면 얘기하겠지만 , 행렬안에 있는 각 요소는 그 요소가
위치한 행과 열로 이름을 짓는다.
요소는 성분 또는 entry 라고도 부른다.
예를 들어서

왼쪽의 경우 , 세로로 배열된 벡터를 열벡터라고 하고
가로로 배열된 벡터를 행벡터라고 한다.
벡터를 구성하는 요소가 n개 이면, 그 벡터를 n차원 벡터라고 한다.
위에서 [ 1, 2, 3 ] 은 요소가 3개이므로 3차원 벡터라고 하고 , 3차원 공간에서의 벡터를 의미한다.
하나의 열벡터는 행벡터로 , 행벡터는 다시 열벡터로 변형할 수 있는데
이렇게 변형하는 것을 전치(transpose)라고 한다.
예를 들어서

전치는 상첨자 T로 표기한다.
열벡터 v에 상첨자인 T를 표기하면,
열벡터v를 전치했다는 뜻이다.
즉 열벡터를 행벡터로 변형하겠다는 표시 이므로 변형할 시 , [ 1, x ] 로 표기된다.
벡터의 덧셈과 뺄셈
벡터의 덧셈과 뺄셈을 할 때 밑의 두가지를 지키면 된다.
· 두 벡터의 합과 차 역시 벡터가 된다.
· 각 요소는 두 벡터의 동일 위치에 있는 요소들 간의 합 또는 차와 같다.
예를 들어서

이렇게 벡터간의 덧셈과 뺄셈이 가능하려면,
벡터들의 차원이 같아야한다.
차원이 다른 벡터 간의 덧셈과 뺄섬은 정의하지 않는다.
벡터간의 곱셈
두 벡터의 곱은 내적이라고 부르는데, 내적 결과는 스칼라(scalar)임을 잊지 말자.
(사실 이전까지 알고 있었던 '내적'이라는 말은 dot product 를 의미했고,
이 dot product가 확장된 연산이 inner product이다. (선형대수학)
이 inner product은 결과를 scalar 값으로 내놓은 함수라고 정의된다.
지금은 Euclidean n space 상 (ex: R^n) 에서 연산을 논하고 있으므로
여기서 진행되는 내적은 dot product를 의미한다.
∵ Euclidean n space 에선 inner product가 dot product로 정의(defined) 됩니다. )
만일 두 벡터 x = ( x1, x2, x3, ... , xn) , y = (y1, y2, y2, .... , yn) 의 내적은 다음과 같다.

즉 두 벡터의 곱셈은 두 벡터의 동일 위치에 있는 요소들 간의 곱을 합한 것 과 같다.
(요소들 간의 곱을 합한 것을 잊지말자 , 행렬의 곱셈 나올때 똑같이 적용할건데 조금 헷갈림)
벡터는 이정도면 충분히 살펴본 것 같고
이번에는 행렬에 대해서 잠깐 배우고 31강으로 넘어가자
일단 역행렬까지 적어두자
일단 행렬의 예를 보면,

B와 같이 요소들이 2차원적으로 배열된 것을 행렬(matrix)라고 한다.
행렬은 영어 대문자를 사용해서 간단히 표현하기도 한다.
1, 2, 3, x , y, z 처럼 행렬 안에 나타난 수들은 벡터와 동일하게 각각 요소 또는 성분이라고 부른다.
추가적으로 행렬에선 각각의 요소들을 영어 소문자를 이용해서 간단하게 표현하기도 한다.
예를 들어서 B 행렬의 요소 3은
첫번째 행에서 세번째 열에 위치하고 있으므로 ,
이를 표현하기 위해서

이렇게 표현을 한다.
이런 식으로 행렬을 일반적으로 기술하면 다음과 같다.

그리고 A라는 행렬은 맨 오른쪽 아래의 amn 요소를 통해서
행의 갯수가 m 개 , 열의 갯수가 n개임을 알수있다.
행렬은 행의 수와 열의 수로서 크기가 정의된다. 그래서 앞서 언급한 A 행렬의 크기를 다음과 같이 표현한다.

오른쪽 표기를 잘 봐두자 증명할때 많이 보임, i가 행과 관련되어 있고 j가 열과 관련되어 있다.
행렬의 연산방법에 대해 알아조자
행렬 연산은 벡터연산과 마찬가지로 덧셈, 뺄셈, 곱셈만 가능하고 나눗셈은 정의하지 않는다.
행렬의 덧셈과 뺄셈
두 행렬의 합 또는 차 역시 행렬이 되는데, 각 요소는 두 행렬의 동일 위치에 있는 요소들 간의 합 또는 차와 같다.
즉 두 행렬의 상응하는 요소(성분)을 더하거나 빼야한다.
덧셈과 뺄셈이 가능하려면 행렬들의 차원이 같아야 함
차원이 다른 행렬 간에는 덧셈과 뺄셈이 정의되지 않는다.
예를 들어 두 행렬 A ,B 가 있다면

덧셈을 할 경우

각 요소에 상응하는 요소와 덧셈을 해야한다.
행렬 간의 곱셈
행렬간의 곱셈은 벡터간의 곱셈보다 약간 다르다.
왼쪽, 오른쪽 구분이 명확해야하는데,
두개의 행렬을 곱한다고 하면,
반드시
왼쪽에 있는 행렬의 행 과 오른쪽에 있는 행렬의 열이 만나서,
이 요소들의 곱의 합을 통해 (m, n )을 이루는 성분을 만드는 걸
반복해줘야한다.
예를 들어서

행렬간의 곱셈을 할땐 먼저
왼쪽의 여러개의 행 중에서 특정한 m행을 가져오고 ,
오른쪽의 여러개의 열 중에서 특정한 n열을 선택하면,
노란색 형광펜으로 그어져 있는 것처럼
이전에 우리가 알고있는 벡터간의 곱셈 형태가 나온다.
벡터간의 곱셈은 각 요소간의 곱을 하면 그 값은
두개의 행렬이 곱해져 나온 새로운 행렬의 전체 행 중 m 번째 위치하고
전체 열 중 n번째 위치한 성분의 값이 된다.
이런 식으로 새로운 행렬의 성분 값들을 다 채워주면 된다.
계산 방법을 식으로 표현하면 다음과 같다.
만일 행렬 C가 행렬 A 와 B의 곱인 경우 , 즉 C = AB 인 경우 ,
C의 여러 요소중 Cij 요소의 값은 다음과 같다.

C의 전체 성분들 중 하나의 성분, 여기선 Cij 성분을 어떻게 구하는지 살펴보았다. 이 계산방법을 통해 C의 전체 성분들을 하나씩 다 계산하면 된다.
행렬의 곱셈을 할때 주의해야할 점이 있다.
1. 행렬의 곱셈이 정의되기 위해서는 , 첫번째 행렬의 열의 개수가 , 두번째 행렬의 행의 개수와 동일해야한다.
위의 그림을 보고 눈치를 어느정도 챌 수 있다.
첫번째 행렬의 열의 개수가 두번째 행렬의 행의 개수보다 크거나 작으면, 계산 자체가 이루어질 수 없다.
예를 들어서 ,

두행렬의 곱을 통해 새로운 행렬의 첫번째 행과 첫번째 열에 위치한 요소를 구할려고
요소들간의 곱을 해서 합을 할려고 했더니 왼쪽의 요소 3과 대응하는 오른쪽 요소가 없는걸 볼수 있다.
왼쪽의 행렬의 크기는 2(행) X 3( 열) 이고
오른쪽의 행렬의 크기는 2(행렬) X 3(열) 이므로
왼쪽의 행렬의 열의 갯수가 오른쪽의 행렬의 행의 갯수보다 크므로 동일하지 않기 때문에
행렬의 곱셈이 정의되지 않는다.
차원의 성질을 통해서 , 행렬간의 곱셈이 정의되는지 여부를 빠르게 판단할 수있다.
만일 m x n 행렬( = 행을 m개 , 열을 n개 가지고 있는 행렬) 과
n x k 행렬( = 행을 n개 , 열을 k개 가지고 있는 행렬) 의 곱을 식으로 나타내면 다음과 같다.

따라서
두 행렬을 곱했을 때 새로운 행렬은
m개의 행과 k개의 열을 가지고 있다.
2. 행렬의 곱은 그 순서를 바꾸면 원래의 것과 반드시 같지 않다.
스칼라의 경우에는 xy = yx 가 항상 성립한다. 그러나 행렬의 경우에는
AB = BA 가 성립되지 않는 경우가 있다.
그래서 두 행렬이 AB 이렇게 표기가 되어있다고 해서 함부로 BA로 바꾸면 안된다!
단위 행렬에 대해서 알아보자
단위 행렬 또는 항등행렬 ( identity matrix) 는 정방행렬 중
대각선상에 있는 요소들이 모두 1이고 , 나머지 요소들은 모두 0 인 행렬이다.
보통 대문자 I로 표시한다.
정방행렬에 항등행렬을 앞 또는 뒤에서 곱하면 결과는 원래의 정방행렬과 같다.
즉 A · I = I · A = A 가 된다.
단위행렬은 실수연산에서의 1의 역할과 비슷하다고 생각하면 된다.
