A brute force solution can be obtained by, first, defining
x = {{x11[t], x12[t]}, {x21[t], x22[t]}};
y = {{-2*I, 1}, {1, 0}};
f = {{1, 2 t w}, {-I, -I (2 t w - 4)}};
g = {{g11, g12}, {g21, g22}};
Then, the components of x
are obtained from
sx = DSolve[D[x, t] == I w/2 (x . y - ConjugateTranspose[y] . x),
Flatten[x], t] // Simplify // Flatten
(* {x11[t] -> 1/4 E^(t w) ((2 + t w)^2 C[1] +
I t w ((2 + t w) C[2] - (2 + t w) C[3] - I t w C[4])),
x12[t] -> 1/4 E^(t w) (4 C[2] + 2 I t w C[1] - C[4]) +
t^2 w^2 (I C[1] - C[2] + C[3] + I C[4])),
x21[t] -> 1/4 E^(t w) (4 C[3] - 2 I t w (C[1] - C[4]) +
t^2 w^2 (-I C[1] + C[2] - C[3] - I C[4])),
x22[t] -> 1/4 E^(t w) (t^2 w^2 C[1] + I t w (-2 + t w) C[2] -
I t w (-2 + t w) C[3] + (-2 + t w)^2 C[4])} *)
Expressing this result in terms of f
and g
is accomplished by
Solve[Thread[Simplify[
Exp[t w] f . g . ConjugateTranspose[f], {t, w} \[Element]
Reals] == x /. sx], {C[1], C[2], C[3], C[4]}] // Flatten
(* {C[1] -> g11, C[2] -> I (g11 - 4 g12), C[3] -> -I (g11 - 4 g21),
C[4] -> g11 - 4 g12 - 4 g21 + 16 g22} *)
x /. Simplify[sx /. %]
(* {{E^(t w) (g11 + 2 t w (g12 + g21 + 2 g22 t w)),
I E^(t w) (g11 + 2 g12 (-2 + t w) + 2 t w (g21 + 2 g22 (-2 + t w)))},
{-I E^(t w) (g11 + 2 g21 (-2 + t w) + 2 t w (g12 + 2 g22 (-2 + t w))),
E^(t w) (g11 + 2 (-2 + t w) (g12 + g21 - 4 g22 + 2 g22 t w))}} *)