初探Kronecker product(克罗内克积)

1.三个矩阵A、B、C的乘积与克罗内克积的关系

v e c ( A , B , C ) = ( C T ⊗ A ) ∗ v e c ( B ) \qquad \qquad \qquad \qquad \qquad vec(A,B,C)=(C^T\otimes A)*vec(B) vec(A,B,C)=(CTA)vec(B)

工作中碰到了这一公式的应用,觉得不好理解。

证明过程如下(见参考1),有需要再深究吧:
在这里插入图片描述
用例子印证下:

import numpy as np
a = np.array([[1,2,1],[2,1,0]])
b = np.array([[1,0,0],[0,1,0],[0,0,1]])
c = np.array([[1,1],[2,1],[0,2]])

print(np.ravel(np.dot(np.dot(a,b),c)))
#[5 5 4 3]
print(np.dot(np.kron(c.T,a),np.ravel(b)[:,None]).ravel())
#[5 5 4 3]

参考文献

[1] https://www.worldscientific.com/doi/pdf/10.1142/9789811202520_0002

猜你喜欢

转载自blog.csdn.net/WANGWUSHAN/article/details/121556185