【正文】
生 : 傅 鵬 (6) 若 ,0 ??? ?? 輸入 ,x? 停機(jī);否則轉(zhuǎn)( 7) . (7) 若 .kN? 置 1 0 2 1 0, , , 1a a a a k k??? ? ? ? ?轉(zhuǎn)( 3);否則停止 . 例 3. 用此改進(jìn)的加速算法計算矩陣 4 14 05 13 01 0 2A??????????的主特征值。 Aitken加速算法 由于改進(jìn)的加速沒有達(dá)到我們想要的結(jié)果。 4 結(jié)論 通過用 vc++將幾種加速算法實(shí)現(xiàn),并作了一個對比得出以下結(jié)論: (1)原點(diǎn)平移加速算法是一個矩陣變換方法。 Rayleigh商加速算法共 19 頁 河南理工大學(xué)數(shù)學(xué)與信息科學(xué) 學(xué)院 本科畢業(yè)論文 第 10 頁 指 導(dǎo) 教 師 : 牛 海 峰 學(xué) 生 : 傅 鵬 的收斂速度與反冪法相同,而且不用選取特定的迭代初值是求解這類問題更出色的一種方 法。我們對于 此 改進(jìn)的加速算法還需完善 。 附錄: 程序( 1) include include int vector_max_ponent(const int n,const double *v) { double max=fabs(v[0])。max=fabs(v[i])。in。 for(int i=1。 } double *matrix_multiply_vector(const intamp。 for(int i=0。 } double *square_matrix_multiply_vector(const intamp。 eig[0]=new double[1]。 eig[0][0]=0。//用( 1,2,...,n)作為初始試探向量 v; double old_lambda。 old_lambda=eig[0][0]。in。//提取最大分量指標(biāo); 共 19 頁 河南理工大學(xué)數(shù)學(xué)與信息科學(xué) 學(xué)院 本科畢業(yè)論文 第 12 頁 指 導(dǎo) 教 師 : 牛 海 峰 學(xué) 生 : 傅 鵬 eig[0][0]=eig[1][index]/v[index]。fabs((lambdaold_lambda)/lambda)1e15amp。amp。 } void main() { (16)。 double **A=new double*[n]。i++) { A[i]=new double[n]。 } double **eig=matrix_principal_eigen(n,A)。in。in。 } double vector_inner_product(const int n,const double *u,const double *v) { double value=0。 return value。i++) { if(valuefabs(v[i]))value=fabs(v[i])。 n,double **A,double *v) { double *vector。i++)vector[i]=vector_inner_product(n,A[i],v)。 } double **matrix_principal_eigen(const int n,double **A) { double *v=new double[n],**eig=new double*[2]。 eig[1]=new double[n]。in。//定義一個指標(biāo)變量,來提取乘冪后的最大分量指標(biāo); for(i=0。 for(int j=0。 index=vector_max_ponent(n,eig[1])。 lmd=a0pow(a1a0,)/(a22*a1+a0)。 if(fabs(lmdlmd0)1e8)break。 } return eig。 cinn。in。j++)cinA[i][j]。 for(i=0。 for(int i=0,index=0。} return index。i++)value+=u[i]*v[i]。in。 m,const intamp。im。 n,double **A,double *v) { return matrix_multiply_vector(n,n,A,v)。//存放主特征值 。 for(int i=0。 int index。i++) { index=vector_max_ponent(n,eig[1])。jn。 a1=eig[1][index]。 for(j=0。 index=vector_max_ponent(n,eig[1])。j++)eig[1][j]/=a3。 lmd=a0(a1a0)*(a2a0)/(a3+a0a1a2)。 if(fabs(lmdlmd0)e)break。 int i,n。 cout請輸入 n X n 的矩陣元素: endl。 for(int j=0。 cout矩陣主特征值為: eig[0][0]endl。i++)couteig[1][i]endl。 2 3 2n n n nnnn n n n n np p p pqq p p p p p p??? ? ? ???? ? ?? ? ? ? 39。 致謝 : 本論文是在牛老師的悉心指導(dǎo)下完成的,牛老師對學(xué)術(shù)的嚴(yán)謹(jǐn)和精益求精的工作作風(fēng)給我留下了深刻的印象。在此,我對所有數(shù)信學(xué)院的老師表示感謝,祝您們身體健康,工作順利! 參考文獻(xiàn) [1]徐樹方,高立,張平文 .數(shù)值線性代數(shù) [M].北京大學(xué)出版社 .2020. [2]曹志浩 .矩陣特征值問題 [M].上??茖W(xué)技術(shù)出版社 .1980. [3]王萼方,石生明 .高等代數(shù) (第三版 )[M].高等教育出版社 .2020. [4]華東師范大學(xué)師范系 .數(shù)學(xué)分析 (第三版 )[M].高等教育出版社 .2020. [5]李慶揚(yáng),王能超,易大義 .數(shù)值分析 (第四版 )[M].華中科技大學(xué)出版社 .1982. [6]王小平 ,劉峰 .一種改進(jìn)的 Aitken加速算法 [J].2020,9(22),68596860. [7]胡邵勇,儀維憲,宋福香 .解非線性方程的一種新算法 [J].1997,18(4),5458. Power method to solve the matrix main eigenvalue’s acceleration method Fu Peng School of Mathematics and Information Science, Henan Polytechnic University Abstract:Research of this paper is through the power method for solving matrix eigenvalue and eigenvector. There are many need in physics, mechanics and engineering we find the according to the modulus maximum characteristic value of matrix eigenvalues (and said) and the feature vector. Power method is to calculate the modulus maximum eigenvalue of a matrix and the corresponding eigenvector of an iterative method. Its biggest advantage is simple, suitable for the calculation of large sparse matrix characteristic value, but the convergence speed is very slow. So we need to accelerate method to speed up the convergence, including Origin of translational acceleration , Rayleigh quotient to accelerate and Aitken acceleration algorithm. Key word:Power met