Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Применение временных рядов для анализа больших данных. Учебное пособие по курсу «Математические методы анализа больших данных»

.pdf
Скачиваний:
1
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

1.15. Метод сопряжённых направлений

 

 

 

 

 

 

ξ

(2)

= b Ax

(2)

,

 

 

 

 

 

 

 

 

 

(

(2)

,d

(1)

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

 

 

 

 

 

 

(2)

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

=

ξ

+

d

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= −

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

(Ad

(1)

 

 

 

(1)

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(ξ(2),d(2) )

 

 

 

 

 

 

x

(3)

 

= x

(2)

+

d

(2)

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 = (Ad(2),d(2) ),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

определяется из этого условия

(Ad

(2)

, d

(1)

)= 0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

определяется из условия

(ξ

(3)

, d

(2)

)= 0

. Кроме того, здесь используется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

самосопряжённость (симметрия) A,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

,d

(0)

)=

(A(ξ

(2)

+ d

(1)

),d

(0)

)= (

(2)

,d

(0)

)+

 

 

 

(1)

,d

(0)

)=

 

 

(Ad

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

(Ad

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= (ξ(2), Ad(0))+ 0 = 1

(ξ(2),ξ(0)

ξ(1))= 1(ξ(2),d(0)

(d(1) d(0)))=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

(

 

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

0

(

 

 

 

 

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

1

 

 

(2)

 

 

 

 

(0)

 

 

 

 

 

0

 

 

 

(2)

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

1

(1

+ )

 

ξ

,d

 

 

1

 

 

ξ

,d

 

 

= 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(ξ

(3)

,d

(k )

)= (ξ

(2)

1Ad

(2)

,d

(k )

)

= (ξ

(2)

,d

(k )

)1 (Ad

(2)

,d

(k )

)= 0, k = 0;1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предположим, выполняются соотношения:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( j )

,d

( j 1)

 

 

 

 

 

 

( j )

,d

( j 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( j )

,d

(0)

)= 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Ad

 

 

 

 

 

 

 

)= (Ad

 

 

 

 

 

 

)= = (Ad

 

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

(ξ( j+1),d( j) )

 

Шаг S = j + 1:

 

ξ

( j+1)

= b Ax

( j+1)

,

 

 

= (ξ( j+1),d( j1) )= = (ξ(

 

 

 

(

(

j+1)

,d

( j)

)

 

 

 

 

 

 

 

 

 

 

j+1

= −

(Ad

( j )

 

 

(

j)

)

,

 

 

,d

 

 

 

 

 

 

 

 

j+1),d(0) )= 0.

d

( j+1)

= ξ

( j+1)

+

d

( j )

,

 

 

 

 

 

 

 

 

j+1

 

 

j +1

j +1

 

 

 

(ξ

( j+1)

,d

( j+1)

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

,

x

( j+2

j+1

(Ad

( j+1)

 

 

( j+1)

)

 

 

 

 

 

 

 

 

 

 

 

,d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( j +1)

, d

( j )

)

определяется из условия (Ad

 

определяется из условия (ξ( j +2), d( j +1))

)

= x

( j+1)

+

d

( j+1)

.

 

 

 

 

 

 

2

 

 

 

= 0 .

 

 

 

 

 

= 0 .

31

1. Численные методы решения систем линейных алгебраических уравнений

Докажем выполнение (Ad(j +1),d(k ))= 0

для 0 k j 1,

(ξ(j +2),d(k ))= 0

для 0 k j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(( +1), ( )) = ( (( +1)

+

 

( )), ( )) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= (( +1), ( )) +

 

 

(( ), ( )) = (( +1), ( )) + 0 =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 1(ξ( j +1)

, ξ(k ) ξ(k +1))= 1(ξ( j +1), (d(k )

d(k 1))

(d(k +1)

k

 

d(k )))=

k

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

+1

 

 

=

1

(ξ

( j +1)

,

(1+

 

 

)d

(k )

d

(k 1)

d

(k +1)

)=

 

 

 

 

 

 

k

 

 

k +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

(1+ k+1 )(ξ

( j+1)

,d

(k )

 

 

1

 

(ξ

( j+1)

,d

(k1)

)

 

1

(ξ

( j+1)

,d

(k+1)

)= 0.

= k

 

 

 

)k k

 

 

 

 

 

k

 

 

 

 

 

 

Тогда

(ξ( j +2), d(k ))= (ξ( j +1) j Ad( j +1), d(k ))= (ξ( j +1), d(k ))j (Ad( j +1), d(k ))= 0

и для 0 ≤ k j.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из условия A-ортогональности направления

d

(s)

0

всем предыду-

 

 

 

 

 

щим направлениям

d

(s1)

, d

(s2)

, …,

 

d

(0)

следует линейная независимость

 

 

 

 

 

 

d

(s)

со всеми предыдущими направлениями d

(s1)

,

d

(s2)

, …, d

(0)

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Докажем это. Скалярное произведение

(d

(s)

, Ad

(s)

)

для ненулевого

 

 

 

 

 

 

вектора

d

(s)

 

0

и положительно определённой матрицы A строго поло-

 

 

жительно

(d

(s)

 

(s)

) 0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

, Ad

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предположим, направление

d

(s)

0

линейно зависимо от направ-

 

 

 

 

лений d

(s1)

,

d

(s2)

, …,

d

(0)

. Это означает, что направление d

(s)

может

 

 

 

 

 

 

 

 

 

 

 

 

быть выражено в виде линейной комбинации d(s1) ,

 

d(s2)

, …, d(0)

 

 

 

 

 

 

 

 

 

d

(s)

= d

(s1)

+

 

d

(s2)

 

+

 

+

d

(0)

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

 

 

 

 

 

 

 

 

 

 

 

 

где среди чисел ,

2

, …,

1

 

(d(s), Ad(s))= (d(

s),

s

обязательно есть ненулевые. Но тогда

 

A( 1d(s1) + 2d(s2) + + sd(0)))=

= 1 (d(s), Ad(s1) )+ 2 (d(s), Ad(s2) )+

+ s (d(s), Ad(0) )= 0,

32

1.15. Метод сопряжённых направлений

что противоречит предположениям d(s) 0 и положительной определённости матрицы A.

Это означает следующее. При решении СЛАУ с n неизвестными мы ищем решение в пространстве n измерений. Но в пространстве n измерений не может быть линейно независимых направлений больше n. Но

d

(1)

линейно независимо с

d

(0)

,

d

(2)

линейно независимо с d

(0)

и

d

(1)

,

 

 

 

 

 

 

 

 

d

(3)

линейно независимо с

d

(0)

,

d

(1)

и d

(2)

и т.д.

Как минимум,

d

(n)

 

 

 

 

 

 

 

 

уже не может быть линейно независимо с d

(0)

,

d

(1)

, …, d

(n1)

, потому

 

 

 

 

 

что это будет уже (n + 1)-е линейно независимое направление. Противо-

речие исключается, если отказаться от d

(n)

0 .

 

 

 

Но d

(n)

= 0 означает, что нет направления дальнейшего уточнения

 

 

 

 

x

(n )

. Таким образом, не более чем за n итераций метод сопряжённых направ-

 

лений достигает решения СЛАУ с n неизвестными (и n уравнениями).

 

 

Далее

приведён псевдокод рассмотренных стационарных (метод

Зейделя, метод релаксации, метод простых итераций, Чебышёвский итерационный метод) и нестационарных (метод скорейшего спуска, метод минимальных невязок, метод сопряжённых направлений) итерационных методов решения СЛАУ (табл. 1–3).

Таблица 1

Псевдокод алгоритмов итерационных методов Зейделевского типа

Метод Зейделя

Input:

n, A, b, ε;

x 0

;

 

e b ;

Метод релаксации

 

Input:

 

 

n, A, b, ε, ω;

 

x 0

;

 

 

 

e b ;

 

 

 

 

 

Окончание табл. 1

 

Метод Зейделя

 

Метод релаксации

 

 

 

 

r e

;

r e

;

 

 

while(r e)do

while(r e)do

 

for i:=1 to n do

 

for i:=1 to n do

 

 

 

 

33

1. Численные методы решения систем линейных алгебраических уравнений

 

 

1

 

 

i 1

 

 

 

xˆ

 

b

a

xˆ

 

a

 

i

 

 

i

i, j

 

j

 

 

 

i,i

 

j =1

 

 

 

 

 

 

endfor

 

 

 

 

 

 

y b Ax ;

 

 

 

 

r

(y, y) ;

 

endwhile

Output: x.

n

 

 

 

a

x

 

 

i, j

 

j

 

 

 

j =i +1

 

 

;

 

 

 

 

 

 

i 1

 

 

 

n

 

 

 

;

xˆ

x

+

b

a

xˆ

 

a

x

 

 

a

 

 

i

i

 

 

i

i, j

 

j

 

i, j

 

j

 

 

 

 

 

i,i

 

j =1

 

 

 

j =i

 

 

 

 

 

 

endfor

 

 

 

 

 

 

 

 

 

 

 

y b Ax ;

 

 

 

 

 

 

 

 

 

 

r

 

(y, y) ;

 

 

 

 

 

 

 

 

endwhile

Output: x.

Таблица 2

Псевдокод алгоритмов явных стационарных итерационных методов

Метод простых итераций

Input:

n, A, b, ε;

2( max + min ); x 0 ;

e b ; r e ;

while(r e)do

yb Ax ; x x + y ;

r

(y, y) ;

endwhile

Метод простых итераций

Чебышёвский итерационный метод

Input:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n, A, b, ε, m,

i

,i

, ,i

 

;

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

m

 

 

 

 

 

 

 

 

p m i1, i2 , , im ;

 

 

 

 

 

 

 

 

 

for k:=1 to m do

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

2 p k

+1

 

 

 

 

+

 

 

 

+ (

 

 

 

 

max

min

 

max

min

)cos

2m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

endfor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 0 ;

e b

;

r e

;

 

 

 

 

 

 

while(r e)do

 

 

 

 

 

 

 

 

 

 

 

 

for k:=1 to m do

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y b Ax ;

 

 

 

 

 

 

 

 

 

 

 

 

 

x x + k y ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Окончание табл. 2

Чебышёвский итерационный метод

Endfor

r (y, y) ;

34

 

 

1.15. Метод сопряжённых направлений

 

 

 

 

 

 

 

 

endwhile

 

 

Output:

 

Output:

 

 

x.

 

x.

 

 

 

 

 

 

Таблица 3

Псевдокод нестационарных итерационных методов решения СЛАУ

Метод скорейшего

Метод минимальных

Метод сопряжённых

спуска

невязок

направлений

 

 

 

 

 

 

Input:

 

Input:

Input:

 

 

n, A, b, ε;

 

n, A, b, ε;

n, A, b, ε;

 

 

 

 

 

 

x 0 ;

 

x 0 ;

x 0

; e b ;

e b ;

 

e b ;

q 1

; z 0

;

r e ;

 

r e ;

d 0 ; r e

;

while(r e)do

while(r e)do

while(r e)do

y b Ax ;

 

y b Ax ;

y b Ax ;

 

z Ay ;

 

z Ay ;

(y, z) q ;

 

r (y, y);

 

(y, z) (z, z);

d y d ;

 

r (y, z)

;

x x + y ;

z Ad ; q (d, z);

 

 

x x + y ;

r (y, y) ;

(d, y) q ; x x + d ;

r r ;

 

endwhile

r (y, y) ;

 

endwhile

 

 

endwhile

 

 

 

 

 

Output:

 

Output:

Output:

 

x.

 

x.

x.

 

 

 

 

 

 

 

 

35

а min

1. Численные методы решения систем линейных алгебраических уравнений

ЧАСТИЧНАЯ ПРОБЛЕМА СОБСТВЕННЫХ ЗНАЧЕНИЙ

2.1. Решение частичных проблем собственных значений

Различают полную и частичную проблемы собственных значений.

Полная проблема собственных значений состоит в нахождении всех собственных пар (собственное число и соответствующий ему собственный вектор) квадратной матрицы A. Эту задачу можно считать самой трудоёмкой задачей линейной алгебры.

Часто нет необходимости в нахождении всех собственных пар. В подобных случаях чаще всего требуется определение максимального собственного числа λmax и соответствующего ему собственного вектора e max или максимального и минимального min собственных чисел (границ спектра) симметричной или Эрмитовой матрицы. Такие задачи называют частичными проблемами собственных значений.

Одним из методов решения частичных проблем собственных значений является метод скалярных произведений (Г. И. Марчук в книге «Методы вычислительной математики» называет его методом Люстерника). В основе метода лежит следующий итерационный процесс:

yAxs λs+1←(y,xs), xs+1y/|y|.

Для положительно определённой симметричной (или Эрмитовой) матрицы max и xse max.

Для нахождения минимального собственного числа симметричной (или Эрмитовой) положительно определённой матрицы A «разворачивают» её спектр. Предварительно должна быть решена задача нахожденияmax. Все собственные числа единичной матрицы E равны единице, а собственным вектором является любой ненулевой вектор. Поэтому max матрицы A отображается в нулевое собственное число матрицы B = maxEA,

матрицы A отображается в максимальное собственное числоmax = maxmin матрицы B. Само min равно min = maxmax. Для нахож-

36

2.1. Решение частичных проблем собственных значений

дения max используют тот же самый итерационный процесс, что использовался для нахождения max, только применительно к матрице B. Следует иметь в виду, что скорость сходимости процесса max будет разительно медленнее скорости сходимости процесса max (эту скорость можно считать просто быстрой). Всё-таки находится min.

Для плохо обусловленной симметричной (или Эрмитовой) положительно полуопределённой матрицы A, т.е. матрицы с max >> min ≥ 0, может оказаться, что max max и min 0. При этом из-за медленной сходимости процесс max не достиг точного значения max. В таких случаях может оказаться, что min = max max < 0, в то время как для положительно полуопределённой матрицы max min ≥ 0. В этом случае используют пару итерационных процессов. Собственный вектор e min, соответствующий собственному числу min матрицы A, определяют с помощью матрицы B, а само min определяют с помощью самой матрицы A. Понятно, что сходимость такого процесса будет определяться сходимостью процесса для матрицы B, а она медленная.

Перечисленные алгоритмы представлены в табл. 4.

Таблица 4

Псевдокод решения частичных проблем собственных значений

Нахождение

max

0 ;

x u

 

u

 

;

 

 

 

 

 

 

 

 

do{

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

y Ax

;

 

 

 

 

 

 

 

 

(y, x)

;

 

 

 

 

 

 

 

x y

y

;

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

while(

 

 

 

 

 

( + )

 

 

)

Нахождение

 

 

 

min

 

B =

E A

 

max

;

 

 

0

;

 

 

 

x u u ;

 

do{ ;

 

y Bx ;

 

(y, x)

 

;

x yy ;

}

while(

Нахождение

0

min

 

max

 

 

 

 

 

 

B =

 

E A

;

 

 

max

 

 

 

 

 

 

 

 

 

0

;

 

 

 

 

 

 

 

 

 

 

 

x u u

;

 

 

 

 

 

 

 

 

 

 

do{

 

 

 

 

 

 

 

;

 

 

 

y Bx

 

 

 

 

 

 

 

;

 

 

 

z Ax

;

 

 

 

 

 

 

 

 

 

(z, x)

;

 

 

 

 

 

 

 

 

x y

y

;

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

while(

 

 

 

 

 

37

2. Частичная проблема собственных значений

Нахождение

max

 

max

=

,

 

 

 

e

max

= x

.

 

 

 

( + )

 

Нахождение

 

 

 

 

 

 

 

 

 

min

 

 

 

)

 

 

 

 

 

 

min

=

max

,

 

 

 

e min = x .

Окончание табл. 4

Нахождение

0

min

 

max

 

 

( + )

 

 

)

 

 

min = ,

 

e min = x .

2.2. Процесс ортогонализации ГрамаШмидта

Выделение последующих собственных пар можно осуществить с помощью процесса ортогонализации ГрамаШмидта. Легко доказывается теорема, что собственные векторы симметричной (или Эрмитовой) матрицы (не обязательно положительно полуопределённой), соответствующие различным собственным числам, ортогональны.

Если у симметричной (или Эрмитовой) матрицы встречаются кратные собственные числа, то подпространство собственных векторов, соответствующее этому кратному собственному числу, с одной стороны, ортогонально остальным собственным векторам.

С другой стороны, в этом подпространстве может быть выделен ортогональный базис, векторы которого будут удовлетворять определению собственных векторов. Таким образом, в любом случае собственные векторы симметричной (или Эрмитовой) матрицы попарно ортогональны (или могут быть выбраны такими).

Процесс ортогонализации ГрамаШмидта состоит в следующем. Пусть найдены векторы e1, e2, ..., ek и они ортонормированны, т.е. (ei, ej) = 0, если ji, и (ei, ej) = 1 для любых 1 ≤ i, j k. Тогда составляющая

y вектора x, ортогональная всем векторам

e1, e2, ..., ek, т.е. (y, ei) = 0

(1 ≤ i k), должна удовлетворять соотношениям:

y = x 1e1 2e2

k ek ,

( , ) = ( , ) − 1( 1, ) − 2( 2, ) − − ( , ) =

38

2.2. Процесс ортогонализации ГрамаШмидта

= ( , ) − ( , ) = ( , ) − = 0,

откуда ßi = (x, ei), 1 ≤ i k.

1 i k,

После нормирования вектор ek+1 = y/|y| может быть добавлен к си-

стеме e1, e2, ..., ek.

Наконец, если матрица A является симметричной (или Эрмитовой), но не является положительно определённой, то для нахождения её собственных пар можно применить регуляризацию по А. Н. Тихонову (усилить положительное диагональное преобладание матрицы A). Собственные пары находят для матрицы C = A+ɑE. После того, как получены пары µ1, e1, µ2, e2, ..., µk, ek, собственные числа корректируются:

 

= −

 

 

2

=

2

1

1

,

 

 

 

 

 

 

 

 

 

 

Собственные векторы в коррекции положительно определённой при

, …,

 

k

=

k

.

 

 

 

 

 

 

 

 

не нуждаются. Матрица C будет

max 0;min .

Но если min ещё не известно, то можно подобрать пробным путём, следя за скоростью сходимости описанных итерационных процессов.

Заметим, что можно умудриться программно реализовать неустойчивый вариант процесса ортогонализации ГрамаШмидта

for i:=1 to k do

i (x, ei );

endfor

for i:=1 to k do

x x iei

endfor

 

 

 

x x

x

;

 

Устойчивым вариантом процесса

будет

 

 

 

for i:=1 to k do

 

 

 

(x, e

)

 

 

i

 

 

 

x x e

 

 

 

i

ортогонализации ГрамаШмидта

;

endfor

x xx ;

39

2. Частичная проблема собственных значений

В следующей таблице алгоритмы нахождения max, e max и min, e min превращены в алгоритмы последовательного нахождения пар 1,e1,

2,e2, ..., k,ek начиная с max, e max или min, e min

Таблица 5

Псевдокод последовательного нахождения пар

k 0

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while(continue?)

 

 

 

 

 

 

 

0 ;

 

 

y

u

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

for i:=1 to k do

 

 

 

 

 

(y, ei );

 

 

 

 

 

y y e

 

 

 

 

 

 

 

 

 

i

 

 

endfor

 

 

 

 

 

 

 

x y y ;

 

 

do{

;

 

 

 

 

 

y Ax ;

 

 

 

 

 

for i:=1 to k do

 

 

(y, ei );

 

 

y y e

 

 

 

 

 

i

 

 

 

 

 

endfor

 

 

 

 

 

(y, x);

 

 

 

 

 

x y

 

y

 

;

 

 

 

 

 

 

 

 

 

}while(

(

 

+ )

)

 

 

 

 

 

 

 

k k +1 ;

 

 

e

k

x

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

;

 

 

 

 

 

endwhile

 

 

 

 

 

 

 

 

B = maxE A ;

k 0 ;

 

 

 

while(continue?)

 

 

 

 

 

 

 

 

0

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y u

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

for i:=1 to k do

 

 

 

 

 

 

 

 

(y, ei );

 

 

 

 

 

 

 

y y e

i

 

 

 

 

 

 

 

 

 

 

 

 

 

endfor

 

 

 

 

 

 

 

 

 

x y

y

;

 

 

 

 

 

do{

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y Bx ;

 

 

 

 

 

 

 

z Ax

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(z, x)

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

for i:=1 to k do

(y, e

i

)

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y y e

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

endfor

 

 

 

 

 

 

 

 

x y

y ;

 

 

}while( ( + ))

k k +1

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

k

x

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

endwhile

40

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