1

这是我的问题,我有一个实对称矩阵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,但这个向量没有给我一个正交矩阵。有人可以向我解释这是什么问题吗?

4

1 回答 1

3

查看全局变量rightmatrixleftmatrix然后调用similaritytransform. 当我尝试您的示例时,我发现这rightmatrix . leftmatrix是单位矩阵(也是如此leftmatrix . rightmatrix)。

我同意文档similaritytransform并不完全清楚。那好吧。

于 2013-10-02T19:20:32.340 回答