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

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

.pdf
Скачиваний:
15
Добавлен:
01.05.2015
Размер:
181.58 Кб
Скачать

Мы получим семейство методов, которые наз. методами послед. релаксации. При ! = 1 ri = 0 , т.е. метод Зейделя получается из семейства методом послед. релаксации при ! = 1.

Параметр ! называют релаксационным параметром. Получим формулы метода послед. релаксации при ! = 1 Параметр ! называют релаксионным параметром. Получим формулы метода посл. релаксации

i 1

n

 

i 1

 

n

Xi

X

 

X

 

X

= aijxjk+1 +aiixik +

aijxjk fi !( aijxjk+1 +aiixik +

aijxjk fi)

=1

j=i+1

 

j=1

 

j=i+1

 

i 1

 

 

n

 

 

X

 

 

X

 

 

= aijxk+1 + aiixk+1 +

aijxk

 

 

 

j

i

j

 

 

i=1

 

 

j=i+1

 

 

i 1

 

n

 

 

 

X

aijxjk+1 !

X

 

 

 

xik+1 = (!fi !

aijxjk + (1 !)xikaii)=aii

 

i=1

 

j=i+1

 

 

B = D + !AL; = ! S = E !B 1 A =

E (D+!AL) 1(!AL+!D+!AV +D D) = (D + !AL) 1((! 1)D + !AV )

Согласно критерию, для сходимости метода при 8x(0) необходимо и достаточно, чтобы все j (S)j < 1, или

det[ (D + !AL) 1((! 1)D + !AV ) E] = 0

det[(D + !AL) 1] det[(1 !)D !AV (D + !AL)] = 0 det[(1 !)D !AV (D + !AL)] = 0; ( )

Критерий, чтобы все корни этого уравнения были по модулю меньше 1.

âуравнении ( ) сделаем замену переменной

+ 1

= 1

Уравнение примет вид:

 

 

 

 

 

det (1

!)D !AV

+ 1

(D + !AL) =

 

 

 

 

1

1

= det

[( 1)(1

!)D ( 1)!AV ( + 1)(D + !AL)] = 0

 

1

D D !D + !D !AV + !AV D !AL D !AL

1 det 1( !A + (! 2)D + !(AV AL)) = 0

det[ !A + (! 2)D + !(AV AL)] = 0 ( )

21

из ТФКП следует, что преобразование = +11 конформно отображает

внутренность единичного круга j j < 1 в левую полуплоскость < < 0: Т.о. доказана теорема: для сходимости м.п.р. при 8x(0) необходимо и

достаточно, чтобы вещественные части корней уравнения ( ) были отри-

цательны.

Теорема (достаточное условие сходимости м.п.р.)

Для симметрических положительно определенных матриц м.п.р. сходится, если ! 2 (0; 2):

Док-во. 8 корень уравнения.

матрица P = ! A + (! 2)D + !(AV AL) вырождена и система P x = 0 имеет нетривиальное решение x.

т.к., вообще говоря, комплексно, то x = u + iv P x = 0 x скалярно x = u iv

из симметр. и полож. опред. А следует, что (Ax; x) > 0

 

(P x;

x

) = 0

! (Ax;

x

) + (! 2)(Dx;

x

) + ! (AV AL)x;

x

= 0

 

 

 

 

 

 

 

 

 

 

 

 

(Dx; x) > 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Ax;

x

) =

 

A(u + iv); (u iv) = (Au; u) + (Av; v) + i(Au; v) i(Au; v) > 0;

аналогично (Dx;

x

) > 0

 

 

 

 

 

 

= Av (Av AL)x; x)

 

 

 

 

 

 

 

 

 

Av AL кососимметрична. AL

 

 

 

 

 

 

 

 

 

 

Покажем теперь, что вещ. часть

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

равна нулю.

 

 

