在作業中需要求某個矩陣的特徵值和特徵向量,當然同學們都會使用 matlab 內建的函式[v, d] = eig(a),這樣得到的對角矩陣 d 其對角線元素就是從小到大排列的的特徵值。有的同學希望能將這個對角線元素單獨抽取出來變成乙個行向量或者列向量,還希望特徵值從大到小排列,為了達到這個目的,大家用了各種各樣的方法。其實 matlab 內建的函式就有diag()可以將乙個對角矩陣轉化為乙個向量,也可以將乙個向量轉化為乙個對角矩陣。轉換完之後對向量進行逆序排列,我看到有同學硬是寫了乙個氣泡排序來完成這個工作,你的資料結構老師一定非常欣慰。但是在 matlab 裡不用從頭開始,直接呼叫sort()函式就行了~但是在這裡還有更簡單的方法,wrev()函式就可以將乙個向量逆序排列,fliplr()函式可以將乙個矩陣左右映象對稱,所以如果想得到從大到小排列的特徵值,只要這樣就行了:
% 得到從大到小排列的特徵值
[v, d] = eig(a);
lambda = wrev(diag(d));
v = fliplr(v);
這樣特徵值和特徵向量就都排列好了。 特徵值 特徵向量
最近在學lsc,想蒐集一些特徵值和特徵向量的知識 1 特徵值和特徵向量 矩陣的基 定義 乙個m n的矩陣可以看成是n個列向量組成,這n個列向量的線性組合構成乙個列空間,而通常這n個列向量不是線性無關的,那麼求出這n個列向量中不相關的r個,可以稱這r列為矩陣列空間的基。基上投影的計算 要準確描述向量,...
特徵向量與特徵值
在看線性代數這一部分的時候,真是一頭霧水。雖然明白了特徵值和特徵向量的求法,但總覺得沒有用。在 理解矩陣 一文中,雖然提到了這與矩陣的本質有關,但並未詳細提及,但我知道了一定具有一定的幾何意義。後來,檢視了 特徵向量的幾何意義 一文,才明白了。特別是wikipedia中關於 特徵向量 的文章,終於對...
特徵值與特徵向量
我們知道,矩陣乘法對應了乙個變換,是把任意乙個向量變成另乙個方向或長度都大多不同的新向量。在這個變換的過程中,原向量主要發生旋轉 伸縮的變化。如果矩陣對某乙個向量或某些向量只發生伸縮變換,不對這些向量產生旋轉的效果,那麼這些向量就稱為這個矩陣的特徵向量,伸縮的比例就是特徵值。實際上,上述的一段話既講...