以前のリビジョンの文書です
メモ
A:matrix([0,0,0,-(L+2*M),0],[0,0,0,-L,0],[0,0,0,0,-M],[-1/P,0,0,0,0],[0,0,-1/P,0,0]);
B:matrix([0,0,0,0,-L],[0,0,0,0,-(L+2*M)],[0,0,0,-M,0],[0,0,-1/P,0,0],[0,-1/P,0,0,0]);
C:A*cos(x)+B*sin(x);
[vals,vecs]:trigsimp(eigenvectors(C));
vals;
M M 2 M + L 2 M + L
(%o82) [[- sqrt(-), sqrt(-), - sqrt(-------), sqrt(-------), 0],
P P P P
[1, 1, 1, 1, 1]]
a2:-vecs[1][1]*cos(x)*sin(x)*M*2;
a4:-vecs[2][1]*cos(x)*sin(x)*M*2;
a1:trigsimp(vecs[3][1]*(2*cos(x)^2*M+L));
a5:trigsimp(vecs[4][1]*(2*cos(x)^2*M+L));
a3:ratsubst(-cos(x)^2,cos(x)^2*sin(x)^2/(cos(x)^2-1),vecs[5][1]*sin(x)^2);
R:transpose(matrix(a1,a2,a3,a4,a5));
load("diag");
Cm:diag([-sqrt(L+2*M)/sqrt(P),-sqrt(M),0,0,0]);
Cp:diag([0,0,0,sqrt(M),sqrt(L+2*M)/sqrt(P)]);
fullratsimp(trigsimp(R^^(-1).C.R),M);
ratsubst(a,b,c)は表現cの中のbをaに変えるコマンド