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

Метод Якоби

.pdf
Скачиваний:
83
Добавлен:
24.07.2017
Размер:
476.35 Кб
Скачать

www.uchites.ru

1.2. Численные методы решения задач на собственные значения и собственные векторы матриц

1 . 2 . 1 . Основные определения и спектральные свойства матриц

Рассмотрим

матрицу

A

в n - мерном вещественном пространстве Rn

 

 

 

 

 

 

n×n

 

векторов

 

 

 

 

 

 

 

x = (x

x

2

Κ x

n

)T .

 

 

1

 

 

 

 

 

1. Собственным вектором x матрицы A называется ненулевой вектор (x ϑ) ,

удовлетворяющий равенству

 

Ax = λx ,

 

 

 

 

(1.21)

где λ - собственное значение матрицы A, соответствующее рассматриваемому собственному вектору.

2.Собственные значения матрицы A с действительными элементами могут быть вещественными различными, вещественными кратными, комплексными попарно сопряженными, комплексными кратными.

3.Классический способ нахождения собственных значений и собственных векторов известен и заключается в следующем:

для однородной СЛАУ, полученной из (1.21)

(A λE)x =ϑ, ϑ = (0 0 Κ 0)T

ненулевые решения ( x ϑ , а именно такие решения и находятся) имеют место при

det(A λE)= 0,

(1.22)

причем уравнение (1.22) называют характеристическим уравнением, а выражение в левой части - характеристическим многочленом;

каким-либо способом находят решения λ1 , λ2 ,Κ , λn алгебраического уравнения (1.22) n-й степени (предположим, что они вещественны и различны);

решая однородную СЛАУ (1.22) для различных собственных значений λj ,

j =1, n ,

 

(A λj E)x j =ϑ ,

j =1, n ,

1

www.uchites.ru

 

 

 

 

получаем линейно независимые собственные векторы

x j ,

j =

 

,

1, n

соответствующие собственным значениям λj , j =

 

.

 

 

 

 

1, n

 

 

 

 

4. Попарно различным собственным значениям соответствуют линейно независимые собственные векторы; k-кратному корню характеристического

уравнения (2.79), построенного для

произвольной матрицы An×n

,

соответствует не более k

(k) линейно независимых собственных векторов.

Если количество линейно

независимых

собственных векторов матрицы

An×n

совпадает с размерностью пространства R n , то их можно принять за новый базис,

в котором матрица

An×n примет диагональный вид

Λ =U 1 A U ,

(1.23)

на главной диагонали которой находятся собственные значения, а столбцы

матрицы

преобразования U

являются собственными векторами матрицы A

(матрицы

Λ и A,

удовлетворяющие равенству (1.23), называются подобными).

Cобственные значения подобных матриц Λ и A совпадают.

 

 

 

 

5. Симметрическая матрица A (A = AT )

имеет полный спектр λj

, j =

 

 

1, n

вещественных

собственных

значений;

положительно

определенная

симметрическая

матрица

(A = AT , (Ax, x)> 0) имеет полный

спектр

вещественных положительных собственных значений; k-кратному корню характеристического уравнения (2.79) симметрической матрицы соответствует ровно k линейно независимых собственных векторов; симметрическая матрица имеет ровно n ортогональных собственных векторов, приняв которые за новый базис (т.е. построив матрицу преобразования U, взяв в качестве ее столбцов координатные столбцы собственных векторов), можно преобразовать симметрическую матрицу A к диагональному виду с помощью преобразования

(1.23); для симметрической матрицы A матрица преобразования U в (1.23)

является ортогональной U 1 =U T

и, следовательно, преобразование (1.23) имеет

вид

 

Λ =U T A U .

(1.24)

2

www.uchites.ru

1 . 2 . 2 . Метод вращений Якоби численного решения задач на собственные значения и собственные векторы матриц

Метод вращений Якоби применим только для симметрических матриц Anxn

( A = AT ) и решает полную проблему собственных значений и собственных векторов таких матриц. Он основан на отыскании с помощью итерационных процедур матрицы U в преобразовании подобия Λ = U 1 AU , а поскольку для симметрических матриц A матрица преобразования подобия U является ортогональной (U 1 = U T ), то Λ = U T AU ,

