2017-04-12 38 views
1

我很難找到一種方式來完成我的功能,它決定了矩陣是否可對角化。命令[P,D] = eig(A)產生一個特徵值的對角矩陣D和一個完整的矩陣P,其列是相應的特徵向量,所以AP = PD。顯然,如果P是可逆的,它的列形成一個基礎,而A是可對角化的。如果P不是可逆的,則矩陣A不是可對角化的,或者等價地,A沒有足夠的線性獨立特徵向量來形成基礎。查找matlab中矩陣P中線性無關列的個數?

L =對角線(A)

N =尺寸(A,1)

[P,d] = EIG(A);

//我必須找到P個k個線性無關的列嗎?

//我必須比較k和n以確定A是否可對角化?

+0

這似乎是。一個數學問題而不是一個編程問題。 – beaker

+2

不是['排名'](https://nl.mathworks.com/help/matlab/ref/rank.html)你在搜索什麼? – m7913d

回答

0

有幾種方法來檢查矩陣的可逆性(在你的情況P)。

  1. 秩(P)==分鐘(大小(P)) - P滿秩
  2. 的isEmpty(空(P))== 1 - 空零空間
  3. COND(P)<閾 - 檢查條件數

用於分類的方陣作爲機器可逆的MATLAB默認閾值爲COND(A)< 1 /((MAX(尺寸(A))* EPS)