function X = care_schur(A, G, Q) H = [A -G; -Q -A']; [U, T] = schur(H, 'complex'); [U2, T2] = ordschur(U, T, 'lhp'); n = size(A,1); X = U2(n+1:2*n, 1:n) / U2(1:n, 1:n);