где Λ - диагональная матрица с собственными значениями на главной диагонали

 

λ1 ...

0

 

 

 

Λ =

... Ο

... .

 

 

 

 

0 ...

λn

Пусть дана симметрическая матрица A. Требуется для нее вычислить с точностью ε все собственные значения и соответствующие им собственные векторы. Алгоритм метода вращения следующий:

Пусть известна матрица A(k ) на kй итерации, при этом для k=0 A(0) = A .

1. Выбирается максимальный по модулю недиагональный элемент aij(k )

матрицы A(k ) ( a(k ) = max a(k ) ) .

ij < lm l m

2. Ставится задача найти такую ортогональную матрицу U (k ) , чтобы в

результате преобразования

подобия

 

A(k +1) =U (k )T A(k )U (k ) произошло

обнуление элемента aij(k +1) матрицы

A(k +1) . В качестве ортогональной

матрицы выбирается матрица вращения, имеющая следующий вид:

 

 

i

 

j

 

 

 

1

 

Μ

 

Μ

 

 

 

 

Ο

Μ

 

Μ

0

 

 

 

 

 

 

 

1

Μ

 

Μ

 

 

 

 

 

 

 

 

 

cosϕ(k ) Λ Λ

sinϕ(k ) Λ Λ Λ

 

Λ Λ Λ Λ

 

i

 

 

Μ 1

 

Μ

 

 

 

 

 

 

 

 

,

U k =

 

Μ

Ο

Μ

 

 

 

 

Μ

1

Μ

 

 

 

 

 

 

 

 

 

 

 

 

cosϕ(k ) Λ Λ Λ

 

j

Λ Λ Λ Λ sinϕ(k ) Λ Λ

 

 

 

Μ

 

Μ 1

 

 

 

 

0

Μ

 

Μ

Ο

 

 

 

 

 

 

 

 

Μ

 

Μ

1

 

 

 

 

 

 

 

3

www.uchites.ru

 

 

 

 

В матрице вращения на пересечении i −й строки и

j −го столбца находится

элемент uij(k ) = −sin ϕ(k ) , где ϕ(k ) -

угол вращения, подлежащий определению.

Симметрично относительно главной диагонали ( j -я строка, i -й

столбец)

расположен элемент

u(jik ) = sin ϕ(k ) ;

Диагональные элементы uii(k ) и

u(jjk ) равны

соответственно uii(k )

= cosϕ(k ) , u kjj

= cosϕ(k ) ; другие

диагональные

элементы

umm(k ) =1, m =1, n, m i, m j ; остальные элементы в матрице вращения U (k ) равны нулю.

Угол вращения ϕ(k ) определяется из условия aij(k+1) = 0 :

ϕ

(k )

=

1

arctg

 

2aij(k )

,

 

 

2

 

aii(k ) a(jjk )

 

 

 

 

 

 

 

 

причем если aii(k )

= a(jjk ) , то ϕ(k ) =

π .

 

 

 

 

 

 

 

 

4

3. Строится матрица A(k +1)

A(k +1) =U (k )T A(k )U (k ) ,

в которой элемент aij(k +1) 0.

В качестве критерия окончания итерационного процесса используется условие малости суммы квадратов внедиагональных элементов:

 

t(A

 

 

)

 

∑(alm

 

 

2

1/ 2

 

 

 

(k +1)

=

+1)

)

.

 

 

 

 

 

 

 

