幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值计算解矩阵的按模最大最小特征值及对应的特征向量

—一 .幂法

1. 幕法简介:

当矩阵A 满足一定条件时,在工程中可用幕法计算其主特征值 (按模最大) 及其特征向量。矩阵A 需要满足的条件为:

⑴I 1 I I 2|n |- 0, i 为A 的特征值

(2)存在n 个线性无关的特征向量,设为 X i ,X 2,…,X n 1.1计算过程:

n

对任意向量x (0),有x (0)八:-M —不全为0,则有

i 4

X (k 岀)=Ax (k)=

= A k 岀乂。)

n

n A k 1

aq a 扌1

5

i =1

i =1

■k 1

2 可见,当

1

1

越小时,收敛越快;且当k 充分大时,有 ?

"1

2算法实现

⑶.计算x Ay,… max(x);

⑷若| •一十:;,输出-,y,否则,转(5)

(5)若N ,置k 「k 1^

-,转3,否则输出失败信息,停机.

3 matlab 程序代码

(冲1

%叫

x

(k 1)

[x

(k)

k

u

x

(k)

>

(k+1)

1,对应的特征向量即是

x

(1).输入矩阵A ,初始向量X ,误差限 最大迭代次数N

(k)

0; y

(k)

max(abs(x (k

))

k=1;

z=0;

y=x0./max(abs(x0)); x=A*y; % z相当于■

%规范化初始向量%迭代格式

b=max(x); % b相当于:

if abs(z-b)

t=max(x);

return;

%判断第一次迭代后是否满足要求

end

while abs(z-b)>eps && k

z=b;

y=x./max(abs(x));

x=A*y;

b=max(x);

end

[m,i ndex]=max(abs(x)); %这两步保证取出来的按模最大特征值

t=x(i ndex); end

%是原值,而非其绝对值。

4举例验证

选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比较,再计算A*y-t*y,验证y是否是对应的特征向量。结果如下:

» A=[l 1 0. 5;1 1 0. 25;0. 5, 0. 25, 2]

A =

1.0000 E 00000. 5000

1.0000 1. 00000, 2500

0. 50000. 2500 2.0000

» x0=[l;l;ll; eps=le-5; 220; >> y]=lpower (A, xO, eps, X)

^0. 0166

1.

4801 2.

5365

» A#y-t*y

ans -

1. 0e-004 +

-0.1603 -0, 1684

结果正确,表明算法和代码正确,然后利用此程序计算 15阶Hilb 矩阵,与

eig(A)的得到结果比较,再计算 A*y-t*y ,验证y 是否是对应的特征向量。设

置初始向量为x0=ones(15,1),结果显示如下

» A 二hilb(15); » x0=ones (15,1):

】;eps-le^6:

» N=30;

>> Lt, y] -1 power (A, xO, eps, X}

t 二

L 8459

2. 5365 0. 7482 0. 6497 L 0000

ans =

可见,结果正确。得到了15阶Hilb矩阵的按模最大特征值和对应的特征向量。

二•反幂法

1■反幕法简介及其理论

在工程计算中,可以利用反幕法计算矩阵按模最小特征值及其对应特征向量。其基本理论如下,与幕法基本相同:

1

由Ax V x= x = A‘(’X),则A’x x,可知,A和A-1的特征值互为倒数,

Z

求A按模最小特征值即求A-1的按模最大特征值,取倒数即为A的按模最小特征值所

以算法基本相同,区别就是在计算x(k1)时,不是令X(k1)= Ay(k),而是X(k J A-1y(k)具体计算时,变换为Ax(k-1^ y(k);对A做LU分解,来计算x(k 1)

2■算法实现

(1) .输入矩阵A,初始向量x,误差限:,最大迭代次数N, (2) •置k 「1,,° “

0, y ,

max(abs(x))

(3) .作三角分解A = LU

(4) .解方程组 LUx = y(Lz = y,Ux = z), (5) . :— max(x), - ■

1

(6) 若- ’0卜:;,输出—,y,停机,否则转(7), (7).若k :: N,置k ・ k 1,•,y ・

否则输出失败信息,停机.

3 matlab 程序代码

fun ctio n [s,y]=i nvpower(A,xO,eps, n) % s 为按模最小特征值,y 是对应特征向量 k=1; r=0;

% r 相当于-o

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)

return end

while abs(u-r)>eps && k

k=k+1; r=u;

y=x./max(abs(x)); z=L\y; x=U\z; u=max(x); end

[m,i ndex]=max(abs(x)); %这两步保证取出来的按模最大特征值 s=1/x(i ndex); %是原值,而非其绝对值。

end

A ,代入程序,得到结果,并与eig(A)的得到结果比

ma 莎面,转⑷; 4举例验证

同幕法一样,选取一个矩阵

相关文档
最新文档