2016-09-21 88 views
0

當我想計算複雜4 * 4矩陣的特徵值和特徵向量時,我有一個問題M。 讓我們舉個例子:如何在Matlab中獲得具有特定歸一化條件的特徵值和特徵向量

M =

[7.71 0.88 -0.47i 0.11i;

0.88 19.09 0.11i -0.02i;

-0.47i 0.11i -7.71 -0.88;

0.11i -0.02i -0.88 -3.44]

這有點像,M*V=D*V,這裏V = [a1, a2, i *b1, i *b2]D是特徵值。 a1,a2,b1,b2是實數值,i是虛數指數。

如果我們使用命令eig(M)直接從MATLAB,它會給特徵值與norm(V)=sqrt(a1^2+a2^2+b1^2+b2^2)=1

但現在我需要與條件a1^2+a2^2+(i *b1)^2+(i *b2)^2=1代替norm(V)=1

的特徵值,請評論,如果有人得到一個提示。 非常感謝。

此致 麥克

+0

在你的例子中,似乎a1,a2,i * b1,i * b2是特徵向量之一的元素。爲了計算範數,需要使用abs,使得範數(V)= sqrt(abs(a1)^ 2 + abs(a2)^ 2 + abs(b1)^ 2 + abs(b2)^ 2)= 1 ;是正確的。請將M矩陣添加到問題中。並詳細闡述和解釋你想要做什麼。 – rahnema1

+0

hi rahnema1,如果我使用eig來計算,它會自動將特徵向量歸一化爲規範(V)= 1。但是現在我想用特徵向量的新歸一化進行計算。 – Mike22LFC

+0

解答已更新! – rahnema1

回答

0

對於該溶液中的符號工具箱所需的第一部分。因爲我不手邊的符號工具箱所以通過最大值提供的解決方案:

您有4個形成本徵矢量複數說:

A: a1 + %i * a2; 
B: b1 + %i * b2; 
C: c1 + %i * c2; 
D: d1 + %i * d2; 

%i的符號表示虛數單位。 的矢量的範數2是:

sqrt(cabs(A)^2 + cabs(B)^2 + cabs(C)^2 + cabs(D)^2). 

這裏cabs指複數abs。 所以,我們追求的是數量v這樣,如果我們除以它的向量的元素所產生的載體具有這個屬性:

(cabs(A/v)^2 + cabs(B/v)^2 + (%i * cabs(C/v))^2 + (%i * cabs(D/v))^2) = 1; 

我們可以求解方程爲v

A: a1 + %i * a2; 
B: b1 + %i * b2; 
C: c1 + %i * c2; 
D: d1 + %i * d2; 
eq: (cabs(A/v)^2 + cabs(B/v)^2 + (%i * cabs(C/v))^2 + (%i * cabs(D/v))^2) - 1; 
solve(eq , v); 

結果

v = sqrt([a1^2 + a2^2 + b1^2 + b2^2 - c1^2 - c2^2 - d1^2 - d2^2 ]) 
    =sqrt (cabs(A)^2 + cabs(B)^2 - cabs(C)^2 - cabs(D)^2) 

正則化特徵向量的Matlab代碼:

M=[... 

7.71 0.88 -0.47i 0.11i; 

0.88 19.09 0.11i -0.02i; 

-0.47i 0.11i -7.71 -0.88; 

0.11i -0.02i -0.88 -3.44]; 

% with nobalance eigenvector do not necessarily normalized 
[VEC, D] = eig(M, 'nobalance'); 
ABS2 = abs(VEC).^2; 
ABS2(3:4,:) = -ABS2(3:4,:); 
v = sqrt(sum(ABS2,1)); 
VEC = bsxfun(@rdivide,VEC, v) 
相關問題