matlab中如何用qr函式求特徵值和特徵向量,矩陣是mxn

2021-03-20 05:05:58 字數 6209 閱讀 3042

1樓:匿名使用者

1.矩陣qr分解直接用函式qr就可以了。qr函式適用於不是方針的矩陣分解。

2.用法[q,r]=qr(a)得到q是mm矩陣,r是mn.

3.排列大小的可以採用sort函式。

具體情況建議開啟matlab 幫助瀏覽器詳細看qr函式的用法。

2樓:電燈劍客

先不要考慮matlab了, 先回去複習一下線性代數, 單個的矩陣但不是方陣何談特徵值

即使是方陣, qr分解也不是直接用來求特徵值和特徵向量的.

儘管求所有特徵值和特徵向量最重要的演算法是qr演算法, 數學上可以解釋為反覆做qr分解, 但實際上也並不該qr這個函式來實現.

當然, 如果你一定想用qr, 那麼可以反覆迭代[q,r]=qr(a); a=q'*a*q;

直到a收斂到對角塊不超過2階的分塊上三角陣.

至於求特徵向量, 對每個特徵值各解一次方程組就行了.

就講這些, 即使你看不明白, 我也不會繼續回答了, 這純粹是浪費時間.

急求,matlab中, 已知矩陣a,已完成對a的qr分解,下一步求a的特徵值和特徵向量,程式怎麼編寫?

3樓:匿名使用者

樓主的問題是自己寫程式完成矩陣的qr分解,既然是迭代實現qr分解,就與矩陣論中說的計算特徵值和特徵向量的方法有些區別了。大體的步驟應該是首先將矩陣化成雙對角矩陣,然後追趕計算特徵值和特徵向量,程式**可以參考 徐士良編的 常用數值演算法 c語言描述

4樓:匿名使用者

求特徵向量用matlab中eig命令

第三個問題應該是階段誤差的原因吧!

matlab中如何求矩陣的特徵值和特徵向量

5樓:枕風宿雪流年

具體步驟分析如下:

1、第一步我們首先需要知道計算矩陣的特徵值和特徵向量要用eig函式,可以在命令列視窗中輸入help eig,檢視一下eig函式的用法,如下圖所示:

2、第二步在命令列視窗中輸入a=[1 2 3;2 4 5;7 8 9],按回車鍵之後,輸入[x,y]=eig(a),如下圖所示:

3、第三步按回車鍵之後,得到了x,y的值,其中x的每一列值表示矩陣a的一個特徵向量,這裡有3個特徵向量,y的對角元素值代表a矩陣的特徵值,如下圖所示:

4、第四步如果我們要取y的對角元素值,可以使用diag(y),如下圖所示:

5、第五步按回車鍵之後,可以看到已經取出y的對角線元素值,也就是a矩陣的特徵值,如下圖所示:

6、第六步我們也可以在命令列視窗help diag,可以看到關於diag函式的用法,如下圖所示:

6樓:子衿悠你心

可以運用eig函式求特徵值和特徵向量。

e=eig(a):求矩陣a的全部特徵值,構成向量e。

[v,d]=eig(a):求矩陣a的全部特徵值,構成對角陣d,並求a的特徵向量構成v的列向量。

[v,d]=eig(a,'nobalance'):與第2種格式類似,但第2種格式中先對a作相似變換後求矩陣a的特徵值和特徵向量,而格式3直接求矩陣a的特徵值和特徵向量。

例項:求矩陣a=[1,2;2,1]的特徵值和特徵向量。

拓展說明:

在matlab中,還有個函式eigs,可以求特徵向量和特徵值的子集。

d = eigs(a)     %求稀疏矩陣a的6個絕對值最大特徵值d,d以向量形式存放。

d = eigs(a,k)        %返回k個最大特徵值

7樓:百度使用者

a=[1 1/4;4 1]

a =1.0000 0.2500

4.0000 1.0000

>> [v,d]=eig(a)

v =0.2425 -0.2425

0.9701 0.9701

d =2 0

0 0

