728x90
1. 외적과 크로네커 곱
벡터의 외적 (텐서곱)
벡터의 내적과 달리 외적의 연산 결과는 행렬로 도출됨
크로네커 곱
외적의 특수한 경우로, 표기법은 동일함
행렬 A가 nxp행렬이고 B가 mxd 행렬일 때, A,B의 크로네커 곱은 크기가 nmxpd인 행렬이다.
2. 벡터곱 (크로스곱)
정의
3차원 공간의 벡터들 간에 적용할 수 있는 연산으로, 벡터 u,v의 벡터곱 uxv의 의미는 u와 v에 수직인 벡터를 의미한다
기하학적 의미
- 벡터 a,b가 있을 때 a x b는 두 벡터에 수직인 벡터를 의미한다.
- ||a x b|| = 0 : 만약 벡터 a,b가 평행한다면 (같은 선 상에 있다면) 벡터 곱의 크기는 0이다.
- ||a x b||의 의미
- 벡터 a,b와 수직하는 벡터의 길이
- a,b가 만드는 평행사변형의 넓이(!)
- 평행사변형의 넓이는 평행사변형의 양 변 x 높이인데 양 변은 각각 ||a||,||b||이며 높이는 ||b||sin 이다.
- 그러므로 ||a x b|| = ||a||||b||sin
3. 삼중곱
스칼라 삼중곱
- 벡터 b,c를 벡터곱한 이후 a와 내적하는 것을 의미함
- 기하학적으로는 a,b,c의 벡터로 정의되는 평행 육면체의 부피를 의미한다.
벡터 삼중곱
- a x (b x c)
- 스칼라 삼중곱에서 벡터 간 연산을 모두 벡터곱으로 수행하는 것을 의미한다.
파이썬 실습
#외적 연산 실습
#1. numpy
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5])
res = np.outer(a,b)
#2. python
def outer_product(a,b):
res= []
n1 = len(a)
n2 = len(b)
for i in range(0,n1):
row = []
for j in range(0,n2):
val = a[i]*b[i]
row.append(val)
res.append(row)
return res
'👩💻LEARN : ML&Data > Book Study' 카테고리의 다른 글
[알고리즘 구현으로 배우는 선형대수] #12. 대각화 (0) | 2023.04.13 |
---|---|
[알고리즘 구현으로 배우는 선형대수] #10. 고유값과 고유벡터 (0) | 2023.04.13 |
[알고리즘 구현으로 배우는 선형대수] #8. 내적(inner product) (1) | 2023.04.12 |
[딥러닝 파이토치 교과서] #4. 딥러닝 시작 (0) | 2023.04.11 |
[알고리즘 구현으로 배우는 선형대수] #7. 기저와 차원 (0) | 2023.04.10 |