(A A )u; u = u; (A

 

Av AL = (Av AL);

 

 

 

 

 

 

 

 

 

 

A )u; u

 

 

A ) u =

 

 

 

u; (A

 

A )u) = (A

 

 

 

 

 

 

< (Av

AL)x;

x

= (Av AL)u; u + (Au AL)v; v

 

 

v L

 

 

v L

 

 

 

 

 

 

 

 

 

 

v L

 

 

 

 

 

 

v L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(A v

A L)u; u

= 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 (A

 

 

 

A )u; u = 0

 

 

 

 

Аналогично, (Av AL)v; v = 0

 

 

 

 

 

 

v L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<() = 0

< !(Ax;

 

) + (! 2)(Dx;

 

) = 0

 

 

 

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= ! 2 (Ax;

 

 

 

) < 0 !

 

 

(0; 2)

 

 

 

 

 

 

 

 

 

 

 

 

<

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!

 

 

 

(Dx;

 

 

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

 

{z

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<n

 

 

 

 

 

 

 

 

 

 

 

 

> 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

i 1 i 1

 

 

 

 

(Av

 

 

AL)

- кососимметрична

 

 

 

(Av AL)x;

x

=

(Av AL)u; u

 

aij = aji

 

 

 

 

 

 

 

 

 

 

 

 

 

Xi

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Avu; u) (ALu; u) =

 

 

 

 

 

 

 

 

 

 

 

 

 

X X

aijuj)ui =

 

 

 

 

 

 

 

 

(

 

 

aijuj)ui (

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1 j=i+1

 

 

 

 

 

 

 

 

 

 

 

 

i=1 j=1

 

 

 

 

 

(a12u2u1 + a13u3u1 + :::a1nunu1)+

22

+(a23u3u2 + a24u4u2 + :::a2nunu2)+

...

(a21u1u2) (a31u1u3 + a32u2u3) + ::: = 0

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

Когда B = E; S = E A , формулы метода простых итераций:

x(k+1) = x(k) (Ax(k) f)

Поставим следующую задачу оптимизации: подобрать > 0 так, чтобы асимптотическая скорость сходимости R = ln kSk была наибольшей. Из формулы для R видно, что для решения этой задачи следует минимизировать kSk

Решим эту задачу в наиболее простом случае, когда

A = A > 0, собственные значения такой матрицы вещестенны и положи-

тельны.

Обозначим через и соответственно min и max собственные значения A, тогда 0 < i(A)

Используем спектральную kk, т.е. минимизируем kSk2 матрица S, также является симметрической и kSk2 = max1 i n j i(S)j

Очевидно i(S) = 1 i(A), поэтому наша задача состоит в минимизации по величины kSk2 = maxi j1 i(A)j

Для этого рассмотрим функцию f( ; ) = j1 j

äëÿ 8 > 0; 2 [ ; ]:

Покажем, что при фиксированном

 

 

 

 

max

f( ; ) = max f( ; ); f( ; ))

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Пусть 1

1

. Имеем 1 1

1

= 0

1 1 1 = 0

 

 

т.е. на [ ; ] линейная функция 1 меняет знак с + на -

график функции f( ; ) = j1 j в таком случае имеет вид

и утверждение (1) становится очевидным.

 

 

 

 

 

Аналогичным образом оно доказывается и для случаев

 

 

 

 

 

 

 

 

 

 

 

 

 

<

1

; >

1

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ßñíî, ÷òî

 

 

 

 

 

 

 

 

j

f( ; ) = max f( ; ); f( ; )

1 i n j

1

 

i

(A)

max

 

 

 

 

 

max

 

 

 

 

 

С другой стороны:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 i n j

1

i(A)j max j1 j; j1 j) = max

max

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f( ; ); f( ; )

Следовательно,

kSk2

 

 

1 i n j i(A)j = max f( ; ); f( ; )

 

 

 

=

 

 

 

 

 

 

 

 

 

 

