有沒有大神能用MATLAB做迭代法求矩陣的特徵值和特徵向

2021-04-01 04:36:30 字數 10410 閱讀 8647

1樓:胡圖小生

雅可比迭代

function [x,n]=jacobi2(a,b,x0,eps,m)

% jacobi迭代

%a=[9 1 1;1 8 1;1 1 9];

%b=[1;1;1];

%x0=[0;0;0];

%[x,n]=jacobi(a,b,x0)if nargin==3

eps=1.0e-6;

m=10000;

elseif nargin==4

m=10000;

endd=diag(diag(a));l=-tril(a,-1);

u=-triu(a,1);b=inv(d)*(l+u);

f=inv(d)*b;x=x0;n=0;

tol=1;

while tol>eps

x=b*x0+f;

n=n+1;

tol=norm(x-x0);%極大範數 等同於tol=max(abs(x-x0))但不能這樣用

x0=x;

if(n>=m)

disp('warning:迭代次數太多,可能不收斂');

break;

endend

高斯賽德爾迭代

function[x,n]=gauseidel2(a,b,x0,eps,m )

% detailed explanation goes here% 解的精度:eps% 迭代步數控制:m

% 解 x% 求解所需的實際步數迭代:n

%[x,n]=gauseidel(a,b,x0)if nargin==3

eps=1.0e-6;

m=10000;

elseif nargin==4

m=10000;

endd=diag(diag(a));

l=-tril(a,-1);

u=-triu(a,1);

g=(d-l)\u;

f=(d-l)\b;

x=x0;

n=0;

tol=1;

while tol>=eps

x=g*x0+f;

n=n+1;

tol=norm(x-x0);%算矩陣sup範數x0=x;

if(n>=m)

disp('warning:迭代次數太多可能不收斂')break

endend

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

2樓:大野瘦子

>>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的好處就是能夠一次性將特徵值和特徵向量求取出來,缺點就是矩陣必須是實對稱矩陣,至於演算法複雜度方面我沒有進行測試。

3樓:匿名使用者

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矩陣的特徵值。

4樓:

matlab具體**如下:

>>clc;

>>clear;

>>close;

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

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

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

5樓:g用事實說話

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

6樓:匿名使用者

>> 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為每個特徵值對應

的特徵向量

7樓:匿名使用者

[d,v]=eig(a)

8樓:匿名使用者

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

[u v]=eigs(a)

matlab用qr方法怎麼求特徵值,把程式寫出來,謝謝

9樓:匿名使用者

function l = rqrtz(a,m)%qr演算法求矩陣全部特徵值

%已知矩陣:a

%迭代步數:m

%求得的矩陣特徵值:l

a = hess(a);

for i=1:m

n = size(a);

n = n(1,1);

u = a(n,n);

[q,r]=qr(a-u*eye(n,n));

a = r*q+u*eye(n,n);

l = diag(a);

end------------------------------------

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

a =0 5 0 0 0 01 0 4 0 0 00 1 0 3 0 00 0 1 0 2 00 0 0 1 0 10 0 0 0 1 0>> rqrtz(a,50)

ans =

-3.2030

3.2030

-1.8837

1.8837

-0.6167

0.6167

>> eig(a)

ans =

-3.3243

3.3243

-1.8892

-0.6167

1.8892

0.6167

10樓:匿名使用者

看matlab幫助檔案,裡邊都有例程,電腦沒有安裝matlab,懶得安裝了,但是我知道幫助檔案裡有這個例子

11樓:言清韻柯北

前面的函式是求特徵值的函式,後面的是呼叫的例子和驗證functionl=

rqrtz(a,m)

%qr演算法求矩陣全部特徵值

%已知矩陣:a

%迭代步數:m

%求得的矩陣特徵值:la=

hess(a);

fori=1:mn=

size(a);n=

n(1,1);u=

a(n,n);

[q,r]=qr(a-u*eye(n,n));a=r*q+u*eye(n,n);l=

