벡터와 행렬의 연산/표기법 테이블
📂행렬대수벡터와 행렬의 연산/표기법 테이블
개요
벡터와 행렬에 대한 여러가지 표기법과 연산을 정리한 문서이다.
벡터
벡터는 주로 소문자 볼드체로 표기하며 아무 설명이 없으면 n×1 행렬, 즉 열벡터를 말한다. 벡터 x의 i번째 성분은 xi와 같이 나타낸다.
x=x1x2⋮xn,y=y1y2⋮yn
행벡터는 xT와 같이 표기하고, T를 전치라고 한다.
xT=[x1x2⋯xn],yT=[y1y2⋯yn]
벡터의 놈
벡터의 놈은 다음과 같이 정의되며 3차원 공간에서 벡터의 크기와 같은 개념이다.
∥x∥=i=1∑nxi2,∥x∥2=i=1∑nxi2
두 벡터의 내적
같은 크기의 행벡터와 열벡터의 행렬곱을 내적이라 한다. 내적의 결과는 스칼라(상수)이다.
xTy=[x1x2⋯xn]y1y2⋮yn=x1y1+x2y2+⋯+xnyn=i=1∑nxiyi
놈은 스칼라이므로 xTy=yTx가 성립하고, 놈을 내적으로 표현하면 다음과 같다.
∥x∥=xTx,∥x∥2=xTx
두 벡터의 외적
다음과 같이 열벡터와 행벡터의 행렬곱을 두 벡터의 외적outer product이라 한다(cross product가 아니다). 외적의 결과는 n×n 행렬이다.
xyT=x1x2⋮xn[y1y2⋯yn]=x1y1x2y1⋮xny1x1y2x2y2⋮xny2⋯⋯⋱⋯x1ynx2yn⋮xnyn=x1[y1y2⋯yn]x2[y1y2⋯yn]⋮xn[y1y2⋯yn]=x1yTx2yT⋮xnyT
교환법칙이 성립하지 않는다.
xyT=yxT
또한 외적의 대각합이 내적과 같다는 것을 알 수 있다.
xTy=i=1∑nxiyi=Tr(xyT)=Tr(yxT)
따라서 다음의 식이 성립한다.
∥x∥∥x∥2=i=1∑nxi2=xTx=Tr(xxT)=i=1∑nxi2=xTx=Tr(xxT)
행렬
흔히 대문자로 표기하며, 임의의 행렬은 보통 m×n 행렬이라 표기한다. 행벡터를 상하로 쌓거나, 열벡터를 좌우로 나열한 꼴을 말한다. 본 문서에서는 행렬을 열벡터들의 행벡터로 취급한다. i번째 열벡터를 xi=[x1ix2i⋯xmi]T라고 표기하면,
X=[x1x2⋯xm]=x11x21⋮xn1x12x22⋮xn2⋯x1mx2m⋮xnm=x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1mx2m⋮xnm=x11x12⋮x1nx21x22⋮x2n⋯⋯⋱⋯xm1xm2⋮xmnT=x1Tx2T⋮x2TT
행렬곱의 ij-성분은 앞 행렬의 i-행과 뒤 행렬의 j-열의 내적이므로,
XT=x1Tx2T⋮xmT,Y=[y1y2⋯yn]
XTY=x1Tx2T⋮xmT[y1y2⋯yn]=x1Ty1⋮xmTy1⋯⋱⋯x1Tyn⋮xmTyn
행렬의 놈
행렬의 놈도 벡터와 마찬가지로 각 성분의 제곱의 합으로 정의한다.
∥X∥=i=1∑mj=1∑n(xij)2
이를 ∥X∥F와 같이 표기하여 프로베니우스 놈Frobenius norm 이라 부르기도 한다. 다음과 같이 자기 자신과의 곱의 트레이스로 나타낼 수 있다.
Tr(XTX)=Trx1Tx2T⋮xnT[x1x2⋯xn]=Trx1Tx1x2Tx1⋮xnTx1x1Tx2x2Tx2⋮xnTx2⋯⋯⋱⋯x1Txnx2Txn⋮xnTxn=x1Tx1+x2Tx2+⋯+xnTxn=j=1∑nxjTxj=j=1∑n∥xj∥2=j=1∑ni=1∑m(xij)2=∥x∥F2
즉 X=[x1⋯xn]이라고 하면,
∥X∥F2=Tr(XTX)=j=1∑n∥xj∥2
행렬-벡터 연산
행렬-벡터 곱
m×n행렬 XT와 n×1벡터 y의 곱은 다음과 같다.
XTy=x1Tx2T⋮xmTy=x11x12⋮x1mx21x22⋮x2m⋯⋯⋱⋯xn1xn2⋮xnmy1y2⋮yn=x11y1+x21y2+⋯+xn1ynx12y1+x22y2+⋯+xn2yn⋮x1my1+x2my2+⋯+xnmyn=∑i=1nxi1yi∑i=1nxi2yi⋮∑i=1nximyi=x1Tyx2Ty⋮xmTy
따라서 놈은 다음과 같다
XTy2=i=1∑m(xiTy)2
행렬-행렬 곱
n×m행렬 XT와 m×k행렬 Y의 곱은 다음과 같다.
XTY=x1Tx2T⋮xnT[y1y2⋯yk]=[x11x21⋯xm1][x12x22⋯xm2]⋮[x1nx2n⋯xmn]y11y21⋮ym1y12y22⋮ym2⋯y1ky2k⋮ymk=x1Ty1x2Ty1⋮xNTy1x1Ty2x2Ty2⋮xNTy2⋯⋯⋱⋯x1Tykx2Tyk⋮xNTyk=x1Ty1x2Ty1⋮xnTy1x1Ty2x2Ty2⋮xnTy2⋯x1Tykx2Tyk⋮xnTyk=[XTy1XTy2⋯XTyk]
그러면(1), (3)에 의해 다음의 식이 성립한다.
Tr((XTY)T(XTY))=i=1∑kXTyi2=i=1∑kj=1∑n(xjTyi)2
벡터-행렬 이차 형식
x를 n×1 벡터, R=[r1r2⋯rn]T을 n×n 행렬이라고 하자. 그러면 (2)의 식을 이용해서 다음의 결과를 얻는다.
xTRTx=xT∑i=1nri1xi∑i=1nri2xi⋮∑i=1nrinxi=[x1x2⋯xn]∑i=1nri1xi∑i=1nri2xi⋮∑i=1nrinxi=x1i=1∑nri1xi+x2i=1∑nri2xi+⋯+xni=1∑nrinxi=j=1∑ni=1∑nxjrijxi=j=1∑ni=1∑nxirijxj