max

 

 

 

 

 

 

 

 

 

23

Теперь, покажем, что решением этой задачи является 0 = +2 Убедимся â ýòîì:

 

 

1

 

 

= 1

 

 

 

 

 

 

2

 

 

 

 

 

=

 

> 0

 

 

 

 

 

 

+

+

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

= 1

 

 

 

 

 

 

2

 

 

 

 

 

=

 

< 0

 

 

 

 

 

 

+

+

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(

; ) =

j

1

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

0

 

 

j

 

 

 

 

 

 

 

 

 

 

f(

; ) = 1

 

 

 

 

j

=

 

 

=

 

 

 

 

 

 

 

0

 

 

 

 

 

j

 

0

 

 

 

 

 

 

 

+ +

Èòàê, max f( 0; ); f( 0; ) =

 

 

 

 

 

6= 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Íàì

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

осталось показать, что при всех

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max f(; ); f(; ) >

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

a) пусть 0 , тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

1

 

 

> 1

 

 

 

 

 

 

=

 

 

> 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

 

 

 

 

 

 

 

 

 

j

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

f(; ) =

 

1

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max f(; ); f(; )

 

 

 

 

 

f(; ) >

 

 

 

 

 

 

 

 

 

+

б) пусть 0 , тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

< 1

 

 

 

=

 

 

< 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

f(; ) =

j

1

 

 

 

j

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

max f(; ); f(; )

 

 

 

 

 

f(; ) >

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мы показали, что действительно значение

0 =

 

 

 

является таким, что

+

min kSk2 = max f( 0; ); f( 0; ) =

+

< 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последнее

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

неравенство гарантирует сходимость метода простой итерации с

оптимальным значением итерационного параметра.

 

 

 

 

 

 

 

R =

 

ln

k

S

k2

=

 

 

ln

( )

= ln

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

Преобразуем последнее выражение: т.к. A = A > 0, то

 

 

 

 

 

 

 

(A) =

k

A

k2k

A 1

k2

= max

(A)

max

(A 1) = max

(A)

 

max

1

=

 

 

 

 

2

 

 

 

 

 

i

i

 

 

i

i

 

 

i

i

 

 

i

i(A)

=

max i(A)

 

=

 

 

; тогдаR = ln

+

= ln

+ 1

 

= ln

2(A) + 1

 

min i(A)

 

 

1

2(A) 1

 

 

 

 

 

 

 

 

 

скорость сходимости итерационного метода тем выше, чем лучше обусловлена матрица системы, т.е. чем меньше 2(A):

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

Пусть A - вещественная матрица, все собственные значения которой вещественны и различны по модулю. Занумеруем их в порядке убывания модулей:

j 1(A)j > j 2(A)j > ::: > j n(A)j:

Из курса линейной алгебры известно, что матрица, все собственные значе-

ния которой различны, обладает полной системой собственных векторов: u(1); u(2); :::; u(k); ÷òî Au(i) = i(A)u(i); i = 1; 2:::; n

Выберем произвольный вектор x(0), и построим последовательность векторов x(k) òàê: x(k) = Ax(k 1); k = 1; 2; :::

Очевидно, x(k) = Akx(0): Представим вектор x(0) â âèäå:

n

 

 

 

 

 

 

Xi

 

 

 

 

 

 

x(0) =

 

ciu(i):

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

n

 

 

n

 

x(k) = Akx(0) = Ak

X

u(i)

=

X

 

 

Xi

k(A)u(i) =

c

 

c Aku(i) = c

 

 

i

 

 

 

 

 

i

 

 

i

i

 

 

i=1

 

 

 

 

i=1

 

 

=1

 

 

 

 

n

 

 

 

i(A)

k

 

 

 

 

Xi

 

 

 

 

 

 

 

 

 

 

 

= 1k(A) c1u(1) +

ci

 

1(A)

 

 

= 1k(A) (k)

 

 

 