diag(a);

enda=[050

000;1040

00;010

300;0010

20;000

101;0000

10]a=

0500

0010

4000

0103

0000

1020

0001

0100

0010

>>rqrtz(a,50)

ans=

-3.2030

3.2030

-1.8837

1.8837

-0.6167

0.6167

>>eig(a)

ans=

-3.3243

3.3243

-1.8892

-0.6167

1.8892

0.6167

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

如何用matlab求這個矩陣的特徵值和特徵向量呢?

12樓:匿名使用者

[v,d]=eig(a)

d為特徵值

v的列向量為對應特徵值的特徵向量

13樓:化學工程

20個太多,用2個舉例:

clc;clear

m=1;n=2;

for x=1:n

for y=1:n

for z=1:n

a(:,:,m)=[0 -1 x 0;1 0 0 x;y 0 z/y -1;0 y 1 z/x];

[v(:,:,m),d(:,:,m)]=eig(a(:,:,m))

m=m+1;

endend

end結果:

v(:,:,1) =

0.0000 + 0.6015i 0.0000 - 0.6015i 0.3717 + 0.0000i 0.3717 - 0.0000i

0.6015 0.6015 -0.0000 - 0.3717i -0.0000 + 0.3717i

-0.0000 - 0.3717i -0.0000 + 0.3717i 0.6015 0.6015

-0.3717 + 0.0000i -0.3717 - 0.0000i -0.0000 - 0.6015i -0.0000 + 0.6015i

v(:,:,2) =

-0.6533 -0.6533 0.2706 + 0.0000i 0.2706 - 0.0000i

0.0000 + 0.6533i 0.0000 - 0.6533i -0.0000 - 0.2706i -0.0000 + 0.2706i

0.2706 + 0.0000i 0.2706 - 0.0000i 0.6533 0.6533

-0.0000 - 0.2706i -0.0000 + 0.2706i -0.0000 - 0.6533i -0.0000 + 0.6533i

v(:,:,3) =

0.0527 - 0.3450i 0.0527 + 0.3450i -0.4661 + 0.0198i -0.4661 - 0.0198i

-0.3238 - 0.0141i -0.3238 + 0.0141i 0.0517 + 0.4846i 0.0517 - 0.4846i

0.1132 - 0.5975i 0.1132 + 0.5975i 0.5407 0.5407

-0.6351 -0.6351 -0.0717 - 0.4974i -0.0717 + 0.4974i

v(:,:,4) =

0.1041 - 0.2772i 0.1041 + 0.2772i -0.0501 + 0.5145i -0.0501 - 0.5145i

-0.2482 - 0.0204i -0.2482 + 0.0204i 0.5498 0.5498

0.2535 - 0.5790i 0.2535 + 0.5790i 0.0867 - 0.4927i 0.0867 + 0.4927i

-0.6714 -0.6714 -0.4237 + 0.0265i -0.4237 - 0.0265i

v(:,:,5) =

0.6337 0.6337 -0.0539 - 0.4971i -0.0539 + 0.4971i

0.0386 - 0.6054i 0.0386 + 0.6054i -0.5384 -0.5384

-0.3265 + 0.0121i -0.3265 - 0.0121i -0.0740 - 0.4843i -0.0740 + 0.4843i

-0.0373 + 0.3496i -0.0373 - 0.3496i -0.4688 - 0.0167i -0.4688 + 0.0167i

v(:,:,6) =

0.6681 0.6681 0.4123 + 0.0339i 0.4123 - 0.0339i

0.0609 - 0.6253i 0.0609 + 0.6253i 0.1729 - 0.4606i 0.1729 + 0.4606i

-0.2574 + 0.0161i -0.2574 - 0.0161i 0.5578 0.5578

-0.0527 + 0.2994i -0.0527 - 0.2994i 0.2106 - 0.4810i 0.2106 + 0.4810i

v(:,:,7) =

0.5301 0.5301 -0.4680 - 0.0000i -0.4680 + 0.0000i

