本博文源於matlab基礎,旨在實現matlab計算方陣對應特徵值的特徵向量。就以一道實例出發,大家以葫蘆畫瓢就行了。
例子:求5階方陣特徵值與特徵向量
實驗步驟
- 使用eig函數求出特徵值特徵向量
- 再次使用null函數對特徵
matlab代碼
>> A = [11 -6 4 -10 -4; -3 5 -2 4 1; -8 12 -3 12 4;1 6 -2 3 -1;8 -18 8 -14 -1];
>> [V,D]=eig(A)
>V =
-0.3244 0.5669 0.2698 -0.5762 -0.2020
0.1622 -0.1890 -0.1713 0.3426 -0.0433
0.6489 -0.5669 -0.5138 0.4673 0.4904
0.1622 -0.0000 -0.2440 -0.4515 0.3318
-0.6489 0.5669 0.7579 -0.3584 -0.7789
D =
3.0000 0 0 0 0
0 5.0000 0 0 0
0 0 5.0000 0 0
0 0 0 1.0000 0
0 0 0 0 1.0000
>> d=eig(A);
>> B1=d(1)*eye(5)-A;
>> P1=null(B1,'r')
P1 =
0.5000
-0.2500
-1.0000
-0.2500
1.0000
>> B2=d(2)*eye(5)-A;
>> P2=null(B2,'r')
P2 =
2.0000 1.0000
-0.3333 -0.3333
-1.0000 -1.0000
1.0000 0
0 1.0000
>> B3=d(4)*eye(5)-A;
>> P3=null(B3,'r')
P3 =
0.8000 0.6000
-0.6000 -0.2000
-0.4000 -0.8000
1.0000 0
0 1.0000
>>
大家熟悉線性代數應該明白特徵值與特徵向量的定義,因此需要用到null函數,null函數是求求解零空間。因此特徵值1的特徵向量是p1,特徵值是5的特徵向量是p2,特徵值是1的特徵向量是p3