37
Algorithm 1 : An Iterative Rational Krylov Algorithm (IRKA) for MIMO Systems
Input: Matrices A, B, and C; desired reduced system size r;
shift convergence tolerance εs
Output: Reduced order matrices Ar, Br, Cr
1: Initialize Ar, Br, Cr to be random matrices of appropriate reduced dimensions
2: Compute shifts σi «--Aj(Ar) for i = 1 : r
3: Construct Vr and Wr so that
Ran(K) = span{(σ√- A) 1Bb1,... ,(σrI — A) 1Bbr}
Ran(IKr) = span{(σ1/ — Aτ)~1Cτc1,..., (σrI — Aτ)~1Cτcr},
where
Arxi = xiλl, yy Ar--= Xyy? and y[xi = 1,
b1 y1Br, C1 CrXi-
4: while (relative change in σ2 > εs) do
5: Set Ar = (WrτVr)~1WrτAVr, Br = (WrτVr)~1WrτB, and Cr = CVr
6.∙ σi <--Az(Ar) for i = 1,..., r
7: Update Vr and Wr so that
Ran(Ur) = span{(σι∕- A)~1Bb1,... ,{σrI - A)~1Bbr}
Ran(Wr) = span{(σj/ — Aτ)~1Cτc1,..., (σrI — Aτ)~1Cτcr},
where
Arxi = xi∖i, yf Ar = ∖iyl and yξxi = 1,
b1 yiBr, cl CrXi
8: Ar = (WrτVr)-1WrτAVr, Br = (WrτVr)-1WrτB, and Cr - CVr
9: end while