restart; with(LinearAlgebra): S:=Matrix(5,5,[[a(1),b(1),0,0,0],[c(1),a(2),b(2),0,0], [0,c(2),a(3),b(3),0],[0,0,c(3),a(4),b(4)],[0,0,0,c(4),a(5)]]); D1:=DiagonalMatrix([1,b(1),b(1)*b(2),b(1)*b(2)*b(3),b(1)*b(2)*b(3)*b(4)]); B1:=D1.S.MatrixInverse(D1); L:=Matrix(5,5,[[1,0,0,0,0],[e(1),1,0,0,0],[0,e(2),1,0,0], [0,0,e(3),1,0],[0,0,0,e(4),1]]); U:=Matrix(5,5,[[q(1),1,0,0,0],[0,q(2),1,0,0],[0,0,q(3),1,0], [0,0,0,q(4),1],[0,0,0,0,q(5)]]); T:=L.U; F:=DiagonalMatrix([-1,q(1),-q(1)*q(2),q(1)*q(2)*q(3),-q(1)*q(2)*q(3)*q(4)]); A:=MatrixInverse(F).T.F; X:=Matrix(5,5,[[q(1),0,0,0,0],[-e(1),q(2),0,0,0], [0,-e(2),q(3),0,0],[0,0,-e(3),q(4),0],[0,0,0,-e(4),q(5)]]); Y:=Matrix(5,5,[[1,-1,0,0,0],[0,1,-1,0,0], [0,0,1,-1,0],[0,0,0,1,-1],[0,0,0,0,1]]); X.Y; # = A B:=Y.X; D2:=DiagonalMatrix([1,sqrt(e(1)*q(1)),sqrt(e(1)*q(1)*e(2)*q(2)), sqrt(e(1)*q(1)*e(2)*q(2)*e(3)*q(3)), sqrt(e(1)*q(1)*e(2)*q(2)*e(3)*q(3)*e(4)*q(4))]); H:=MatrixInverse(D2).T.D2: H:= simplify(H,symbolic); R:=Matrix(5,5,[[sqrt(q(1)),sqrt(e(1)),0,0,0],[0,sqrt(q(2)),sqrt(e(2)),0,0], [0,0,sqrt(q(3)),sqrt(e(3)),0],[0,0,0,sqrt(q(4)),sqrt(e(4))], [0,0,0,0,sqrt(q(5))]]); Transpose(R).R;