Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture Notes on Solving Large Scale Eigenvalue Problems.pdf
Скачиваний:
49
Добавлен:
22.03.2016
Размер:
2.32 Mб
Скачать

4.4. DEFLATION

79

Now we have arrived at the eigenvalue problem

(4.6)

(D + ρvvT )x = λx,

D = Λ1 Λ2 = diag(λ1, . . . , λn).

That is, we have to compute the spectral decomposition of a matrix that is a diagonal plus a rank-one update. Let

(4.7) D + ρvvT = QΛQT

be this spectral decomposition. Then, the spectral decomposition of the tridiagonal T is

 

 

 

Q2

 

 

Q1T

Q2T

 

(4.8)

T =

Q1

 

QΛQ

T

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Forming the product (Q1 Q2)Q will turn out to be the most expensive step of the algorithm. It costs n3 + O(n2) floating point operations

4.4Deflation

There are certain solutions of (4.7) that can be given immediately, by just looking carefully at the equation.

If there are zero entries in v then we have

(4.9) vi = 0 vT ei = 0 = (D + ρvvT )ei = diei.

Thus, if an entry of v vanishes we can read the eigenvalue from the diagonal of D at once and the corresponding eigenvector is a coordinate vector.

If identical entries occur in the diagonal of D, say di = dj , with i < j, then we can find a plane rotation G(i, j, φ) (see (3.4)) such that it introduces a zero into the j-th position

of v,

 

 

 

 

 

 

..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vi

×

 

 

 

i

 

 

 

 

 

2 + vj 2

 

 

 

 

 

 

 

 

.

 

 

 

 

G

T

v = G(i, j, ϕ)

T

v =

 

.

 

 

 

 

p ..

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notice, that (for any ϕ),

 

 

 

 

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G(i, j, ϕ)T DG(i, j, ϕ) = D,

di = dj .

 

So, if there are multiple eigenvalues in D we can reduce all but one of them by introducing zeros in v and then proceed as previously in (4.9).

When working with floating point numbers we deflate if

(4.10) |vi| < CεkT k or |di − dj | < CεkT k, (kT k = kD + ρvvT k) where C is a small constant. Deflation changes the eigenvalue problem for D + ρvvT into

the eigenvalue problem for

= GT (D + ρvvT )G + E,

 

 

 

 

D

 

+ ρv

vT

O

 

 

 

 

 

kEk < CεpkDk2 + |ρ|2kvk4,

(4.11)

 

1

O 1

1

D2

where D1 has no multiple diagonal entries and v1 has no zero entries. So, we have to compute the spectral decomposition of the matrix in (4.11) which is similar to a slight perturbation of the original matrix. G is the product of Givens rotations.

80

CHAPTER 4. CUPPEN’S DIVIDE AND CONQUER ALGORITHM

4.4.1Numerical examples

Let us first consider

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2 1

 

 

 

 

1

2

1

 

 

 

 

 

 

0

0

 

 

 

 

 

 

1

1

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T =

 

1

1

4 1

=

 

 

0

3

1

 

+

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

1

 

 

 

1

2

0

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

1 5 1

 

 

 

 

 

1

5

1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 6

 

 

 

 

 

 

1

6

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

 

0

0

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

0

 

0

 

 

= T0 + uuT .

 

 

 

 

 

 

 

 

=

 

1

2

3

1

 

+

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

5

1

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

6

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Then a little MATLAB experiment shows that

 

 

 

0.1981

1.5550

 

 

 

 

 

0.7370

 

0.7370

 

T

 

 

 

 

 

 

 

 

 

 

0.3280

 

0.3280

 

 

Q0 T Q0

=

 

3.2470

2.5395

 

+

0.9018

0.9018

 

 

 

 

 

 

 

4.7609

 

 

 

0.4042

 

0.4042

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

0.5910

 

0.5910

 

 

 

 

 

 

 

 

6.6996

 

 

 

0.1531

 

0.1531

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

with

 

 

 

0.5910

0.3280

0.7370

 

 

 

 

 

 

 

0.7370

0.5910

0.3280

 

 

 

 

Q0

=

0.3280

0.7370

0.5910

0.9018

0.4153

0.1200

 

 

 

 

 

 

0.4042

0.7118

0.5744

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.1531

0.5665

0.8097

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Here it is not possible to deflate.

Let us now look at an example with more symmetry,

 

1

2 1

 

 

 

1

2

1

 

 

 

 

 

 

0

0

 

 

 

 

 

 

2

1

 

 

 

 

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T =

 

1

1

2 1

=

 

 