0.0000 - 0.5301i 0.0000 + 0.5301i -0.0000 + 0.4680i -0.0000 - 0.4680i

-0.4680 + 0.0000i -0.4680 - 0.0000i -0.5301 -0.5301

-0.0000 + 0.4680i -0.0000 - 0.4680i -0.0000 + 0.5301i -0.0000 - 0.5301i

v(:,:,8) =

-0.5573 -0.5573 -0.0000 + 0.4352i -0.0000 - 0.4352i

0.0000 + 0.5573i 0.0000 - 0.5573i 0.4352 + 0.0000i 0.4352 - 0.0000i

0.4352 + 0.0000i 0.4352 - 0.0000i -0.0000 + 0.5573i -0.0000 - 0.5573i

-0.0000 - 0.4352i -0.0000 + 0.4352i 0.5573 0.5573

d(:,:,1) =

-0.6180 + 1.0000i 0 0 0

0 -0.6180 - 1.0000i 0 0

0 0 1.6180 + 1.0000i 0

0 0 0 1.6180 - 1.0000i

d(:,:,2) =

-0.4142 + 1.0000i 0 0 0

0 -0.4142 - 1.0000i 0 0

0 0 2.4142 + 1.0000i 0

0 0 0 2.4142 - 1.0000i

d(:,:,3) =

1.8415 + 0.9852i 0 0 0

0 1.8415 - 0.9852i 0 0

0 0 -1.0915 + 0.9933i 0

0 0 0 -1.0915 - 0.9933i

d(:,:,4) =

2.3617 + 0.9230i 0 0 0

0 2.3617 - 0.9230i 0 0

0 0 -0.8617 + 0.9840i 0

0 0 0 -0.8617 - 0.9840i

d(:,:,5) =

-1.0915 + 0.9933i 0 0 0

0 -1.0915 - 0.9933i 0 0

0 0 1.8415 + 0.9852i 0

0 0 0 1.8415 - 0.9852i

d(:,:,6) =

-0.8617 + 0.9840i 0 0 0

0 -0.8617 - 0.9840i 0 0

0 0 2.3617 + 0.9230i 0

0 0 0 2.3617 - 0.9230i

d(:,:,7) =

-1.7656 + 1.0000i 0 0 0

0 -1.7656 - 1.0000i 0 0

0 0 2.2656 + 1.0000i 0

0 0 0 2.2656 - 1.0000i

d(:,:,8) =

-1.5616 + 1.0000i 0 0 0

0 -1.5616 - 1.0000i 0 0

0 0 2.5616 + 1.0000i 0

0 0 0 2.5616 - 1.0000i

民間考古大神有沒有,民間考古大神有沒有?

民間有四個大派都是高手,國家不承認是考古,是盜墓,是違法行為。他們有自己的規律和古訓,有師承口訣。什麼可以做什麼不可以做不能違背。原因不知道為什麼,照做就行了。你要是有過人的智慧型,可以去學習學習。摸金校尉是中國古代乙個盜墓者的門派。據史書記載,摸金校尉起源於東漢末年三國時期,自于漢代陳琳所作 為袁...

有沒有大神能用簡單易懂的話解釋一下什麼是區塊鏈麼

區塊鏈就是相當於在乙個公開的可查詢的平台上給放上了一些資訊,而這些資訊在放上去後,就達到了不可更改,不可消除,不會消失,而資訊在上傳的時候,也必須是要超過一半以上的人的共識,也避免的虛假,不知道這樣說可以理解不 回答親 感謝你的問題,麻煩稍等一會,這裡正在整理回答,感謝你的理解 親,區塊鏈的本質是乙...

有沒有人知道matlab怎麼考試

學校的考試 一般是做卷子,如果是專業的matlab考試 那個是需要上機的,而且是全英文版的,matlab有兩個等級權 的認證 1.mathworks certified matlab associate 2.mathworks certified matlab professional 連個財富值都...