You are on page 1of 5

7

(()=|max|)
n (
) | max|> i, imax.
max . ,
( n
), | max|> i, imax.
(. . [1], IV.4)
:
x k + 1 = A k x k , k = 0,1,2
x k + 1 =
:
lim k

x k = v1 = v max

lim k

xi , k + 1
xi , k

(3.1)

= 1 = max i=1,,n,

(3.1) ,
n (1).
, q1, q2qn
, 1=-1q1q1 1, : 0, 2,3,n,
q2qn (. [1], V.4.2). ,
|1||2||3||n|,
:
s0=[1,1,1]T;
[1, v1] = powerm(, s0);
For i=1:n-1 do
qi=vi/||vi||;
i=i-1- i qiqiT
[i, vi]= powerm(i, qi);
end;
n
.

3.1

, , n
. .


,
(n 1).
function (-file) Matlab power_method ,
2
(. [1]).
function [v, l, V, L, iter, done] = power_method(A, eps, max)
%
% (A) v
% nxn n
% ' 1.
% INPUT:
%
A: rectangular input matrix
%
eps: tolerance;
%
max: maximum number of iterations
% OUTPUT:
%
v: eigenvector
%
l: max
%
V: history of eigenvectors' iterations
%
L: history of eigenvalues' iterations
%
iter: number of iterations needed to reach tolerance
%
done: logical value indicating method success
[m,n] = size(A) ;
if m ~= n return;
end;
x0 = ones(n,1); %starting vector
V = x0'; L=[]; %initializations
xp = x0;
done = false;
i=0;
while ~done & (i < max)
i=i+1;
u=A*xp ;
lamda=norm(u,2);
xn=u/lamda;
V=[V;xn'];
L=[L;lamda]; %updating history matrices
done = norm(xn-xp)<=eps;
xp=xn;
end;
iter = i;
if done
l = lamda;
v = xn;
end

. :
A=[1 0 0 0 ; 0 8 4 0 ; 0 4 8 0 ; 0 0 0 2];
[v, l, V, L, iter, done] = power_method (A, 0.001, 100)
:

v=
0.0000
0.7071
0.7071
0.0001
l=
12.0000
V=
1.0000
0.0584
0.0049
0.0004
0.0000
0.0000

1.0000
0.7010
0.7070
0.7071
0.7071
0.7071

1.0000
0.7010
0.7070
0.7071
0.7071
0.7071

1.0000
0.1168
0.0196
0.0033
0.0005
0.0001

L=
17.1172
11.8996
11.9976
11.9999
12.0000
iter =
5
done =
1
.
B=
10 2 -5 1
0 9 4 -3
0 4 30 15
2 15 1 25
, Matlab ( [V, D] = eig()), .
: 34.4862, 14.9202+4.8009i, 14.9202-4.8009i, 9.6733. ()=34.4862
v(A)=(-0.1730, 0.1188, 0.9450, 0.2509).
. :
eps=1.0e-006.
>> [v, l, V, L, iter, done] = power_method (B, 0.000001, 100)
v=
-0.1730
0.1188
0.9450
0.2509
l=
34.4862
V=
1.0000 1.0000

1.0000

1.0000

0.1204
-0.0405
-0.1096
-0.1427
-0.1590
-0.1669
-0.1705
-0.1721
-0.1727
-0.1730
-0.1730
-0.1730
-0.1730
-0.1730
-0.1730
-0.1730
-0.1730
-0.1730
-0.1730
L=
66.4379
37.9086
36.9067
35.9029
35.2149
34.8201
34.6223
34.5342
34.4994
34.4877
34.4847
34.4846
34.4851
34.4856
34.4859
34.4860
34.4861
34.4861
34.4862
iter =
19
done =
1

0.1505 0.7375 0.6472


0.0623 0.8556 0.5122
0.0663 0.9104 0.3933
0.0852 0.9325 0.3208
0.1004 0.9407 0.2824
0.1097 0.9437 0.2639
0.1147 0.9447 0.2557
0.1171 0.9450 0.2524
0.1182 0.9450 0.2512
0.1186 0.9450 0.2509
0.1187 0.9450 0.2508
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509
0.1188 0.9450 0.2509



=[2, 4, -1; 4, 6, 1; -1, 1, 4].

. 2.

:
1. . . ,
, 2007.
2. . . , .

You might also like