(k

 

 

 

 

 

 

 

 

 

 

 

l,m;l<m

 

 

 

 

 

 

 

Если t(A(k +1) )> ε,

то итерационный процесс

 

 

 

A(k +1)

=U (k )T A(k )U (k )

=U (k )TU (k 1)T ...U (0)T A(0)U (0)U (1) ...U (k )

 

продолжается.

Если t(A(k +1) )< ε , то итерационный процесс останавливается, и в

качестве

 

 

 

 

искомых

собственных

значений

принимаются

λ

a(k +1) ,

λ

2

a(k+1) ,...,λ

n

a(k +1) .

 

 

1

11

 

 

 

 

22

 

 

nn

 

 

Координатными столбцами собственных векторов матрицы A в единичном базисе будут столбцы матрицы U =U (0)U (1) ...U (k ) , т.е.

(x1 )Т

= (u11 u21 ...un1 ),

(x2 )Т = (u12 u22

...un2 ),

(xn )Т = (u1n u2n ...unn ),

 

причем

эти

 

собственные векторы

будут

ортогональны между

собой, т.е.

(xl , x m )0, l m.

 

 

 

 

Пример 1.7. С

точностью ε = 0,3 вычислить собственные

значения и

собственные векторы матрицы

 

 

 

4

2

1

 

 

 

 

A = 2

5

3 A(0) .

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

1

6

 

 

 

 

Р е ш е н и е.

4

www.uchites.ru

1). Выбираем максимальный по модулю внедиагональный элемент матрицы

A(0) , т.е. находим aij(0) , такой что

aij(0)

 

= max

 

alm(0)

. Им является элемент a23(0) = 3 .

 

 

 

 

 

 

 

 

 

 

 

 

 

l<m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2). Находим соответствующую этому элементу матрицу вращения:

 

 

1

0

 

0

 

 

 

 

 

 

 

1

 

 

 

2 3

U

(0)

 

 

(0)

 

 

(0)

 

 

(0)

 

arctg

 

= 0

cosϕ

 

sinϕ

 

 

;ϕ

 

 

=

 

 

 

=

 

(0)

 

 

 

 

2

5 6

 

 

 

sinϕ

cosϕ

(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= −0,7033;

sin ϕ(0) = −0,65; cosϕ(0)

= 0,76;

 

 

 

 

 

 

 

 

 

 

 

1

 

0

0

 

 

 

U

(0)

 

 

0,76

 

; .

 

 

 

 

= 0

 

0,65

 

 

 

 

 

 

 

 

0,65

 

 

 

 

 

 

 

 

0

 

0,76

 

 

 

3). Вычисляем матрицу A(1) :

2,06

 

 

 

 

 

 

 

 

4

 

0,87

A

(1)

=U

(0)

T

(0)

 

 

2,46

 

 

 

 

 

A U

= 0,87

0,03 .

 

 

 

 

 

 

 

 

 

 

0,03

 

 

 

 

 

 

 

 

 

2,06

8,54

В полученной матрице с точностью до ошибок округления элемент a23(1) = 0 .

 

 

 

 

 

 

2

1/ 2

 

 

 

t(A(1) )= (alm(1) )

 

= (0,872 + 2,062 +(0,03)2 )1/ 2 > ε , следовательно

 

 

l,m; l<m

 

 

 

 

 

 

 

 

 

 

итерационный процесс необходимо продолжить.

Переходим к следующей итерации (k =1) :

a

(1)

= 2,06;

 

 

a

(1)

 

 

=

max

 

a

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

lm

 

.

13

 

 

 

13

 

 

 

l,m; l<m

 

 

 

 

 

 

 

 

 

 

 

 

 

U (1)

ϕ(1)

U (1)

 

cosϕ(1)

0