按照這道題的計算過程算就可以了,eig是求特徵值和特徵向量命令,v是特徵向量,是列向量,d是特徵值矩陣,主對角線元素就是特徵值,與特徵向量的列對應的

8樓:匿名使用者

[v.d]=eig(a) a為矩陣

在matlab中求矩陣特徵值和特徵向量的**

9樓:大野瘦子

>>clc;clear;close;

>>a=[3,-1,-2;2,0,-2;2,-1,-1];

>>[x,b]=eig(a) %求矩陣a的特徵值和特徵向量,其中b的對角線元素是特徵值,

%x的列是相應的特徵向量

最後的結果是:

x =0.7276 -0.5774 0.6230

0.4851 -0.5774 -0.2417

0.4851 -0.5774 0.7439

b =1.0000 0 0

0 0.0000 0

0 0 1.0000

特徵值和特徵向量的求解根據專案的需求或者是矩陣的具體形式,主要可以分成如下三種形式:

1、只需要獲得矩陣的最大特徵值和特徵值所對應的特徵向量。

2、需要求取矩陣的所有特徵值。

3、需要求取特徵值和特徵向量的矩陣為實對稱矩陣,則可以通過另一種方法進行求解。

這三種形式特徵值和特徵向量的求取:

1.如果自己僅僅要求最大特徵值的話肯定採用形式1的演算法,該演算法的優點是時間複雜度較低,計算量相對較小,該方法不但能夠求取特徵值和特徵向量,而且只要特徵值不全為0,該方法都能獲得想要的結果。

2.如果需要獲得一個矩陣的所有特徵值,則通過形式2可以很好的解決該問題,但是該方法的缺點是僅僅能夠獲得特徵值,獲得特徵值之後利用其它方法進行求解,這樣做自然而然計算量就大了起來。

3.如果矩陣為實對稱矩陣,那麼可以通過形式3對其進行特徵值和特徵向量的求取,該方法相對於形式2的好處就是能夠一次性將特徵值和特徵向量求取出來,缺點就是矩陣必須是實對稱矩陣,至於演算法複雜度方面我沒有進行測試。

10樓:匿名使用者

1、首先開啟自己的電腦,然後在桌面上開啟matlab軟體,進入matlab主介面。

2、然後需要知道計算矩陣的特徵值和特徵向量要用eig函式,可以在該軟體的命令列視窗中輸入help eig,檢視一下eig函式的用法。

3、在該軟體命令列視窗中輸入a=[1 2 3;2 4 5;7 8 9],你按鍵盤上的回車鍵之後,輸入[x,y]=eig(a)。

4、當你按了鍵盤上的回車鍵之後,得到了x,y的值,其中x的每一列值表示矩陣a的一個特徵向量,裡面有3個特徵向量,y的對角元素值代表a矩陣的特徵值。

11樓:

matlab具體**如下:

>>clc;

>>clear;

>>close;

>>a=[3,-1,-2;2,0,-2;2,-1,-1];

>>[x,b]=eig(a)

**中最後一行指的是求矩陣a的特徵值和特徵向量,其中b的對角線元素是特徵值,而x的列即為相應的特徵向量。

12樓:g用事實說話

不明白你說的是什麼意思,我看不懂啊,你能把那個意思詳細說一下嗎?

13樓:匿名使用者

>> a=[3 -1 -2;2 0 -2;2 -1 -1]a =3 -1 -2

2 0 -2

2 -1 -1

>> [v,d]=eig(a)

v =0.7276 -0.5774 0.

62300.4851 -0.5774 -0.

24170.4851 -0.5774 0.

7439d =1.0000 0 00 0.0000 00 0 1.

0000d為特徵值,v為每個特徵值對應

的特徵向量

14樓:匿名使用者

[d,v]=eig(a)

15樓:匿名使用者

a=[3 -1 -2 ;2 0 -2;2 -1 -1];

[u v]=eigs(a)

如何用excel計算矩陣特徵值和特徵向量

16樓:382994567_藥售

先輸入資料,我記得spss有這兩個值的選項吧?直接點一下就出來了

17樓:平成紅冬