0

1

1

 

+

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

1

1

0

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

1 2 1

 

 

 

 

 

1

2

1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

 

0

0

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

 

 

 

 

0

 

0

 

 

= T0 + uuT .

 

 

 

 

 

 

 

=

 

1

1

1

1

 

+

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

1

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.5. THE EIGENVALUE PROBLEM FOR D + ρVVT

 

 

 

 

 

 

81

Now, MATLAB gives

 

 

 

 

 

 

−0.5910

−0.5910

 

 

 

 

 

 

1.5550

 

 

 

 

T

 

 

0.1981

 

 

 

 

 

 

 

 

0.7370

 

0.7370

 

 

Q0 T Q0

=

 

 

 

0.1981

 

+

0.7370

0.7370

 

 

 

 

 

 

 

1.5550

 

 

 

0.5910

 

0.5910

 

 

 

 

 

 

3.2470

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

0.3280

 

0.3280

 

 

 

 

 

 

 

 

 

3.2470

 

 

0.3280

 

0.3280

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

with

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5910

−0.3280

0.7370

 

 

 

 

 

 

 

 

 

 

 

 

 

0.3280

0.7370 0.5910

 

 

 

 

 

 

 

 

 

 

 

Q0 =

0.7370

−0.5910

0.3280

0.7370

0.5910

0.3280

 

 

 

 

 

 

 

 

 

 

0.5910

0.3280

0.7370

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.3280

0.7370

0.5910

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

In this example we have three double eigenvalues. Because the corresponding components of v (vi and vi+1) are equal we define

 

G = G(1, 4, π/4)G(2, 5, π/4)G(3, 6, π/4)

 

 

 

 

 

 

 

 

 

 

 

 

 

0.7071

0.7071

 

 

 

0.7071

 

 

 

 

 

 

 

 

 

0.7071

 

 

 

 

 

 

 

0.7071

 

 

 

0.7071

 

 

 

 

 

 

=

 

0.7071

 

0.7071

0.7071

 

 

 

 

 

 

 

 

 

 

 

 

 

0.7071

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.7071

 

 

 

 

0.7071

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Then,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GT Q0T T Q0G = GT Q0T T0Q0G + GT v(GT v)T = D + GT v(GT v)T

 

 

 

 

 

 

 

0.1981

 

 

 

 

 

 

 

 

 

 

1.0422

 

1.0422

 

T

 

 

 

 

 

 

 

 

 

 

 

 

1.5550

 

 

 

 

 

−0.8358

−0.8358

 

=

 

 

 

3.2470

0.1981

 

 

 

 

+

 

0.4638

 

0.4638

 

 

 

 

 

 

 

 

0.0000

0.0000

 

 

 

 

 

 

 

 

1.5550

 

 

 

 

0.0000

 

0.0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2470

 

 

 

0.0000

 

0.0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Therefore, (in this example) e4, e5, and e6 are eigenvectors of

D + GT v(GT v)T = D + GT vvT G

corresponding to the eigenvalues d4, d5, and d6, respectively. The eigenvectors of T corresponding to these three eigenvalues are the last three columns of

 

 

0.5211

−0.2319

−0.4179

−0.4179

−0.2319

0.5211

 

 

 

0.2319

−0.4179

 

0.5211

0.5211

−0.4179

0.2319

 

 

0.5211

 

0.2319

0.4179

0.4179

0.2319

0.5211

 

 

 

0.4179

 

0.5211

 

0.2319

0.2319

0.5211

0.4179

 

Q0G =

 

0.2319

 

0.4179

 

0.5211

0.5211

0.4179

0.2319

.

 

 

0.4179

 

0.5211

 

0.2319

0.2319

0.5211

0.4179

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.5The eigenvalue problem for D + ρvvT

We know that ρ 6= 0. Otherwise there is nothing to be done. Furthermore, after deflation, we know that all elements of v are nonzero and that the diagonal elements of D are all

82

CHAPTER 4. CUPPEN’S DIVIDE AND CONQUER ALGORITHM

distinct, in fact,

|di − dj | > CεkT k.

We order the diagonal elements of D such that

d1 < d2 < · · · < dn.

Notice that this procedure permutes the elements of v as well. Let (λ, x) be an eigenpair of

(4.12)

(D + ρvvT )x = λx.

Then,

 

(4.13)

(D − λI)x = −ρvvT x.

λ cannot be equal to one of the di. If λ = dk then the k-th element on the left of (4.13) vanishes. But then either vk = 0 or vT x = 0. The first cannot be true for our assumption about v. If on the other hand vT x = 0 then (D − dkI)x = 0. Thus x = ek and vT ek = vk = 0, which cannot be true. Therefore D − λI is nonsingular and