sinϕ(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

0

 

 

;

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin ϕ(1)

0

cosϕ(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

1

arctg

2 2,06

= −0,3693;

sinϕ(1) = −0,361; cosϕ(1) = 0,933;

 

 

2

 

 

 

 

 

4 8,54

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,933

0

0,361

 

 

 

 

 

 

 

 

 

3,19

0,819

0,005

 

 

0

 

1

0

 

;

A

(2)

=U

(1)

T

(1)

(1)

 

2,46

0,28

 

=

 

 

 

 

 

A

U

= 0,819

.

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0,28

9,38

 

 

0,361

0,933

 

 

 

 

 

 

 

 

 

0,005

 

 

 

 

 

 

 

2

1/ 2

 

 

 

t(A(2) )= (alm(2) )

 

= (0,8192 + 0,282 + 0,0052 )1/ 2 > ε .

 

 

l,m;l<m

 

 

 

 

 

 

 

 

 

 

 

Переходим к следующей итерации (k = 2)

a

(2)

= 0,819;

 

 

a

(2)

 

=

max

 

a

(2)

 

 

 

 

 

 

 

 

 

 

 

 

lm

 

 

12

 

 

 

12

 

 

l,m; l<m

 

 

 

 

 

 

 

 

 

 

 

 

 

5

www.uchites.ru

 

 

ϕ(2)

=

1

actg

2 0,819

= 0,5758; sinϕ(2)

= 0,5445; cosϕ(2)

= 0,8388.

 

 

 

 

 

 

 

 

2

3,19 2,46

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,8388

0,5445

0

 

 

 

 

 

 

 

 

 

 

 

 

3,706

 

0,0003

0,1565

 

 

 

U

(2)

 

 

 

 

0,8388

 

 

; A

(3)

=U

(2)T

A

(2)

U

(2)

=

 

 

 

1,929

0,232

 

 

 

 

 

= 0,5445

 

0

 

 

 

 

 

 

0,0003

;

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,232

9,38

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

0,1565

 

 

 

 

 

t(A(3) )= (0,00032 + 0,15652

+ 0,2322 )1/ 2

= 0,078391/ 2 < ε .

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом в качестве искомых собственных значений могут быть

приняты диагональные элементы матрицы A(3) :

 

 

 

 

 

 

 

 

 

 

 

 

 

λ1 3,706; λ2 1,929; λ3 9,38.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Собственные векторы определяются из произведения

 

 

 

 

 

 

 

 

 

 

 

 

 

0,78

0,5064

0,361

 

 

 

 

 

0,78

 

 

0,5064

 

 

 

0,361

 

(0)

(1)

(2)

=

 

0,7625

 

0,6

 

x

1

 

 

 

 

 

2

 

 

0,7625

 

x

3

=

 

0,6

 

U U U

 

0,2209

 

;

 

 

= 0,2209 ; x

 

=

;

 

 

.

 

 

 

 

 

 

 

0,398

 

0,7

 

 

 

 

 

 

 

 

 

 

 

 

0,398

 

 

 

 

 

0,7

 

 

 

 

 

 

 

0,58

 

 

 

 

 

 

 

0,58

 

 

 

 

 

 

 

 

 

 

 

Полученные собственные векторы ортогональны в пределах заданной

точности, т.е. (x1 , x 2 )= −0,00384;

(x1 , x3 )= 0,0081;

(x 2 , x3 )= −0,0039.

 

 

 

 

 

 

 

1 . 2 . 3 . Частичная проблема собственных значений и собственных векторов матрицы. Степенной метод

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

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

Пусть дана матрица A и пусть ее собственные значения упорядочены по абсолютным величинам:

λ1

 

>

 

λ2

 

...

 

λn

 

(1.25)

 

 

 

 

 

6

www.uchites.ru

Тогда, выбрав некоторый вектор y(0) , например, вектор, компоненты которого равны единице y(0) = (11 ... 1)T , можно для определения λ1 построить следующий итерационный процесс:

 

 

 

y(1)

 

 

y (1) = Ay (0) ,

λ(1) =

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

1

 

y(j0)

 

 

 

 

 

 

 

 

 

 

 

y

(2)

 

 

y (2) = Ay (1) ,

λ(2) =

 

 

j

;

 

 

 

 

 

 

 

1

 

 

y(1j )

 

 

 

 

 

 

 

 

………………………………………

 

 

 

 

 

 

y

( k )

 

y ( k ) = Ay ( k 1) , λ( k )

=

 

 

j

;

 

 

 

 

1

 

 

 

y(jk 1)

 

 

 

 

 

 

 

где y(jk 1) , y (jk ) -

соответствующие компоненты векторов

(1.26)

y( k 1) , y ( k ) . При этом в

качестве номера j может использоваться любое число из диапазона j =1, n .

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

y ( k ) = Ay ( k 1) = Ak y(0) , рассматриваемый итерационный процесс носит название

"степенной метод". При выполнении условий ( 1.25 ) итерационный процесс сходится к искомому собственному значению λ1 и соответствующему

собственному вектору, причем скорость сходимости определяется отношением

 

λ2

 

(чем оно меньше, тем выше скорость сходимости).

 

 

 

 

 

λ

 

 

 

 

 

 

 

 

 

 

1

 

 

 

В качестве критерия завершения вычислений используется следующее условие:

ε( k ) = λ1(k ) λ1(k 1) ε , где ε - задаваемая вычислителем точность расчета.

Пример 1.8.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

1

 

 

Вычислить спектральный радиус матрицы

 

 

2

с точностью ε = 0,1.

A =

1

4

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

В качестве начального приближения собственного вектора возьмем

y (0) = (111)T .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализуем итерационный процесс (2.90), полагая j =1 .

 

y (1) = Ay ( 0) = (8 6 6)T , λ(1) =

y1(1)

=

8

 

= 8 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

y1(0)

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y ( 2) = Ay (1)

= (58

38 40)T , λ(2) =

y1(2)

 

=

58

 

= 7,25 ;

 

 

 

 

 

 

 

 

 

 

 

1

 

 

y1(1)

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ε( 2) =

 

λ(2) λ(1)

 

 

= 0,75 >ε ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

www.uchites.ru

y (3) = Ay (2)

= (480

250

274)T ,

λ1(3) =

 

y1(3)

=

480

= 7,034 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1( 2)

 

58

 

 

 

 

 

ε(3) =

 

λ(3) λ(2)

 

= 0,216 >ε ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y (4) = Ay (3)

= (2838

1682

1888)T , λ(4) =

y1(4)

 

=

2838

= 6,9559 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

y1(3)

408

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ε( 4) =

 

λ(4) λ(3)

= 0,078 <ε .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

полученное

на

4-ой

итерации значение

λ(4)

=6,9559

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

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

значения λ1 . Искомое значение спектрального радиуса ρ( A) = max

 

λi

 

=

λ1

= 6,9559.

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотренный выше пример наглядно иллюстрирует существенный

недостаток алгоритма (1.26), связанный с сильным возрастанием компонентов

 

 

 

 

 

 

y

( k )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

итерируемого вектора y(k ) в ходе итерационного процесса. Видно, что

 

 

 

j

 

λ

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(jk 1)

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Во избежание неограниченного возрастания (при λ1 >1) или убывания (при

λ

<1) компонентов

y(k ) по мере увеличения числа итераций k обычно при

1

 

 

проведении компьютерных расчетов применяется степенной метод с нормировкой итерируемого вектора. С этой целью алгоритм (2.89) модифицируется следующим образом:

z( k ) = Ay ( k 1) ,

λ( k ) =

z

(jk )

, y( k ) =

 

z( k )

(1.27)

 

 

 

 

 

 

1

y(jk 1)

 

 

z( k )

 

 

 

 

 

 

 

 

При этом в качестве начального приближения y(0) берется вектор с единичной

нормой.

Широко распространена также версия степенного метода, использующая

скалярные произведения [2]:

 

 

 

z ( k ) = Ay ( k 1) , y (k ) =

 

z (k )

,

λ(k ) =( y( k ) , Ay( k ) )

(1.28)

 

 

 

 

 

z (k )

 

 

1

 

 

 

 

 

 

 

ЗАДАЧИ

 

 

 

Используя степенной метод, с точностью ε = 0,1

оценить спектральный

радиус симметрических матриц, заданных в разделе 1.2.2. Сравнить значение λ1 и

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

8

www.uchites.ru

1.2.4. QR-алгоритм нахождения собственных значений матриц

При решении полной проблемы собственных значений для несимметричных матриц эффективным является подход, основанный на приведении матриц к подобным, имеющим треугольный или квазитреугольный вид. Одним из наиболее распространенных методов этого класса является QR- алгоритм, позволяющий находить как вещественные, так и комплексные собственные значения.

Воснове QR-алгоритма лежит представление матрицы в виде A = QR , где Q

-ортогональная матрица ( Q1 = QT ), а R - верхняя треугольная. Такое разложение

существует для любой квадратной матрицы. Одним из возможных подходов к построению QR разложения является использование преобразования Хаусхолдера, позволяющего обратить в нуль группу поддиагональных элементов столбца матрицы.

Преобразование Хаусхолдера осуществляется с использованием матрицы Хаусхолдера, имеющей следующий вид:

H = E

2

vvT

,

(1.29)

vT v

 

 

 

 

где v - произвольный ненулевой вектор-столбец, E - единичная матрица, vvT - квадратная матрица того же размера.

Легко убедиться, что любая матрица такого вида является симметричной и ортогональной. При этом произвол в выборе вектора v дает возможность построить матрицу, отвечающую некоторым дополнительным требованиям.

Рассмотрим случай, когда необходимо обратить в нуль все элементы какого- либо вектора кроме первого, т.е. построить матрицу Хаусхолдера такую, что

~

= Hb , b = (b

,b

,...,b )T

~

~

,0,...,0)T .

b

, b

= (b

 

1

2

n

 

1

 

Тогда вектор v определится следующим образом:

 

 

v = b + sign(b1 )

 

 

 

b

 

 

 

2 e1 ,

(1.30)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bi2

1/ 2

 

где

b

2

=

 

- евклидова норма вектора, e1 = (1,0,...,0)T .

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

www.uchites.ru

Применяя описанную процедуру с целью обнуления поддиагональных элементов каждого из столбцов исходной матрицы, можно за фиксированное

число шагов получить ее QR – разложение.

 

 

 

 

Рассмотрим подробнее реализацию данного процесса.

 

Положим

 

A0

= A

и

построим

преобразование

Хаусхолдера H1 ( A1

= H1 A0 ),

переводящее матрицу A0 в матрицу A1

с нулевыми элементами первого столбца

под главной диагональю:

 

 

 

 

 

 

 

 

 

 

 

a110

a120

...

a10n

 

 

 

a1

a1 ...

a1

 

 

 

 

 

 

a0

...

a0

 

 

 

 

11

12

1n

 

 

A

=

a0

 

A =

 

0

a1 ...

a1

 

 

 

21

22

 

2n

 

 

 

22

2n

 

 

0

 

 

 

 

 

H1

1

 

 

...

 

 

 

... ... ... ...

 

 

 

... ... ...

 

 

 

 

 

0

0

 

0

 

 

 

 

 

1

1

 

 

 

 

an1

an2

 

ann

 

 

 

 

0 an2

ann

 

 

Ясно,

что матрица

Хаусхолдера

H1

должна определяться по

первому

столбцу матрицы A0 , т.е в качестве вектора b в выражении (1.30) берется вектор

(a0

, a0 ,..., a0 )T . Тогда компоненты вектора v вычисляются следующим образом:

11

21

n1

 

 

 

 

 

 

 

 

 

 

 

 

 

v11

= a110

 

 

 

 

 

 

n

1/ 2

 

 

 

 

+ sign(a110 ) (a0j1 )2

 

,

 

 

 

 

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

 

vi1 = ai01 , i =

 

.

 

 

 

 

 

 

 

 

2, n

 

 

 

 

 

 

 

 

Матрица Хаусхолдера H1

вычисляется согласно (1.29):

 

 

 

H1

= E 2

v1v1T

 

.

 

 

 

 

 

 

 

v1T v1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На следующем, втором, шаге рассматриваемого процесса строится

преобразование Хаусхолдера H2

( A2

= H2 A1 ) , обнуляющее расположенные ниже

главной

диагонали

элементы

второго столбца матрицы

A1 . Взяв

в качестве

вектора

b

вектор

(a122 , a321 ,..., a1n2 )T

размерности n 1,

получим

следующие

выражения для компонентов вектора v :

 

 

 

v2

= 0 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v22

= a122

 

 

 

 

 

 

n

1/ 2

 

 

 

 

+ sign(a122 )

(a1j 2 )2

,

 

 

 

 

 

 

 

 

 

 

 

j=2

 

 

 

 

 

vi2 = ai11 , i = 3, n .

10

Соседние файлы в предмете Конструирование летательных аппаратов