这是我的问题,我有一个真正的对称矩阵 M 取决于两个参数 a,b (假设为正)我想找到一个正交矩阵 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,但这个向量不给我一个正交矩阵。有人可以向我解释这是什么问题吗?
答案 0 :(得分:3)
致电rightmatrix
后,请查看全局变量leftmatrix
和similaritytransform
。当我尝试你的例子时,我发现rightmatrix . leftmatrix
是单位矩阵(因此leftmatrix . rightmatrix
)。
我同意similaritytransform
的文档并不完全清楚。哦,好吧。