簡體   English   中英

MATLAB中對稱矩陣的復特征向量

[英]Complex eigenvectors for symmetric matrix in MATLAB

我有以下代碼片段,試圖計算真實對稱矩陣的本征分解

K = 3;
n = 10;

Z = rand(n,K);
B = rand(K,K);
B = 0.5*(B+B') + 3*eye(K);
W = Z*B*Z';
if issymmetric(W) && isreal(W)
    [U,D] = eig(W)
end

不幸的是,這似乎在MATLAB R2013a上產生了真正復雜的特征向量。 我曾經認為eig對於真正的對稱矩陣應該使一切保持真實。 有人知道為什么會這樣嗎?

PS。 例如,更改為n = 6,將輸出實數。

當矩陣是實且對稱的時,MATLAB eig通常返回實特征向量。 舍入誤差會使Z*B*Z'稍微不對稱。 我不知道issymmetric是如何實現的(這是一個內置函數),但是也許eig不會使用相同的標准來確定矩陣是否比issymmetric實且對稱。

(W+W')./2是實現矩陣數值對稱的一種簡單方法。 因此eig((W+W')./2)應該返回實值和向量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM