matlab 对称矩阵特征值为负数,MATLAB中对称矩阵的复特征向量

我在使用matlabeig函数计算对称矩阵的特征值和特征向量时遇到了一个问题。在

矩阵D是

10x10

所有对角线元素=0.45

所有非对角线元素=-0.05

当使用[vec,val]=eig(D)时,一些得到的特征向量包含复数(即0.3384+0.0052i)。我在网上搜索过,发现了两篇关于类似问题的相关帖子,但没有帮助我找到解决办法。在

所以我在pythonnumpy中尝试了相同的子例程(纽比.利纳格.埃(D) )它给了我所有的实特征值和特征向量。Python的结果是正确的,因为我能够用一篇发表的论文来验证我的最终结果。在

我的问题是什么导致MATLAB给出对称矩阵的复特征值和特征向量?有办法绕过它吗?我当然可以用Python重写我的算法,但我宁愿避免这种情况。在

注:如果我尝试4x4矩阵,所有对角线元素=0.375,所有非对角线元素=-0.125,那么MATLAB eig(D)给出了所有实特征值和特征向量。在

提前感谢您对这个问题的任何建议。在

跟进。用于生成D和特征值/向量的代码:P = eye(10) - 1/10;

delta = 1 - eye(10);

A = -0.5 * delta;

D = P*A*P;

[vec val] =eig(D)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值