🔻행렬의 기본연산
- 행렬 A와 B
🔸연산의 전제 = 상등관계
- 어떤 연산을 정의하려면, 연산과 연산의 결과가 같다는 상등관계(=)가 존재해야 한다. 예를 들어, 1+2 = 3 이라는 실수의 덧셈 연산을 정의하려면 “1과 2의 합과 3이 같다”라는 정의가 선행되어야 한다.
- 행렬의 상등관계
- 어떤 두 행렬이 같다라는 것의 정의 : 동일한 크기(행과 열), 동일한 성분을 지닌 두 행렬을 같고 정의내린다.
🔸합
- 전제 : 두 행렬의 size가 완벽히 일치해야 한다.
- 연산 방법 : 두 행렬을 포개어 같은 위치끼리 합 연산한다. = 동일 크기 행렬의 성분 간 합
📢왜 행렬의 덧셈은 이렇게 정의되었는가? 서로 다른 크기의 행렬을 더해도 되지 않을까?
그림과 같은 A+B=C 연산을 생각해보자.
행렬 덧셈의 정의에 따르면 위의 식에서 A와 B의 크기를 같게 해야 하는데, A의 3열을 추가하여 0으로 채우면 될 것 같다.
A’ + B = C 식은 올바른 식이 맞다. 그런데 A+B=C 방정식과 A’+B=C 방정식이 같은가?
같지 않다! 왜냐하면 앞서 정의한 행렬의 상등관계에 의해 A와 A’가 같지 않음을 알 수 있기 때문이다.
[A+B=C와 A’+B=C는 같지 않다.]
따라서 A+B=C 식은 A’+B=C 처럼 변형될 수 없고, 행렬덧셈 연산의 정의대로 계산해야 상등관계가 맞다.
🔸차
- 전제 : 두 행렬의 size가 완벽히 일치해야 한다.
- 연산 방법 : 두 행렬을 포개어 같은 위치끼리 차 연산한다. (구체적으론 스칼라곱과 행렬합을 사용한 연산이다)
🔸스칼라곱(스칼라곱)
- 연산 방법 : 스칼라를 각 원소에 곱한다.
🔻행렬곱
- 행렬곱 용어
- inner product ⊃ dot product
🔸행렬곱 (Multiplication)
- 전제 : A,B의 행렬곱일 때, A의 열의 수와 B의 행의 수가 같아야 한다.
- 연산방법
- 행렬곱의 과정(구체적으로)
- 행렬 A에서는 r행, 행렬 B에서는 c열을 선택한다.(r행의 크기와 c열의 크기가 같아야 한다 ⇒ 행렬 A의 열 개수와 행렬 B의 행 개수가 같아야 한다.)
- 보다 명확한 원칙 : 대응하는 차원**의 원소 수가 일치해야 한다??? >>** [아래 행렬곱과 차원](#행렬곱과 차원)을 참고
- 행렬 A에서는 r행, 행렬 B에서는 c열을 선택한다.(r행의 크기와 c열의 크기가 같아야 한다 ⇒ 행렬 A의 열 개수와 행렬 B의 행 개수가 같아야 한다.)
2. A행렬 r행의 i번째 요소와 B행렬 c열의 i번째 요소를 곱한다. k번 반복하여 모두 더한다.
$$ \operatorname{result}=\displaystyle\sum_{i=1}^{k}A(r,i)\times B(i,c) $$
3. 2번의 결과값을 새로운 행렬의 (r,c)위치에 출력한다.
$$ N_{rc}=\operatorname{result} $$
```
N = np.zeros((A.shape[0],B.shape[1]))
for r in range(A.shape[0]):
for c in range(B.shape[1]):
result = 0
for i in range(A.shape[0]):
result += A[r,i] * B[i,c]
N[r,c] = result
N
'''
array([[19., 22.],
[43., 50.]])
'''
```
- 행렬곱과 차원즉, 차원이 대응되어야 한다는 의미는 행렬곱에서 차원수를 쭉 나열했을 때, 서로 붙어있는 차원끼리 수가 같아야 함을 의미한다. 그림으로 이해하는 것이 가장 좋다.[행렬곱에서 ‘차원 대응’의 의미]
- ex) M x N 행렬과 N x P 행렬을 행렬곱하면 M x P 행렬이 출력된다.
🔻행렬 연산의 성질
🔸행렬곱 연산의 성질
- 행렬의 곱셈에서 교환법칙을 적용할 수 없다.
- 행렬의 곱셈에서 결합법칙은 성립한다.
- 활용) 곱셈의 결합법칙은 연산횟수를 줄일 수 있다.
- 브루트포스의 경우 : 9번 곱셈을 수행
- 결합법칙을 활용한 거듭제곱 활용 : 4번만에 수행
- ex) 어떤 수 또는 행렬 A를 10번 곱하는 문제
- 활용) 곱셈의 결합법칙은 연산횟수를 줄일 수 있다.
- 행렬곱에 대한 항등원은 단위행렬(항등행렬)이다.
- 행렬곱에 대한 역원은 역행렬이다.
- 행렬곱 연산은 경우에 따라 다양한 의미를 가진다.
ex)
🔸행렬 거듭제곱의 성질
- 실수의 거듭제곱과 동일한 성질을 지닌다.
- \( A^0=I \) : 어떤 행렬이 영행렬이 아닐 때, 0승은 항등원이다.
- 실수에서도 0의 0승은 논쟁거리인 것처럼 행렬도 영행렬의 0승은 정의할 수 없다.
- \( (A^b)^c=A^{bc} \)
- \( A^b\cdot A^c=A^{b+c} \)
🔸행렬 거듭제곱의 성질
'수학 > 선형대수' 카테고리의 다른 글
[선형대수] 주요 행렬 - 역행렬(1/2) (0) | 2023.09.28 |
---|---|
[선형대수] 왜 행렬을 사용하는가?(2/2) - 행렬방정식 (0) | 2023.09.28 |
[선형대수] 왜 행렬을 사용하는가?(1/2) - 연립선형방정식 (0) | 2023.09.28 |
[선형대수] 행렬의 정의와 종류 (1) | 2023.09.26 |
[선형대수] 시작하기에 앞서, 기초 개념 정리(기호, 진리, 집합, 사상) (0) | 2023.09.25 |