A={{2,-1,1,2},{1,2,3,1},{0,0,2,-1},{0,0,1,2}};
MatrixForm[A]

chi=Det [A-t IdentityMatrix[4]]
Factor[chi]
Solve[chi==0,t]

(* wartosc wlasna 2+I *)
B=A-(2+I) IdentityMatrix[4];MatrixForm[B]

K1=NullSpace[B]
K2=NullSpace[B.B]

w2=K2[[1]]
w1=B.w2

(* lancuszek dla sprzezonej wartosci wlasnej 2-I *)
v2=Conjugate[w2]
v1=Conjugate[w1]

(* Macierz przejścia z bazy Jordana do standardowej *)
X=Transpose[{v1,v2,w1,w2}];MatrixForm[X]

MatrixForm[Inverse[X].A.X]

(* baza rzeczywista *)
a1=(v1+w1)/2
a2=(v2+w2)/2
b1=(v1-w1)/(2 I)
b2=(v2-w2)/(2 I)

(* Rzeczywista postac Jordana *)
Y=Transpose[{a1,b1,a2,b2}];MatrixForm[Y]
MatrixForm[Inverse[Y].A.Y]