본문 바로가기
AI 수학/선형대수

크로넥커 곱 (Kronecker Product)

by 깊은대학 2024. 12. 10.

두 행렬 ARn×m, BRp×q 의 크로넥커 곱(Kronecker product) AB 는 다음과 같이 정의된다.

 

AB=[a11Ba1mBan1BanmB]Rnp×mq

 

예를 들어서 행렬 A와 B가 각각 다음과 같을 때,

 

A=[1234],   B=[102030405060]

 

크로넥커 곱 AB 는 다음과 같다.

 

AB=[102030204060405060801001203060904080120120150180160200240]

 

크로넥커 곱의 몇 가지 특성을 나열하면 다음과 같다.

 

(A+B)C=AC+BCA(B+C)=AB+AC(AB)C=A(BC)ABBA(AB)T=ATBT(AB)1=A1B1

 

즉 크로넥커 곱에서 분배법칙과 결합법칙은 성립하지만 교환법칙은 성립하지 않는다. 또한 크로넥커 곱의 전치(transpose)와 역행렬은 각각의 전치와 역행렬의 크로넥커 곱과 같다.

 

 

크로넥커 곱의 다양한 적용을 위해서는 벡터화(vectorization) 연산자가 필요하다. 어떤 행렬 ARn×m 에 대한 벡터화 연산자 또는 스택(stack) 연산자 vec(A) 는 다음과 같이 행렬을 벡터로 변환하는 선형 변환으로 정의된다.

 

vec(A)=[a11a21a12a22anm]Rnm×1

 

vec(A) 는 행렬 A 의 열(column)을 순서대로 쌓아서 만든 벡터이다. 예를 들어서 행렬 A 가 다음과 같을 때,

 

A=[1234]

 

vec(A) 는 다음과 같다.

 

vec(A)=[1324]

 

정의에 의하면 행렬의 합 A+B 의 벡터화는 각각 행렬의 벡터화 합과 같다. 즉,

 

vec(A+B)=vec(A)+vec(B)

 

 

 

크로넥커 곱은 벡터화 연산자와 함께 미지수가 행렬인 선형 방정식을 푸는데 사용되는데, 예로서 실베스터 방정식 AX+XB=C, 리야프노프 방정식 ATX+XA=Q 등을 들 수 있다. 여기서 X 가 미지수인 행렬이다. 이 방정식을 푸는데 사용되는 관계식은 다음과 같이 두 식이 서로 동치라는 것이다.

 

AXB=C      (BTA)vec(X)=vec(C)

 

이를 이용하면 실베스터 방정식 AX+XB=C 를 다음과 같이 변환할 수 있다.

 

vec(AX+XB)=vec(C)  vec(AXI)+vec(IXB)=vec(C)  [(IA)+(BTI)]vec(X)=vec(C)  (ABT)vec(X)=vec(C)

 

위 식은 맨 마지막 줄은 다음과 같은 크로넥커 합(sum)의 관계식에 의한 것이다.

 

AB=IA+BI

 

리야프노프 방정식 ATX+XA=Q 는 다음과 같이 변환할 수 있다.

 

vec(ATX+XA)=vec(Q)  vec(ATXI)+vec(IXA)=vec(Q)  [(IAT)+(ATI)]vec(X)=vec(Q)  (AA)Tvec(X)=vec(Q)

 

댓글