幂法_反幂法求解矩阵最大最小特征值和对应的特征向量
矩阵最大特征值求法

矩阵最大特征值求法矩阵最大特征值求法矩阵最大特征值是矩阵理论中的重要概念,它在很多领域都有广泛的应用,如物理、化学、工程等。
在实际应用中,我们需要求解矩阵的最大特征值和对应的特征向量,以便对矩阵进行分析和处理。
本文将介绍两种常用的矩阵最大特征值求法:幂法和反迭代法。
一、幂法幂法是求解矩阵最大特征值和对应特征向量的一种常用方法。
其基本思想是:对于一个矩阵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存在或数值稳定性。
幂法反幂法求解矩阵最大最小特征值及其对应的特征向量

幂法反幂法求解矩阵最大最小特征值及其对应的特征向量幂法和反幂法是求解矩阵最大最小特征值及其对应特征向量的常用方法。
在本文中,我们将详细介绍这两种方法的原理和具体实现。
一、幂法(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。
matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量

竭诚为您提供优质文档/双击可除matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量篇一:幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1.幂法简介:当矩阵a满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。
矩阵a需要满足的条件为:(1)|1||2|...|n|0,i为a的特征值xn(2)存在n个线性无关的特征向量,设为x1,x2,...,1.1计算过程:n对任意向量x,有x(0)(0)iui,i不全为0,则有i1x(k1)ax(k)...ak1x(0)aαiuiαiλik1uik1i1i1nnnk12k1λ1u1()a2u2()anun11k111u1k112|越小时,收敛越快;且当k充分大时,有可见,当|1 (k1)k111u1x(k1)x(k1)(k)x1(k),对应的特征向量即是。
kxx11u12算法实现(1).输入矩阵a,初始向量x,误差限,最大迭代次数n(2).k1,0;y(k)x(k)max(abs(x(k))(3).计算xay,max(x);(4).若||,输出,y,否则,转(5)(5).若kn,置kk1,,转3,否则输出失败信息,停机.3matlab程序代码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相当于ifabs(z-b) t=max(x);return;endwhileabs(z-b)>epsz=b;y=x./max(abs(x));x=a*y;b=max(x);end[m,index]=max(a(matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量)bs(x));%这两步保证取出来的按模最大特征值t=x(index);%是原值,而非其绝对值。
幂法和反幂法

此例中比值为 2 2 . 1 3
例2:用幂法计算下面矩阵的主特征值及对应的特征向量。
解: 取初始向量 01
2 4 A 3 9
4 16
v u 1 1 1 ,按(3.7)迭代5次得到数据T如下 表: 00
1 11
11
ukT
6 15 36
k
vkT
(规范化向量)
5 0.1859 0.4460 1 8.156 19.57 43.88
v (i) k 1 v (i) k
1?
即两相邻迭代向量的对应非零分量的比值一定收敛到主特征值?
不一定. 先讨论以下情况:
情形1: 设n n阶实矩阵A的特征值i (i 1, 2, , n) 满足 1 2 n 且与i (i 1, 2, , n)相应的特征
向量x1 , x2 , , xn 线性无关。
v (1) 2
v (1) 1
0.41 ,
v (2) 2
v (2) 1
0.41666,
v (1) 3
0.41260,
v (2) 3
0.41249,
v (1) 2
v (2) 2
v (1) 4
v (1) 3
0.41263,
v (2) 4
v (2) 3
0.41263,
问题:是否任何矩阵的幂法,当k比较大时,一定有
故按模特征值为:
1 43.88 对应的特征向量为:
u1 0.1859 0.4460 1.0000T
例3 用幂法求矩阵 的主特征值和主特征向量.
1 1 0.5 A 1 1 0.25
0.5 0.25 2
解 : 取初始向量u0 (1,1,1)T , 按(3.2)的计算结果如表9 1。
计算方法之计算矩阵的特征值和特征量

计算方法之计算矩阵的特征值和特征量计算矩阵的特征值和特征向量是线性代数中的一个重要问题,它在科学研究和工程应用中有着广泛的应用。
本文将介绍计算矩阵特征值和特征向量的方法,包括特征方程法、幂法、反幂法和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 ,...,,211.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); % 是原值,而非其绝对值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1. 幂法简介:当矩阵A 满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。
矩阵A 需要满足的条件为: (1) 的特征值为A i n λλλλ,0||...||||21≥≥≥>(2) 存在n 个线性无关的特征向量,设为n x x x ,...,,211.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); % 是原值,而非其绝对值。
end4 举例验证选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比较,再计算A*y-t*y,验证y是否是对应的特征向量。
结果如下:结果正确,表明算法和代码正确,然后利用此程序计算15阶Hilb矩阵,与eig(A)的得到结果比较,再计算A*y-t*y,验证y是否是对应的特征向量。
设置初始向量为x0=ones(15,1),结果显示如下可见,结果正确。
得到了15阶Hilb 矩阵的按模最大特征值和对应的特征向量。
二.反幂法1.反幂法简介及其理论在工程计算中,可以利用反幂法计算矩阵按模最小特征值及其对应特征向量。
其基本理论如下,与幂法基本相同:x x A x A x x Ax λλλ1)(11==⇒=--则,由,可知,A 和A -1的特征值互为倒数,求A 按模最小特征值即求A -1的按模最大特征值,取倒数即为A 的按模最小特征值所以算法基本相同,区别就是在计算)1()()1()(1-)1()()1()1(;,+++++===k k k k k k k k x LU A y Ax y A x Ay x x 分解,来计算做对具体计算时,变换为而是时,不是令2.算法实现., );4( ,))(max(, ,1,).7(),7(,,,1,||).6( ),max().5(),,().4().3(,))(max(,0 ,1).2(,,,,).1(000停机否则输出失败信息转置若否则转停机输出若解方程组作三角分解置最大迭代次数误差限初始向量输入矩阵x abs xy k k N k y x z Ux y Lz y LUx LUA x abs xy k N x A ←←+←<<-←←====←←←λλλελλμλμλε3 matlab 程序代码function [s,y]=invpower(A,x0,eps,n) % s 为按模最小特征值,y 是对应特征向量k=1; r=0; % r 相当于0λy=x0./max(abs(x0)); % 规范化初始向量[L,U]=lu(A);z=L\y;x=U\z;u=max(x);s=1/u; % 按模最小为A-1按模最大的倒数.if abs(u-r)<eps % 判断第一次迭代后是否满足终止条件returnendwhile abs(u-r)>eps && k<n % 终止条件.k=k+1;r=u;y=x./max(abs(x));z=L\y;x=U\z;u=max(x);end[m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值s=1/x(index); % 是原值,而非其绝对值。
end4 举例验证同幂法一样,选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比较,再计算A*y-t*y,验证y是否是对应的特征向量。
可见结果正确,然后利用此程序计算15阶Hilb矩阵,eig(A)的得到结果比较,再计算A*y-s*y,验证y是否是对应的特征向量。
设置初始向量为x0=ones(15,1),结果显示如下可见,结果真确。
得到了15阶Hilb 矩阵的按模最大特征值和对应的特征向量。
三. 计算条件数矩阵A 的条件数等于A 的范数与A 的逆的范数的乘积,即cond(A)=‖A‖·‖A^(-1)‖,对应矩阵的3种范数,可以定义3种条件数。
函数 cond(A,1)、cond(A)或cond(A inf)是判断矩阵病态与否的一种度量,条件数越大表明矩阵的病态程度越大.的最大和最小特征值矩阵分别为范数,即这里我们选择矩阵的A A A cond T 2121,,)(2λλλλ=,而如果A 为对称矩阵,如Hilb 矩阵,A A T 的最大最小特征值,分别为A 的最大最小特征值的平方。
所以cond(A) 为A 的最大最小特征值得比值。
对于本例中的15阶Hilb 矩阵来说,利用上面计算结果得其条件数(选择第二种条件数)为:3.0934e+017;这与直接利用cond(A)得到的结果:2.5083e+017 在同一数量级,再次表明了上述算得得最大最小特征值的正确性,同时又表明Hilb 矩阵是病态矩阵。
四.Aitken 商加速法1.简介与原理{}{}.,ˆˆ:2)( 2)(,,;0lim,122112212221211加速法这种方法称为逼近用有充分大时当线性收敛即且收敛与若Aitken a aaa a a a a a a x x x x x x y a a aa a a a a k a c a a aa a a k k kk k k k k nn n n n n n k k k k k kk k k =+---≈⇒+---=--≈--≠=--+++++++++++++∞→同幂法和反幂法计算最大和最小特征值类似,如果计算最大特征值,则迭代格式为)()1(k k Ay x =+;计算最小特征值时,迭代格式为)1()()(1)1(,+-+==k k k k Ax y y A x 即。
2.算法实现计算按模最大特征值算法如下:.,,),3()max(,,1 , , ,,).6(),6(,,,).5(,2)().4(,)max( , ).3(,)max( ,0.1 ,0 ,0 ,1).2(,,,),().1(01201001220102010停机输出失败信息否则转置若否则转停机输出若计算置计算置最大迭代次数误差限初始向量输入y x xk k N k y x Ay x x xy k N x a A ij ⇒⇒+⇒⇒⇒<<-+---=⇒=======λλααααλελλααααααλαλααε类似幂法和反幂法可以写出按模最小特征值算法,此处不再赘述。
3.matlab 程序代码function [r,y]=aitken(A,x0,eps,n) % r 按模最大特征值,y 为对应特征向量 k=1;a0=0; % a 相当于 0α a1=1; % a1 相当于 1α r0=1; % 相当于2中的 0λy=x0./max(abs(x0)); % 规范化初始向量 x=A*y;a2=max(abs(x)); % a2相当于2αr=a0-(a1-a0)^2/(a2-2*a1+a0); % 相当于 λif (a2-2*a1+a0)==0 % 若上式中分母为0,则迭代失败,返回 disp "初始向量迭代失败"return;endif abs(r-r0)<eps% 判断第一次迭代后是否满足要求,如满足,则返回结果returnendwhile abs(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,则迭代失败,返回return;endr=a0-(a1-a0)^2/(a2-2*a1+a0);[m,index]=max(abs(eig(A))); % 以下代码保证取出来的按模最大特征值aa=eig(A); % 是原值,而非其绝对值。
if aa(index)>0 ||aa(index)==0r=r;e lser=-r;endendend类似可得按模最小特征值和特征向量的代码如下:与上面类似,所不同的只是迭代格式不同.function [r,y]=invaitken(A,x0,eps,n)k=1;a0=0;a1=1;r0=1;y=x0./max(abs(x0));[L,U]=lu(A); % 迭代格式的不同z=L\y;x=U\z;a2=max(abs(x));r=a0-(a1-a0)^2/(a2-2*a1+a0);i f (a2-2*a1+a0)==0disp "初始向量迭代失败"return;endif abs(r-r0)<eps% 判断第一次迭代后是否满足要求,如满足,则返回结果returnendwhile abs(r-r0)>eps && k<nk=k+1;a=b;b=c;r0=r;y=x./max(abs(x));z=L\y;x=U\z;a2=max(abs(x));if (a2-2*a1+a0)==0return;endr=a0-(a1-a0)^2/(a2-2*a1+a0);end[m,index]=min(abs(eig(A))); % 以下代码保证取出来的按模最大特征值aa=eig(A); % 是原值,而非其绝对值。