(4.14)

x = ρ(λI

D)−1v(vT x).

 

 

 

This equation shows that x is proportional to (λI − D)−1v. If we require kxk = 1 then

(4.15)

x =

(λI − D)−1v

.

k(λI − D)−1vk

 

 

 

Multiplying (4.14) by vT from the left we get

 

 

(4.16)

vT x = ρvT (λI

D)−1v(vT x).

 

 

 

 

 

Since vT x 6= 0, λ is an eigenvalue of (4.12) if and only if

10

5

1 0

 

−5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−10

 

0

1

 

3

3.5

 

 

 

7

 

8

 

10

 

 

−2

 

 

 

 

 

 

 

 

 

Figure 4.1: Graph of 1 +

1

+ 0.22

+

0.62

+

 

0.52

+

0.92

+ 0.82

 

 

 

 

 

0−λ

1−λ

 

3−λ

 

3.5−λ

 

7−λ

8−λ

(4.17)

f(λ) := 1

 

ρvT (λI

 

D)−1v = 1

 

ρ

n

 

 

vk2

 

= 0.

 

 

 

 

 

 

 

 

P

 

dk

 

 

 

 

 

 

 

 

 

 

k=1 λ

 

 

 

4.5. THE EIGENVALUE PROBLEM FOR D + ρVVT

83

This equation is called secular equation. The secular equation has poles at the eigenvalues of D and zeros at the eigenvalues of D + ρvvT . Notice that

n

 

 

 

X

 

 

 

f(λ) = ρ

 

vk2

.

 

dk)2

k=1

 

 

 

 

 

 

Thus, the derivative of f is positive if ρ > 0 wherever it has a finite value. If ρ < 0 the derivative of f is negative (almost) everywhere. A typical graph of f with ρ > 0 is depicted in Fig. 4.1. (If ρ is negative the image can be flipped left to right.) The secular equation implies the interlacing property of the eigenvalues of D and of D + ρvvT ,

(4.18)

d1 < λ1

< d2 < λ2

< · · · < dn < λn,

ρ > 0.

or

 

 

 

 

(4.19)

λ1 < d1

< λ2 < d2

< · · · < λn < dn,

ρ < 0.

So, we have to compute one eigenvalue in each of the intervals (di, di+1), 1 ≤ i < n, and a further eigenvalue in (dn, ∞) or (−∞, d1). The corresponding eigenvector is then given by (4.15). Evidently, these tasks are easy to parallelize.

Equations (4.17) and (4.15) can also been obtained from the relations

" v λI − D # =

ρv I

"

0

 

λI − D − ρvvT

#

0

I

 

 

 

1

 

vT

 

 

1 0T

 

 

1

 

 

0T

 

 

 

1

ρvT

 

 

 

ρ

0

 

 

 

 

 

"

 

 

ρ

 

 

 

 

 

 

 

# (λI − D)−1v I

 

 

 

T

I

 

1

1

 

T

0

1

 

λI − D

=

1

v

 

(λI − D)

 

 

ρ

 

v

 

(λI D)

v

 

0

 

 

1

0

.

These are simply block LDLT factorizations of the first matrix. The first is the well-known one where the factorization is started with the (1, 1) block. The second is a ‘backward’ factorization that is started with the (2, 2) block. Because the determinants of the tridiagonal matrices are all unity, we have

(4.20)

1

det(λI − D − ρvvT ) =

1

(1

− ρvT (λI − D)−1v) det(λI − D).

 

 

 

ρ

ρ

Denoting the eigenvalues of D + ρvvT again by λ1 < λ2 < · · · < λn this implies

 

n

 

 

 

 

n

 

jY

 

 

 

 

Y

 

(λ − λj ) = (1 − ρvT (λI − D)−1v)

(λ − dj )

 

=1

 

 

 

 

j=1

 

n

 

2

 

n

 

(4.21)

X

 

 

Y

= 1 ρ k=1 λ vkdk ! j=1dj )

 

n

 

n

Y

 

Y

 

X

 

= (λ − dj ) − ρ

vk2

(λ − dj )

 

j=1

 

k=1

j6=k

 

 

 

Setting λ = dk gives

 

 

 

 

 

 

 

n

 

n

 

 

 

jY

 

Y

 

 

(4.22)

(dk − λj ) = −ρvk2

(dk − dj )

 

=1

 

j=1

 

 

 

 

 

j6=i

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]