=2

 

 

 

 

 

 

 

 

i(A|)

 

 

 

{z

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(k)

 

 

 

 

 

В силу неравенств j 1(A) j < 1; i = 1; 2:::; n

вектор (k) при k ! 1 стремится к вектору c1u(1)

Пусть c1 6= 0. Тогда вектор c1u(1), отличаясь от u(1) только константой c1, будет собственным вектором, отвечающим наибольшму по модулю соб-

ственному значению 1:

Вектор x(k) отличается от (k) лишь множителем k(A), тогда x(k) ! к собственному вектору при k ! 1:

25

В этом, собственно, и заключается идея метода. Но при реализации алгоритма имеется одна трудность. Если j 1(A)j > 1; òî ïðè k ! 1 k(A) ! 1 и вследствие этого при некотром k вектор x(k) может стать настолько боль-

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

Åñëè æå j 1(A)j < 1; òî ïðè k ! 1 k(A) ! 0 и при вычислении некоторых компонент x(k) может произойти изчезновение порядка, что может суще-

ственно ограничить точность вычисления собственного вектора. Во избежа- ние таких неприятностей вектор x(k) необходимо нормировать. Например,

сделать kx(k)k1 = 1; разделив все компоненты этого вектора на максимальную по модулю компоненту.

Обозначим через

k = max jx(ik)j

1 i n

Тогда x(k) = Ax(k 1) ; k = 1; 2; :::

k 1

Поделив каждый вектор x(k) íà k мы не нарушаем сходимости последовательности x(k) к собственному вектору, соответствующему наибольшему по

модулю собственному значению. Более того, т.к.

 

 

 

 

 

 

xi(k)

 

 

 

 

 

1maxi n j

 

 

j = 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

то вектор

j

x(k)

j

k!1

к собственному вектору

 

k

!

 

 

 

 

имеющему наибольшую по модулю компоненту, равную 1. Таким собственным вектором, очевидно, является собственным вектором

 

 

 

 

 

u(1)

 

 

 

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

; , ãäå =

1maxi n jui j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k)

 

u(1)

 

 

x(k 1)

 

 

 

 

u(1)

 

 

 

 

 

 

k!1

 

 

 

 

; , è

i

k!1

 

;

 

 

j

k

 

j !

 

 

 

 

 

k 1

!

 

 

íî A

x(k 1)

 

k!1 A

u(1)

 

=

k(A)u(1)

, íî ò.ê.

Ax(k 1)

= x(k)

 

k 1

!

 

 

 

 

 

 

 

 

 

 

k 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u(1)

 

 

 

 

 

 

 

 

тогда x(k)

 

k!1 1(A)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!

 

 

 

 

Из этого равентсва следует, что k - являясь наибольшей по модулю компо- нентой вектора x(k) стремится к наибольшей по модулю компоненте вектора

1

(A)u(1)

, которая равна 1(A), значит

k

k!1

1(A)

 

 

 

 

 

!

 

Этот метод позволяет найти как собственное значение, так и собственный вектор, отвечающий этому максимальному по модулю собственному значе- нию.

26

k 1

Метод обратных итераций.

В этом методе приближения x к собственному вектору строится следующим

образом:

x(k) A 1 x(k 1) ; k = 1; 2:::

k 1

Отсюда

Ax(k) = x(k 1)

Поскольку собственные значения обратной матрицы обратны собственным

значениям исходной матрицы, а собственные вектора совпадают с собственными векторами исходной атрицы, то последовательность x(k) построенная

по МОИ, будет сходиться к собственному вектору исходной матрицы A, отвечающему ее наименьшему по модулю собственному значению, при этом:

k

 

1

;

 

1

k!1

k(A):

! n(A)

) k

 

 

!

 

Следовательно, метод обратных итераций позволяет вычислить наименьшее по модулю собственное значение исходной матрицы и отвечающий ему собственный вектор.

27