幂法求矩阵主特征值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
!程序说明:幂法求矩阵主特征值
!日期:2010年11月30日
PROGRAM Matrix_EigenValue
PARAMETER(N=3)
REAL ARR(N,N)
CALL INPUT(ARR,N)
CALL MATEV(ARR,N)
END PROGRAM
SUBROUTINE INPUT(ARR,N)
REAL ARR(N,N)
OPEN(1,FILE='MAT.TXT')
READ(1,*)((ARR(I,J),J=1,N),I=1,N)
END SUBROUTINE
SUBROUTINE MATEV(ARR,N)
PARAMETER(EPS=1E-7)
REAL :: ARR(N,N),X(N),X1(N),MAX=0
INTEGER :: K=0,P=0
X=RESHAPE((/1,1,1/),(/3/))
WRITE(1,*) ' 迭代次数 U(规范化向量)
&
& MAX(V)(主特征值)'
DO WHILE(P/=N)
WRITE(1,'(I6,A,
P=0
MAX=0
DO I=1,N
X1(I)=0
DO J=1,N
X1(I)=X1(I)+ARR(I,J)*X(J) !迭代过程
ENDDO
ENDDO
DO I=1,N
IF(ABS(X1(I))>ABS(MAX)) MAX=X1(I) !选取主特征值
ENDDO
DO I=1,N
IF(ABS(X(I)-X1(I)/MAX) X(I)=X1(I)/MAX !规范化 ENDDO K=K+1 ENDDO END SUBROUTINE 输出结果: 1 1 0.5 1 1 0.25 0.5 0.25 2 迭代次数 U(规范化向量) MAX(V)(主特征值) 0 ( 1.000000 1.000000 1.000000 ) 0.000000 1 ( 0.909091 0.81818 2 1.000000 ) 2.750000 2 ( 0.837607 0.743590 1.000000 ) 2.659091 3 ( 0.799016 0.703035 1.000000 ) 2.604701 4 ( 0.77741 5 0.680338 1.000000 ) 2.575267 5 ( 0.765108 0.66740 6 1.000000 ) 2.558792 6 ( 0.758025 0.659963 1.000000 ) 2.549406 7 ( 0.753925 0.655655 1.000000 ) 2.544003 8 ( 0.751544 0.653153 1.000000 ) 2.540876 9 ( 0.750158 0.651697 1.000000 ) 2.539060 10 ( 0.749351 0.650848 1.000000 ) 2.538003 11 ( 0.748880 0.650354 1.000000 ) 2.537387 12 ( 0.748606 0.650065 1.000000 ) 2.537028 13 ( 0.748445 0.649897 1.000000 ) 2.536819 14 ( 0.748352 0.649799 1.000000 ) 2.536697 15 ( 0.748298 0.649741 1.000000 ) 2.536626 16 ( 0.748266 0.649708 1.000000 ) 2.536584 17 ( 0.748247 0.649688 1.000000 ) 2.536560 18 ( 0.748236 0.649677 1.000000 ) 2.536546 19 ( 0.748230 0.649670 1.000000 ) 2.536537 20 ( 0.748226 0.649667 1.000000 ) 2.536533 21 ( 0.748224 0.649664 1.000000 ) 2.536530 22 ( 0.748223 0.649663 1.000000 ) 2.536528 23 ( 0.748222 0.649662 1.000000 ) 2.536527 24 ( 0.748222 0.649662 1.000000 ) 2.536527 25 ( 0.748222 0.649662 1.000000 ) 2.536526 26 ( 0.748221 0.649661 1.000000 ) 2.536526