24小时热门版块排行榜    

查看: 1028  |  回复: 1

田山东

捐助贵宾 (著名写手)

[求助] matlab如何对特征值连同相应特征向量排序

用matlab得到特征值,由于哈密顿不严格厄米,结果在算特征值的时候出现很小的虚部,比如1.0e-15i,导致特征值不能按照从小到大顺序排列,请问,有没有哪个函数可以对特征值重新来排序,把相应的特征向量也跟着排过去?
我自己写个语句,也能实现,我担心这样会浪费时间,想找个内嵌的函数直接调用过来,下面是我写的代码,大家看下还有没有可以优化的?
D是特征值的哈密顿矩阵,V是相应的特征向量的哈密顿矩阵,我知道可以用向量化方法来解决,但是怎么去搞呢? IQ是总的矩阵维数,挨个比较很浪费时间啊。
for IP=1:IQ-1
for IC=1:IQ-IP
if(D(IC,IC)>D(IC+1,IC+1) )
        SMIN=D(IC,IC);
        D(IC,IC)=D(IC+1,IC+1);
        D(IC+1,IC+1)=SMIN;

    for J=1:IQ
        TEMP=V(J,IC);
        V(J,IC)=V(J,IC+1);
    V(J,IC+1)=TEMP;
    end
end
end
end
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

everythinghasitsseason.enjoyyourlife.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

H(3500,3500),J(3500,3500),求两个矩阵的特征值和特征向量用时间t1,
H2(7000,7000),求一个矩阵的特征值和特征向量用时间t2
请问哪个时间更多?
everythinghasitsseason.enjoyyourlife.
2楼2012-12-07 22:31:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 田山东 的主题更新
信息提示
请填处理意见