Вот моя проблема: у меня есть реальная симметричная матрица M, зависящая от двух параметров a,b (которые считаются положительными), и я хочу найти ортогональную матрицу < em>P такой, что PMP^{-1} — диагональная матрица. Вот пример того, что я сделал:
assume(a>0,b>0);
M : matrix([a,a+b,a+b],[a+b,a,a+b],[a+b,a+b,a]);
load("eigen");
[myeigval,myeigvec]:similaritytransform(ev(M,hermitianmatrix));
или просто,
assume(a>0,b>0);
M : matrix([a,a+b,a+b],[a+b,a,a+b],[a+b,a+b,a]);
load("eigen");
[myeigval,myeigvec]:similaritytransform(M);
Я получаю тот же результат для этих двух тестов:
[[[2*b+3*a,-b],[1,2]],[[[1/sqrt(3),1/sqrt(3),1/sqrt(3)]],[[1/sqrt(2),0,-1/sqrt(2)],[0,1/sqrt(2),-1/sqrt(2)]]]]
Норма векторов равна 1, но эти векторы не дают мне ортогональной матрицы. Может кто-нибудь объяснить мне, в чем проблема?