Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Метод Якоби

Практика №8

Метод Якоби состоит из цепочки ортогональных преобразований подобия матрицы. Каждое преобразование (ротация Якоби) -- это плоский поворот с целью обнуления одного из внедиагональных элементов матрицы. Последовательные преобразования не сохраняют уже установленные нулевые элементы, но вместе с тем внедиагональные элементы становятся меньше и меньше до тех пор, пока матрица не станет диагональной с точностью до машинного нуля. Накопление в процессе преобразований произведения трансформационных матриц дает матрицу собственных векторов, в то время как диагональные элементы являются собственными значениями.

Метод Якоби всегда является робустным для действительных симметричных матриц. Для матриц размера, скажем больше 10, этот алгоритм более медленный, чем метод QR (см. ниже). Однако алгоритм Якоби значительно проще других более эффективных методов, таким образом он рекомендуется в случаях, когда время выполнения не является критическим.

Базовая матрица ротации Якоби P имеет вид:

           
  Cos   Sin    
           
  -Sin   Cos    
           
           

 

Все диагональные элементы матрицы ротации Якоби равны 1, за исключением двух элементов в строках (и столбцах) p и q. Все внедиагональные элементы равны нулю, за исключением двух элементов, равных s и (-s). Числа c и s являются косинусом и синусом угла поворота f, так что c2+s2=1.

Ротация Якоби преобразует матрицу A согласно формуле:

A' = P pqT AP pq.

Идея метода Якоби -- в том, чтобы постараться обнулить внедиагональные элементы серией ротаций. Для того, чтобы обнулилось a'pq, угол ротации должен быть следующим:

q = cot(2f) = (c2 - s2)/(2cs) = (aqq- app)/(2apq).

Полагая t=s/c, для определения t прийдем к следующему уравнению:

t2 + 2tq - 1 = 0.

Меньший по модулю корень этого уравнения соответствует вращению на угол, меньший p/4; выбор этого угла на каждой из стадий дает наиболее устойчивый алгоритм. Используя формулу для решения квадратного уравнения с дискриминантом в знаменателе, меньший корень определяется как:

t = sign (q)/(|q|+ sqrt (q2+1)).

Если величина q такова, что q2 даст переполнение, полагаем t = 1/(2q). По значению t определяются c и s:

c = 1/ sqrt (t2+1), s = tc.

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

a'pp = app - tapq
a'rp = arp - s(arq + garp)
a'rq = arq + s(arp - garq),

где t (тангенс половины угла поворота) определяется, как t = s/(1+c).

Сходимость метода Якоби можно оценить, рассматривая сумму квадратов внедиагональных элементов S; уравнения преобразований дают для этой суммы после трансформации следующее соотношение:

S = Sr! =s(|ars|2); S' = S - 2|apq|2.

Поскольку преобразования ортогональные, сумма диагональных элементов при этом возрастает соответственно на |apq|2. Сумма же квадратов внедиагональных элементов монотонно убывает. Поскольку она ограничена снизу нулем и поскольку мы можем каждый раз выбирать какой хотим элемент apq для обнуления, сумма будет стремиться к нулю.

После цепочки преобразований получается матрица D, диагональная с точностью до машинного нуля. Ее диагональные элементы образуют собственные значения первоначальной матрицы A, поскольку выполняется

D = V T AV, где V = P 1 P 2 P 3...,

а P i -- матрицы ротации Якоби.

Столбцы матрицы V являются собственными векторами. Они вычисляются рекуррентно, на каждой стадии по формулам:

V' = VP i,

где первоначально V -- единичная матрица. Для преобразования элементов V используются формулы:

v'rs = vrs (s! =p, s! =q)
v'rp = cvrp - svrq
v'rq = svrp + cvrq

 

       
       
       
       
       

 

c 0, 802293 s -0, 59693

 

0, 802292928     -0, 59693
       
       
0, 59693053     0, 802293

 

 

27, 45174 9, 72015325 3, 60073984 3, 8061 8, 88178E-16
  3, 60073984     -0, 186205732
  3, 80610224     -1, 58542919
2, 548258 6, 1062E-16 -0, 1862057 -1, 58543 -0, 720153254

 

c 0, 925221 s -0, 37943

 

0, 925220941   0, 379428795  
       
-0, 379428795   0, 925220941  
       

 

14, 13271 11, 281018 3, 7109087 1, 3E-15 -0, 601557488
  3, 7109087   -0, 441 -0, 186205732
2, 346198 1, 027E-15 -0, 4410034 0, 43914 -1, 466872287
2, 548258 -0, 6015575 -0, 1862057 -1, 46687 -0, 720153254

 

c 0, 888753 s -0, 45839

 

0, 888752779 0, 458387    
-0, 458386844 0, 888753    
       
       

 

0, 559738 13, 1949718 -8, 882E-16 0, 14651 -0, 733671159
0, 218202 -4, 441E-16 4, 08604623 -0, 45395 -0, 110157597
0, 350761 0, 14650699 -0, 453946 1, 86121 -0, 351040502
0, 673637 -0, 7336712 -0, 1101576 -0, 35104 -2, 231095945

И так далее

на 14 шаге получим матрицу

 

 

         
2, 46E-14 13, 2321248 1, 5697E-07 -2, 9E-10 7, 35776E-10
2, 24E-10 1, 5697E-07 4, 17530059 1, 2E-13 -1, 49581E-05
6, 82E-10 -2, 875E-10 1, 2086E-13 1, 80147 2, 61241E-05
9, 06E-10 7, 3578E-10 -1, 496E-05 2, 6E-05 -2, 29776479
<== предыдущая лекция | следующая лекция ==>
Використання різних кодувань | MS Word




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.