微軟的excel目前似乎還沒強大到做多後設資料分析。我是學統計的,但是還真不知道excel可以做這個。如果真的想求矩陣的特徵值和特徵向量,建議你還是用spss13及以上的版本,或者是eviews3.

1以上的版本。

這兩個軟體都支援直接匯入excel2003的檔案。

matlab怎麼計算矩陣的特徵值和特徵向量

18樓:天雲一號

在matlab中,可以用eig函式計算矩陣的特徵值和特徵向量。舉例如下:

>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9]  % 原始資料矩陣

a =1     2     3

4     5     6

7     8     9

>> [v, d] = eig(a)  % 特徵值分解,其中v的每一列表示矩陣a的一個特徵向量,d是一個對角矩陣,對角線上的元素表示矩陣a的特徵值

v =-0.2320   -0.7858    0.

4082-0.5253   -0.0868   -0.

8165-0.8187    0.6123    0.

4082d =16.1168         0         00   -1.1168         00         0   -0.

0000

19樓:我行我素

類似這樣:

a=[....];

[v,d]=eig(a);%v是特徵向量組成的矩陣,d的對角線元素就是特徵值

20樓:今天

使用庫函式eig()

eig: find eigenvalues and eigenvectors(返回矩陣的特徵值和特徵向量; )

[v,d] = eig(a)

d是特徵值

v特徵向量

21樓:匿名使用者

[v, d]=eig(a)

怎麼用matlab求矩陣的特徵值和特徵向量

用qr方法怎樣求矩陣的特徵值?

22樓:匿名使用者

對稱矩陣用雅可比迭代法求特徵值;一般矩陣 (非對稱矩陣) 用qr迭代法求特徵值。看下面例題。

23樓:匿名使用者

a=q r

a1=r q=q1 r1

a2=r1 q1=q2 r2

...注意所有的a,a1,...相似(a1=rq=q^t a q =q^ a q),具有相同的特徵值。

在一定條件下最終收斂到一個上三角陣,把對角線上的元拿出來就是特徵值。事實上,因為a是對稱矩陣,a1=q1^t a q 所以a1是對稱陣(顯然a1^t=a1),以此類推,a2,a3...都是對稱陣。

所以當a是對稱陣時an收斂於對角陣(既是上三角陣又是對稱陣,所以是對角陣),對角線上的元素就是特徵值。

如何用matlab求矩陣的特徵值及其特徵向量

24樓:射手座

[v,d]=eig(a):求矩陣a的全部特徵值,構成對角陣d,並求a的特徵向量構成v的列向量

a=[1 2 3;4 5 3;5 4 2];

>> [v,d]=eig(a)

v =-0.370937915979909 -0.691545561718756 0.482529180116882

-0.703281764566580 0.083451238716327 -0.753226224556934

-0.606465021346326 0.717496081399613 0.447007656506505

d =9.696761517759944 0 0

0 -2.353923226499950 0

0 0 0.657161708740017

如何用matlab求符號函式陣列或函式矩陣的導數

diff 函式 matlab函式怎麼輸出陣列 temp.m檔案中寫如下函式 function array temp array 1,2,3,4,5 endarray就是函式的返回值,你給它賦什麼值,它就返回什麼。專之後在 mand呼叫即可如 屬 temp ans 1 2 3 4 5也可以這樣呼叫 a...

如何用matlab求特徵向量,如何用MATLAB求特徵向量

用eig函式,例如bai b 3 2 9 2 eps 2 4 1 eps eps 4 eps 2 1 0 5 5 1 1 u v eig b u 0.6153 0.4176 0.0000 0.1496 0.7881 0.3261 0.0000 0.1317 0.0000 0.0000 0.0000 ...

如何用matlab畫二維函式影象

如果是初學 bai,建議使用du嚴格的數值繪圖命zhi令,在清楚函式定義域的dao前提下畫圖 clear all clc x 3 0.01 3 y exp x plot x,y grid on axis 3,3,2,6 log x 這個函式版,如果不限定權定義域的話,會有複數解的。clear all...