冪法,反冪法求解矩陣最大最小特征值及其對應的特征向量_第1頁
冪法,反冪法求解矩陣最大最小特征值及其對應的特征向量_第2頁
冪法,反冪法求解矩陣最大最小特征值及其對應的特征向量_第3頁
冪法,反冪法求解矩陣最大最小特征值及其對應的特征向量_第4頁
冪法,反冪法求解矩陣最大最小特征值及其對應的特征向量_第5頁
免費預覽已結束,剩余10頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數值計算解矩陣的按模最大最小特征值及對應的特征向量一.哥法.幕法簡介:當矩陣A滿足一定條件時,在工程中可用幕法計算其主特征值(按模最大)及其特征向量。矩陣A需要滿足的條件為:|儲卜|九2戶以九n戶0,%為A的特征值存在n個線性無關的特征向量,設為XX2,,4計算過程:n對任意向量X(0),有x(0)=£%5,%不全為0,則有i1X(k1)=AX的=.=Ak1X(0)nnk1k-1=£A國木uii=1i=1小書1L/裊2k+1上上/'-n'k+I=1忤M+(一)a?U2+()anUnJ九1九11k11lUi2可見,當|一|越小時,收斂越快;且當k充分大時,有,

2、i(k+1)nk1X()=匕«1U1(k1)X(k)qkX(-'1-1U1X(k).(k1)人1,對應的特征向量即是X2算法實現.輸入矩陣A,初始向量X,誤差限"最大迭代次數N/).k,1,-0;y(k)=芯maX(abs(X(k).計算X,Ay,;max(x);(4).若|九P|<巴輸由Ky,否則,轉(5).若k<N,置kk+1J轉3,否則輸由失敗信息,停機.3matlab程序代碼functiont,y=lpowerA,x0,eps,N)%t為所求特征值,y是對應特征向量k=1;z=0;%z相當于黑y=x0./max(abs(x0);%規范化初始1可量

3、x=A*y;%迭代格式b=max(x);%b相當于Pifabs(z-b)<eps%判斷第一次迭代后是否滿足要求t=max(x);return;endwhileabs(z-b)>eps&&k<Nk=k+1;z=b;y=x./max(abs(x);x=A*y;b=max(x);endm,index=max(abs(x);%這兩步保證取出來的按模最大特征值t=x(index);%是原值,而非其絕對值。end4舉例驗證選取一個矩陣A,代入程序,得到結果,并與eig(A)的得到結果比較,再計算A*y-t*y,驗證y是否是對應的特征向量。結果如下:»A=l10.

4、5:110.25;0.3,0.25,2A=1.00001.00000.5000L0000L00000.25000.50000.25002.0000»xO=l;l;lJ?0ps=le-5;N=20;>>t,(A,xOjeps,、)2.53650.74820.6497L0000>>eig(A)ans=-0.0166L48012.5365»A*y-t*yans-1.0e-004+-0.1603-0,16840結果正確,表明算法和代碼正確,然后利用此程序計算15階Hilb矩陣,與eig(A)的得到結果比較,再計算A*y-t*y,驗證y是否是對應的特征向量。設

5、置初始向量為x0=ones(15,1),結果顯示如下»A=hilb(15);»x0=ones(15,1):eps-le6:»N=30;>>Lt,y-1power(A,x0,eps,t=L8459V-»eig(A)»A*y-t*y1.0000ans=ans=0.62280.47060.3838-0.00DO0.00001.0-007拿00.32640.0000-0.55160.0000-0.64360.28510.0000-0.64650.25370.0000-0.62450.22900.0000-0.59530.20890.oooo

6、-0.565。0.19220.oooo-0.53590.17800,0000-0.50860.16590,0004-0.48340.0056-0.46030.15540.0572-0.43900.14620.4266-0.41950:13811.8439-0.401bjn.GG-可見,結果正確。得到了15階Hilb矩陣的按模最大特征值和對應的特征向二.反哥法.反幕法簡介及其理論在工程計算中,可以利用反幕法計算矩陣按模最小特征值及其對應特征向量。其基本理論如下,與幕法基本相同:一一i一一一i1.由Ax=Kx=x=A(九x),則Ax=x,可知,A和A1的特征值互為倒數,求A按模最小特征值即求A-1

7、的按模最大特征值,取倒數即為A的按模最小特征值所以算法基本相同,區別就是在計算x(k+)時,不是令x(k+)=Ay(k),而是x(k+)=A-1y(k)具體計算時,變換為Ax(k*)=y(k);對A做LU分解,來計算x(k+).算法實現.輸入矩陣A,初始向量x,誤差限與最大迭代次數N,.置k1,0,y,max(abs(x).作三角分解A二LU.解方程組LUx=y(Lz=y,Ux=z),.max(x),一1.右|九-腦|<8,輸出1,y,停機,否則轉(7),xj.右k<N,置k-k+diy-mx詢而,轉(4);否則輸出失敗信息,停機.3matlab程序代碼functions,y=in

8、vpower(A,x0,eps,n)%s為按模最小特征值,y是對應特征向量k=1;r=0;%r相當于-oy=x0./max(abs(x0);%規范化初始向量L,U=lu(A);z=Ly;x=Uz;u=max(x);s=1/u;%按模最小為A-1按模最大的倒數.ifabs(u-r)<eps%判斷第一次迭代后是否滿足終止條件returnendwhileabs(u-r)>eps&&k<n%終止條件.k=k+1;r=u;y=x./max(abs(x);z=Ly;x=Uz;u=max(x);endm,index=max(abs(x);%這兩步保證取出來的按模最大特征值s

9、=1/x(index);%是原值,而非其絕對值。4舉例驗證同事法一樣,選取一個矩陣endA,代入程序,得到結果,并與eig(A)的得到結果比較,再計算A*y-t*y,驗證y是否是對應的特征向量»A=L1,0.5;1,1,0.210.5,0.25,2;»eig(A)eps=le-6;口=30;_s,y=invpower(A,k。,eps,n)ans二0166L48012.5365s=3*-0.0166ans=y-1.0e-016*L0000-0.1388-0.0694-0.9517-0.1300-0.1908可見結果正確,然后利用此程序計算15階Hilb矩陣,eig(A)的得

10、到結果比較,再計算A*y-s*y,驗證y是否是對應的特征向量。設置初始向量為x0=ones(15,1),結果顯示如下»A=liilb(15):xO=ones(1571);eps=le-6;n=30;>>s,y=invpower(A?epsn)-5.9673e-0180.0000-0.00000.0000-0.00060.0050-0.02450.0699-0.0968-0.04210.4497-0.9084L0000-0.65270.23790.0375»eig(A)ans=-0,00000.00000.00000.00000,00000.00000.00000

11、.00000.00000.00000.00040.00560.05720.42661.8459>>A*y-s*yans=1.05017*0.3903-0.56380.0000-0.5208-0.47410.35400.4537-0.27460.9724-0.5556-0.62880.66180.06390.1419可見,結果真確。得到了15階Hilb矩陣的按模最大特征值和對應的特征向量。三.計算條件數矩陣A的條件數等于A的范數與A的逆的范數的乘積,即cond(A)=IIAll11AA(-1)II,對應矩陣的3種范數,可以定義3種條件數。函數cond(A,1)、cond(A)或con

12、d(Ainf)是判斷矩陣病態與否的一種度量,條件數越大表明矩陣的病態程度越大.這里我們選擇矩陣的2范數,即cond(A)=',%,%分別為矩陣aTA的最大和最小特征值而如果A為對稱矩陣,如Hilb矩陣,ATA的最大最小特征值,分別為A的最大最小特征值的平方。所以cond(A)為A的最大最小特征值得比值。對于本例中的15階Hilb矩陣來說,利用上面計算結果得其條件數(選擇第二種條件數)為:3.0934e+017;這與直接利用cond(A)得到的結果:2.5083e+017在同一數量級,再次表明了上述算得得最大最小特征值的正確性,同時又表明陣是病態矩陣。四.Aitken商加速法1,簡介與原

13、理若瓜收斂與a,且lim電工二a=c#。;即ak蹴性收斂,j'ak-a當k充分大時,有虹二世二ak-aak1-a、,、,(xn2-xn1)yn2;xn2xn2-2xn1xn一(ak1-ak)小-a:ak尸akak2-2ak1'ak用ak逼近a,這種方法稱為Aitken加速法.同事法和反幕法計算最大和最小特征值類似,如果計算最大特征值,為x(k*)=Ay(k);計算最小特征值時,迭代格式為Hilb矩則迭代格式x(s=A,y(kfWk)=Ax(k41)2,算法實現計算按模最大特征值算法如下:(1),輸入A=(a。),初始向量x,誤差限以最大迭代次數N,x.置。=。,=。,<&

14、quot;.。,廣加,計算x=Ay,置max(x)=a2,2(-?)(4),計算。-一一匚:2-2:。<3輸出y停機,否則轉(6),(6),若卜<N,置a1na。,a2n%,九二九。,k+i,ma=y轉,否則,輸出失敗信息,停機.類似幕法和反幕法可以寫出按模最小特征值算法,此處不再贅述3.matlab程序代碼functionr,y=aitken(A,x0,eps,n)%r按模最大特征值,丫為對應特征向量k=1;a0=0;%a相當于«0a1=1;%a1相當于«ir0=1;%相當于2中的八0y=x0./max(abs(x0);%規范化初始向量x=A*y;a2=max

15、(abs(x);%a2相當于二2r=a0-(a1-a0)A2/(a2-2*a1+a0);%相當于九if(a2-2*a1+a0)=0%若上式中分母為0,則迭代失敗,返回disp"初始向量迭代失敗"return;endifabs(r-r0)<eps%判斷第一次迭代后是否滿足要求,如滿足,則返回結果returnendwhileabs(r-r0)>eps&&k<n%終止條件k=k+1;a0=a1;a1=a2;r0=r;y=x./max(abs(x);x=A*y;%迭代格式a2=max(abs(x);if(a2-2*a1+a0)=0%若分母為0,則迭

16、代失敗,返回return;endr=a0-(a1-a0)A2/(a2-2*a1+a0);m,index=max(abs(eig(A);%以下代碼保證取出來的按模最大特征值aa=eig(A);%是原值,而非其絕對值。ifaa(index)>0|aa(index)=0r=r;elser=-r;endendend類似可得按模最小特征值和特征向量的代碼如下:與上面類似,所不同的只是迭代格式不同.functionr,y=invaitken(A,x0,eps,n)k=1;a0=0;a1=1;r0=1;y=x0./max(abs(x0);L,U=lu(A);%迭代格式的不同z=Ly;x=Uz;a2=m

17、ax(abs(x);r=a0-(a1-a0)A2/(a2-2*a1+a0);if(a2-2*a1+a0)=0disp"初始向量迭代失敗"return;endifabs(r-r0)<eps%判斷第一次迭代后是否滿足要求,如滿足,則返回結果returnendwhileabs(r-r0)>eps&&k<nk=k+1;a=b;b=c;r0=r;y=x./max(abs(x);z=Ly;x=Uz;a2=max(abs(x);if(a2-2*a1+a0)=0return;endr=a0-(a1-a0)A2/(a2-2*a1+a0);endm,index

18、=min(abs(eig(A);%以下代碼保證取出來的按模最大特征值aa=eig(A);%是原值,而非其絕對值。ifaa(index)>0|aa(index)=0r=1/r;elser=-1/r;endend4.計算Hilb矩陣特征值此處不再舉例,而是直接應用于15階Hilb矩陣,初始向量選為ones(15,1)結果如下,并將結果與幕法和反幕法得到結果比較L00000.6229»A=hilb(15);xO=ones(13,l):»eps=le-6;»n=30;y_=aitken(AJxOeps,n)1.84590.47060,38380.32640.2851

19、0.25370.22900.20890.19220.17800.16590.15540.14620.1381這與幕法得到的特征值和特征向量一致,表明算法和代碼正確;同理,最小特征值結果如下:>>r,y=invaitken(A,x0fepSjn)5.9673bo18S0000-0.00000,0000-0.00060.0050-0.02450.0699-0.09687.04210.4497-Q9084L0000-0.65270.23790.0375這與反幕法得到的結果一致,表明結果正確五,對稱矩陣的Rayleigh商加速法1,簡介與原理A為對稱矩陣,設x#0,則稱R(x)x?x為關于

20、A白Rayleigh商xx(k)yx(k+)R(y(k)I原理如下:設Xj#0為的特征向量,即AXi=iXi用Xi左乘上式有:(k)xmax(x(k)這稱為Rayleigh商加速法。=Ay(k)_(y(k)Tx(k1)/_(k"T/(kU(y)(y)其中R(y(k),,y(k),(k)xmax(x(k)2.算法實現.輸入矩陣A,初始向量x,誤差限叫最大迭代次數N,x2).置卜*1,r0,0,y,,max(abs(x)T.x,A*y,r若|r-r。卜:;,yxTyy輸出r,y,停機,否則轉(5),x.右k<N,置k-k+1,r0-r,y-,轉(3);max(abs(x)否則輸出失敗信息,停機.Matlab程序代碼functionr,y=rayleigh(A,x0,eps,n)%r是特征值,y是特征向量k=1;r0=0;y=x0./max(abs(x0);x=A*y;%迭代格式計算新的xr=dot(y,x)/dot(y,y);%Reyleigh商ifabs(r-r0)<epsreturnendwhileabs(r-r0)>eps&&k<nk=k+1;r0=r;y=x./max(abs(x);x=A*y;r=dot(y,x)/dot(y,y);endend類似得計算按模最小特征值的Rayleigh商

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論