WORK IN PROGRESS
KroneckerTools
computes chains of Kronecker
products as described in Kamenik (2005).
The following computations are performed
julia> using Pkg
julia> Pkg.add("KroneckerTools")
We exploit the following property of the Kronecker product: vec(A B C) = (CT ⊗ A) * vec(B), so as never to form the matrix corresponding to the Kronecker product and whenever possible use matrix product instead.
Let A, a m * n matrix, B, a matrix whose size depends on the context, and b = vec(B). It follows that
A chain of Kronecker products, (A1 ⊗ A2 ⊗ ... ⊗ An) b can be written as (A1 ⊗ Ip1) (Ip2 ⊗ A2 ⊗ Ip2) ... (Ipn ⊗ An)b where b is a vector and p1>, p2, ..., pn, q1, q2, ...,qn are such as making each group in brackets conformable.
O. Kamenik (2005), "Solving SDGE models: A new algorithm for the Sylvester equation", Computational Economics 25, 167--187.