【强烈推荐】幂法和反幂法求矩阵特征值_毕业论文
- 格式:doc
- 大小:204.00 KB
- 文档页数:32
矩阵最大特征值求法矩阵最大特征值求法矩阵最大特征值是矩阵理论中的重要概念,它在很多领域都有广泛的应用,如物理、化学、工程等。
在实际应用中,我们需要求解矩阵的最大特征值和对应的特征向量,以便对矩阵进行分析和处理。
本文将介绍两种常用的矩阵最大特征值求法:幂法和反迭代法。
一、幂法幂法是求解矩阵最大特征值和对应特征向量的一种常用方法。
其基本思想是:对于一个矩阵A,我们可以随机选择一个向量x0,然后通过不断迭代,使得向量x0趋近于矩阵A的最大特征值所对应的特征向量。
具体步骤如下:1. 随机选择一个向量x0,使其满足||x0||=1。
2. 对向量x0进行迭代,得到向量x1,即x1=Ax0。
3. 对向量x1进行归一化,得到向量x2,即x2=x1/||x1||。
4. 重复步骤2和步骤3,直到向量x收敛于矩阵A的最大特征值所对应的特征向量。
在实际应用中,为了提高计算效率,我们可以对向量x进行正交化处理,即每次迭代后,将向量x与前面所有的向量进行正交化,以避免向量的线性相关性对计算结果的影响。
二、反迭代法反迭代法是一种基于幂法的改进算法,它可以求解矩阵的任意一个特征值和对应的特征向量。
其基本思想是:对于一个矩阵A和一个已知的特征值λ,我们可以通过反迭代法,求解出矩阵A中与特征值λ最接近的特征值和对应的特征向量。
具体步骤如下:1. 随机选择一个向量x0,使其满足||x0||=1。
2. 对向量x0进行迭代,得到向量x1,即x1=(A-λI)-1x0,其中I为单位矩阵。
3. 对向量x1进行归一化,得到向量x2,即x2=x1/||x1||。
4. 重复步骤2和步骤3,直到向量x收敛于矩阵A中与特征值λ最接近的特征向量。
在实际应用中,我们可以通过多次迭代,求解出矩阵A中多个特征值和对应的特征向量,以便对矩阵进行更全面的分析和处理。
总结矩阵最大特征值求法是矩阵理论中的重要内容,幂法和反迭代法是常用的求解方法。
在实际应用中,我们需要根据具体情况选择合适的方法,并注意算法的收敛性和计算效率。
数值分析幂法和反幂法数值分析中的幂法和反幂法是求解矩阵最大特征值和最小特征值的常用方法。
这两种方法在许多数值计算问题中都有着广泛的应用,包括图像压缩、数据降维、谱聚类等。
幂法(Power Method)是一种迭代算法,通过不断迭代矩阵与一个向量的乘积,来逼近原矩阵的最大特征值和对应的特征向量。
其基本思想是,对于一个矩阵A和一维向量x,可以通过不断迭代计算Ax,Ax,Ax...,来使得向量x逼近最大特征值对应的特征向量。
具体的迭代过程如下:1.初始化一个向量x0(可以是单位向量或任意非零向量)2.令x1=Ax0,对向量进行归一化(即除以向量的范数)得到x13.重复步骤2,即令x2=Ax1,x3=Ax2...,直到收敛(即相邻迭代向量的差的范数小于一些阈值)为止4. 最终得到的向量xn就是A的最大特征值对应的特征向量在实际求解时,我们可以将迭代过程中的向量进行归一化,以防止数值溢出或下溢。
此外,为了提高迭代速度,我们可以选择使得xn与xn-1的内积大于0的方向作为迭代方向,这样可以使得特征值的模快速收敛到最大特征值。
幂法的收敛性是保证的,但收敛速度可能较慢,尤其是当最大特征值与其他特征值非常接近时。
此时可能需要使用一些改进的方法来加速收敛,例如Rayleigh商或位移策略。
相反,反幂法(Inverse Power Method)是求解矩阵的最小特征值和对应的特征向量的方法。
它的基本思想和幂法类似,但在每次迭代中,需要计算A和依其逆矩阵A-1的乘积。
迭代过程如下:1.初始化一个向量x0(可以是单位向量或任意非零向量)2.令x1=A-1x0,对向量进行归一化(即除以向量的范数)得到x13.重复步骤2,即令x2=A-1x1,x3=A-1x2...4. 最终得到的向量xn就是A的最小特征值对应的特征向量反幂法和幂法的区别在于迭代过程中乘以了A的逆矩阵,从而可以利用矩阵的特殊结构或性质来提高迭代速度。
同时,在实际求解时,可能需要将矩阵进行一些变换,以确保A-1存在或数值稳定性。
#include "stdafx.h"#include "math.h"#define A(i,j) a[i-j+3][j]double a[5][501];inline double vectornorm2(double*b,int n){double sum=0.0;int i;for(i=0;i<n;i++)sum+=b[i]*b[i];return sqrt(sum);}//add the parameter index,because in the powermetod using vector//infinite norm needs to known the index of maximum component of the vector inline double vectornorm8(double*b,int n,int& index){double max=0.0;int i;for(i=0;i<n;i++)if(max<fabs(b[i])){max=fabs(b[i]);index=i;}return max;}//A为系数矩阵,b为返回的特征向量,n为矩阵的阶数,delta为允许误差//幂法计算特征值可以有两种方法,这里用的是向量的无穷范数double powermethod8(int n,double*b,double delta){double*b1;double yita,sum,beta1,beta2;int i,j,k;//初始迭代向量for(i=0;i<n;i++)b[i]=10;b1=new double[n];beta1=0;beta2=1;while(fabs((beta2-beta1)/beta2)>delta){yita=vectornorm8(b,n,k);for(i=0;i<n;i++){b1[i]=b[i]/yita;if(fabs(b1[i])<delta)b1[i]=0;}for(i=0;i<n;i++){sum=0;for(j=0;j<n;j++)if(abs(i-j)<3)sum+=A(i,j)*b1[j];b[i]=sum;}beta1=beta2;beta2=(b1[k]>=0?1:-1)*b[k];}delete[]b1;return beta2;}int maximum(int a1,int b1,int c1) {int max;max=a1;if(b1>max)max=b1;if(c1>max)max=c1;return max;}/////////////////////////*上半带宽s,下半带宽r*/////////////////////////bool sanjiaodai(int n,int s,int r) {int i,j,k,m;double sum;if(A(0,0)==0){printf("第0个主元素为0\n"); return false;}i=0;m=n<(i+r+1)?n:i+r+1;for(i=1;i<m;i++)A(i,0)=A(i,0)/A(0,0);for(i=1;i<n;i++){m=n<(i+s+1)?n:i+s+1;for(j=i;j<m;j++){sum=0;for(k=maximum(0,i-r,j-s);k<i;k++)sum+=A(i,k)*A(k,j);A(i,j)=A(i,j)-sum;}m=n<(i+r+1)?n:i+r+1;for(j=i+1;j<m;j++){sum=0;for(k=maximum(0,i-r,j-s);k<i;k++)sum+=A(j,k)*A(k,i);if(A(i,i)==0){printf("第%d个主元素为0\n",&i);return false;}A(j,i)=(A(j,i)-sum)/A(i,i);}}return true;}bool huidai(int n,int s,int r,double*b){//使用数组b来保存中间变量y,和x的解int i,k;double sum;for(i=1;i<n;i++){sum=0;for(k=(0>i-r?0:i-r);k<i;k++)sum=sum+A(i,k)*b[k];b[i]=b[i]-sum;}b[n-1]=b[n-1]/A((n-1),(n-1));for(i=n-2;i>=0;i--){sum=0;for(k=i+1;k<(n<i+s+1?n:i+s+1);k++)sum+=A(i,k)*b[k];b[i]=(b[i]-sum)/A(i,i);}return true;}//反幂法的每一步迭代都需要求解一个线性方程组,在这里先对A进行LU分解//计算特征值时使用2范数//flag参数表示是否同时求解A的行列式值double inversepowermethod(int n,double* b,double delta,bool flag){double*b1;double yita,beta1,beta2,sum;int i;//初始迭代向量for(i=0;i<n;i++)b[i]=1;b1=new double[n];beta1=0;beta2=1.0;sanjiaodai(n,2,2);if(flag){sum=1;for(i=0;i<n;i++)sum=sum*A(i,i);printf("矩阵A的行列式值为:%.12e\n",sum);}while(fabs((beta2-beta1)/beta2)>delta){yita=vectornorm2(b,n);for(i=0;i<n;i++){b1[i]=b[i]/yita;if(fabs(b1[i])<delta)b1[i]=0;b[i]=b1[i];}huidai(n,2,2,b);beta1=beta2;beta2=0;for(i=0;i<n;i++)beta2+=b1[i]*b[i];}beta2=1.0/beta2;delete[]b1;return beta2;}int main(int argc, char* argv[]){int i,j,k;//获取Adouble lamda1,lamdas,lamda501,miu,lamda,sum;double b[501];for (i=0;i<501;i++)for(j=0;j<501;j++){switch (j-i){case 0:A(i,j)=(1.64-0.024*(i+1))*sin(0.2*(i+1))-0.64*exp(0.1/(i+1));break;case 1:case -1:A(i,j)=0.16;break;case 2:case -2:A(i,j)=-0.064;}}//计算按模最大的特征值,它有可能是lamda1,也有可能是lamda501 //如果大于则是lamda501;否则是lamda1lamda1=powermethod8(501,b,1.0e-12);printf("lamda1= %.12e\n",lamda1);lamdas=inversepowermethod(501,b,1.0e-12,true);printf("lamdas= %.12e\n",lamdas);for (i=0;i<501;i++)for(j=0;j<501;j++){switch (j-i){case 0:A(i,j)=(1.64-0.024*(i+1))*sin(0.2*(i+1))-0.64*exp(0.1/(i+1))+10;break;case 1:case -1:A(i,j)=0.16;break;case 2:case -2:A(i,j)=-0.064;}}lamda501=powermethod8(501,b,1.0e-12);printf("lamda501= %.12e\n",lamda501-10);for(k=0;k<39;k++){miu=lamda1+k*(lamda501-lamda1)/40;for (i=0;i<501;i++)for(j=0;j<501;j++){switch (j-i){case 0:A(i,j)=(1.64-0.024*(i+1))*sin(0.2*(i+1))-0.64*exp(0.1/(i+1))-miu; break;case 1:case -1:A(i,j)=0.16;break;case 2:case -2:A(i,j)=-0.064;}}lamda=inversepowermethod(501,b,1.0e-12,false);printf("lamdai%d= %.12e\n",k,lamda+miu);}printf("A的条件数为:%.12e",fabs(lamda1/lamdas));return 0;}。
幂法反幂法求解矩阵最大最小特征值及其对应的特征向量幂法和反幂法是求解矩阵最大最小特征值及其对应特征向量的常用方法。
在本文中,我们将详细介绍这两种方法的原理和具体实现。
一、幂法(Power Method)幂法是一种迭代算法,用于求解矩阵的最大特征值及其对应的特征向量。
其基本思想是通过多次迭代得到矩阵的一个特征值和特征向量的近似值,并使其逼近真实值。
幂法的原理如下:1.初始化一个非零向量b0作为初始特征向量;2.计算b0的归一化向量b0/,b0,得到新的向量b1;3.计算矩阵A和向量b1的乘积Ab1,得到新的向量b2;4.对b2进行归一化,得到新的向量b3;5.重复步骤3和步骤4,直到b的变化趋于稳定;6.计算矩阵A和向量b的乘积Ab,得到新的向量b;7.特征值的近似值λ=,Ab,/,b。
具体实现如下:1.初始化一个非零向量b0;2.迭代n次进行如下操作:a. 计算bn=A*bn-1;b. 将bn进行归一化,得到bn=bn/,bn;3. 计算特征值的近似值lambda=,A*bn,/,bn;4. 特征向量的近似值vbn=bn。
幂法的优点是计算简单、迭代次数少,但对于含有多个特征值接近的矩阵,可能会收敛到次大特征值。
二、反幂法(Inverse Power Method)反幂法是幂法的拓展,用于求解矩阵的最小特征值及其对应的特征向量。
其基本思想是通过多次迭代得到矩阵的一个特征值和特征向量的近似值,并使其逼近真实值。
反幂法的原理如下:1.初始化一个非零向量b0作为初始特征向量;2.计算b0的归一化向量b0/,b0,得到新的向量b1;3.计算矩阵A的逆矩阵Ai和向量b1的乘积Ai*b1,得到新的向量b2;4.对b2进行归一化,得到新的向量b3;5.重复步骤3和步骤4,直到b的变化趋于稳定;6.计算矩阵A的逆矩阵Ai和向量b的乘积Ai*b,得到新的向量b;7.特征值的近似值λ=,Ai*b,/,b。
具体实现如下:1.初始化一个非零向量b0;2.迭代n次进行如下操作:a. 计算bn=inv(A)*bn-1;b. 将bn进行归一化,得到bn=bn/,bn;3. 计算特征值的近似值lambda=,inv(A)*bn,/,bn;4. 特征向量的近似值vbn=bn。
矩阵特征值快速求法矩阵特征值是矩阵分析中十分重要的概念。
它在物理、工程、数学等许多领域都有着广泛的应用。
矩阵特征值是指矩阵运动时特殊的运动状态,是一种宏观量度矩阵运动的指标。
求解矩阵特征值是一项复杂的任务,通常需要使用高级算法来完成。
本文将介绍几种常用的求解矩阵特征值的算法,其中包括幂法、反幂法、QR算法、分裂Broyden算法等。
一、幂法幂法是求解矩阵特征值的一种基础算法,其基本思想是通过迭代来逐步逼近矩阵的最大特征值。
幂法的核心公式如下:x_(k+1)=A*x_k/||A*x_k||其中,x_k表示第k次迭代中得到的特征向量,A表示原始矩阵。
幂法通过不断的迭代来逼近A的最大特征值,当迭代次数趋近于无限大时,得到的特征向量就是A的最大特征值所对应的特征向量。
幂法的运算量较小,适用于比较简单的矩阵。
反幂法与幂法类似,不同之处在于每次迭代时采用的是A的逆矩阵来进行计算。
其核心公式如下:x_(k+1)=(A-λI)^(-1)*x_k其中,λ表示要求解的特征值。
反幂法能够求解非常接近于特征值λ的特征向量,并且对于奇异矩阵同样适用。
需要注意的是,在实际计算中,如果A-λI的秩不满,那么反幂法就无法使用。
三、QR算法1. 将原矩阵A进行QR分解,得到A=Q*R。
2. 计算A的近似特征矩阵A1=R*Q。
5. 重复步骤3-4,直到A的对角线元素全部趋近于所求特征值为止。
QR算法的计算量较大,但其具有收敛速度快、精度高等优点,广泛应用于科学计算中。
四、分裂Broyden算法分裂Broyden算法是QR算法的一种改进算法,其基本思想是将矩阵分解成上下三角形式,然后再对其进行QR分解,以减少QR算法中的乘法运算量。
具体实现过程如下:2. 构造一个倒数矩阵B=U^(-1)*L^(-1)。
4. 计算A的近似特征矩阵A1=Q^(-1)*L^(-1)*A*R^(-1)*U^(-1)*Q。
分裂Broyden算法的计算量较小,能够有效地解决QR算法中的乘法运算量过大的问题。
计算方法之计算矩阵的特征值和特征量计算矩阵的特征值和特征向量是线性代数中的一个重要问题,它在科学研究和工程应用中有着广泛的应用。
本文将介绍计算矩阵特征值和特征向量的方法,包括特征方程法、幂法、反幂法和QR方法。
一、特征值和特征向量的定义给定一个n阶方阵A,如果存在一个非零向量x和一个标量λ,满足以下方程:Ax=λx其中,x被称为A的特征向量,λ被称为A的特征值。
二、特征方程法特征方程法是计算矩阵特征值和特征向量的一种常用方法,其基本思想是通过求解矩阵的特征方程来求得特征值。
对于一个n阶方阵A,其特征方程为:A-λI,=0其中,I是n阶单位矩阵,A-λI,表示A-λI的行列式。
解特征方程可以得到n个特征值λ₁,λ₂,...,λₙ。
然后,将这些特征值带入原方程组(A-λI)x=0,求解线性方程组得到n个特征向量x₁,x₂,...,xₙ。
三、幂法幂法是一种通过迭代来计算矩阵最大特征值和对应的特征向量的方法。
首先,随机选择一个非零向量b₀,并进行归一化,得到单位向量x₀=b₀/,b₀。
然后,通过迭代的方式,计算xₙ₊₁=Axₙ,其中xₙ为第k次迭代得到的向量。
在迭代过程中,向量xₙ的模长会逐渐趋近于最大特征值对应的特征向量。
当迭代收敛后,xₙ就是矩阵A的最大特征值对应的特征向量。
四、反幂法反幂法是一种通过迭代来计算矩阵最小特征值和对应的特征向量的方法。
首先,随机选择一个非零向量b₀,并进行归一化,得到单位向量x₀=b₀/,b₀。
然后,通过迭代的方式,计算xₙ₊₁=(A-σI)⁻¹xₙ,其中σ为待求的特征值。
在迭代过程中,向量xₙ的模长会逐渐趋近于特征值σ对应的特征向量。
当迭代收敛后,xₙ就是矩阵A的特征值为σ的特征向量。
五、QR方法QR方法是一种通过迭代来计算矩阵特征值和特征向量的方法。
首先,将矩阵A进行QR分解,得到矩阵A=QR,其中Q是正交矩阵,R是上三角矩阵。
然后,计算矩阵B=RQ,重复以上步骤,直到矩阵B收敛。
矩阵特征值求法的十种求法(非常经典)以下是矩阵特征值求法的十种经典求法:1. 幂法(Power Method)幂法(Power Method)幂法是求解特征值的常用方法之一。
它基于一个重要的数学原理:对于一个非零向量$x$,当它连续乘以矩阵$A$的$k$次幂后,$Ax$的方向将趋于特征向量相应的特征值。
这种方法通常需要进行归一化,以防止向量过度增长。
2. 反幂法(Inverse Power Method)反幂法(Inverse Power Method)反幂法是幂法的一种变体。
它通过计算矩阵$A$的逆来求解最小的特征值。
使用反幂法时,我们需要对矩阵$A$进行LU分解,以便更高效地求解线性方程组。
3. QR方法QR方法QR方法是一种迭代方法,可以通过将矩阵$A$分解为$QR$形式来逐步逼近特征值。
这种方法是通过多次应用正交变换来实现的,直到收敛为止。
QR方法不仅可以求解特征值,还可以求解特征向量。
4. Jacobi方法Jacobi方法Jacobi方法是一种迭代方法,通过施加正交相似变换将矩阵逐步变为对角矩阵。
在每个迭代步骤中,Jacobi方法通过旋转矩阵的特定元素来逼近特征值。
这种方法适用于对称矩阵。
5. Givens旋转法Givens旋转法Givens旋转法是一种用于特征值求解的直接方法。
它通过施加Givens旋转矩阵将矩阵逐步变为对角矩阵。
这种方法是通过旋转矩阵的特定元素来实现的。
6. Householder变换法Householder变换法Householder变换法是一种用于特征值求解的直接方法。
它通过施加Householder变换将矩阵逐步变为Hessenberg形式,然后再进一步将其变为上三角形式。
这种方法是通过对矩阵的列向量进行反射来实现的。
7. Lanczos方法Lanczos方法Lanczos方法是一种迭代方法,用于对称矩阵的特征值求解。
该方法创建一个Krylov子空间,并使用正交投影找到最接近特征值的Krylov子空间中的特征值。
数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1. 幂法简介:当矩阵A 满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。
矩阵A 需要满足的条件为: (1) 的特征值为A i n λλλλ,0||...||||21≥≥≥>(2) 存在n 个线性无关的特征向量,设为n x x x ,...,,21 1.1计算过程:i ni i i u xx αα,1)0()0(∑==,有对任意向量不全为0,则有1111112211211111111011)()(...u u a u a u λu λαu αA x A Ax x k n n k n k k ni ik i i ni i i k )(k (k))(k αλλλλλα++++=+=+++≈⎥⎦⎤⎢⎣⎡+++======∑∑ 可见,当||12λλ越小时,收敛越快;且当k 充分大时,有1)1111)11111λαλαλ=⇒⎪⎩⎪⎨⎧==+++(k )(k k(k k )(k x x u x u x ,对应的特征向量即是)(k x 1+。
2 算法实现.,, 3,,1 , ).5()5(,,,,||).4();max(,).3()(max(;0,1).2(,).1()()()(停机否则输出失败信息转置若转否则输出若计算最大迭代次数,误差限,初始向量输入矩阵βλβεβλβλε←+←<<-←←=←←k k N k y x Ay x x abs x y k N x A k k k3 matlab 程序代码function [t,y]=lpowerA,x0,eps,N) % t 为所求特征值,y是对应特征向量k=1;z=0; % z 相当于λy=x0./max(abs(x0)); % 规范化初始向量x=A*y; % 迭代格式b=max(x); % b 相当于βif abs(z-b)<eps % 判断第一次迭代后是否满足要求t=max(x);return;endwhile abs(z-b)>eps && k<Nk=k+1;z=b;y=x./max(abs(x));x=A*y;b=max(x);end[m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值t=x(index); % 是原值,而非其绝对值。
数值分析幂法和反幂法数值分析中,幂法(Power method)和反幂法(Inverse Power method)是求解矩阵的特征值和特征向量的两种常用方法。
它们都是通过迭代过程逼近特征值和特征向量。
1.幂法:幂法是求解矩阵的最大特征值和对应的特征向量的一种迭代方法。
幂法的原理是通过迭代过程,将一个任意选择的初始向量不断与矩阵相乘,使其逼近对应最大特征值的特征向量。
幂法的迭代公式为:$x^{(k+1)} = \frac{Ax^{(k)}}{\,Ax^{(k)}\,}$幂法的迭代过程是不断对向量进行归一化,使其逐渐逼近最大特征值对应的特征向量。
当迭代次数足够多时,可以得到非常接近最大特征值的估计。
2.反幂法:反幂法是幂法的一种变形,用于求解矩阵的最小特征值和对应的特征向量。
反幂法的原理是通过迭代过程,将一个任意选择的初始向量不断与矩阵的逆相乘,使其逼近对应最小特征值的特征向量。
反幂法的迭代公式为:$x^{(k+1)} = \frac{A^{-1}x^{(k)}}{\,A^{-1}x^{(k)}\,}$反幂法的迭代过程同样是不断对向量进行归一化,使其逐渐逼近最小特征值对应的特征向量。
当迭代次数足够多时,可以得到非常接近最小特征值的估计。
3.收敛性分析:幂法和反幂法的收敛性分析与矩阵的特征值分布有关。
对于幂法而言,如果矩阵$A$的最大特征值是唯一的,并且其他特征值的绝对值小于最大特征值的绝对值,那么幂法是收敛的,而且收敛速度是指数级的。
对于反幂法而言,如果矩阵$A$的最小特征值是唯一的,并且其他特征值的绝对值大于最小特征值的绝对值,那么反幂法是收敛的,而且同样是指数级的收敛速度。
4.实际应用:幂法和反幂法在实际中广泛应用于各个领域,例如物理、工程、计算机科学等。
比如在结构力学中,幂法可以用来求解结构的自振频率和相应的振型;在电力系统中,反幂法可以用来求解电力系统决定性特征值,例如功率稳定性的最小特征值。
幂法求解矩阵主特征值的加速方法傅鹏河南理工大学数学与信息科学学院信息与计算科学专业2009级1班摘要:本论文主要研究的是幂法求解矩阵的主特征值和特征向量。
物理、力学和工程技术中有许多需要我们求矩阵的按模最大的特征值(及称为主特征值)和特征向量。
幂法是计算一个矩阵的模最大特征值和对应的特征向量的一种迭代方法。
它最大的优点是方法简单,适合于大型稀疏矩阵的主特征值,但是收敛速度非常慢。
所以我们要用加速的方法来加速收敛,加速方法包括原点平移加速、Rayleigh 商加速和Aitken 加速算法。
关键词:幂法;原点平移加速;Rayleigh 商加速;Aitken 加速算法§1 引言我们来介绍矩阵特征值和特征向量的计算方法,大家知道求一个矩阵的特征值的问题实质上是求一个多项式的根的问题,而数学上已经证明5阶以上的多项式的根一般不能用有限次运算求得。
因此,矩阵特征值的计算方法本质上都是迭代,而对于大型的稀疏矩阵就需要用幂法求解最简单。
但是由于收敛速度非常的慢所以我们需要用加速的方法加快收敛速度而本次论文也是针对加速问题来通过对几种方法的研究讨论。
并且通过算法的实现来说明那种加速算法收敛得快,哪个计算量比较节省。
其实本文主要讨论的问题是一个应用中常见的一类数值计算问题。
§2 加速算法的背景2.1幂法幂法是计算一个矩阵的模最大特征值和对应的特征向量的一种迭代方法。
它适用于大型稀疏矩阵。
为了说明其基本思想我们先假设n nA C⨯∈是可对角化的,即A 有如下分解1A X X -=Λ其中()[]112,,,,,n n n diag X x x C λλ⨯Λ==∈非奇异,再假定12.n λλλ>≥≥现任取一向量0.n u C ∈由于X 的列向量构成nC 的一组基,故0u 可表示为01122,n n u x x x ααα=+++这里.i C α∈这样,我们有02111121nkk j jj nk j j jj kn j kj j j A u A x x x x ααλλλααλ=====⎛⎫⎛⎫ ⎪=+ ⎪ ⎪⎝⎭⎝⎭∑∑∑由此可知 0111lim.k kk A u x αλ→∞=这表明,当10α≠而且k 充分大时,向量01k k k A u u λ=这是A 的一个很好的近似特征向量。