РТФ РАДИОТЕХНИЧЕСКИЙ ИНСТИТУТ

advertisement
РАДИОТЕХНИЧЕСКИЙ ИНСТИ
РТФ
«Вычислительная математика»
Презентационные
материалы к лекциям:
Селиванова
Ирина
Анатольевна,
ст.преподаватель
кафедры «Автоматики
и
информационных
технологий» УГТУ-УПИ
Лекция.
Вычисление собственных векторов и собственных значений
матрицы. Поиск максимального по модулю собственного числа и
соответствующего собственного вектора матрицы простой
структуры.
Введение
1. Основные положения
2. Степенной метод
2.1 Описание метода
2.2 РМ-алгоритм
2.3 N-алгоритм
3. Метод скалярных произведений
3.1 Описание метода
3.2 SP-алгоритм
Список литературы
Введение
Введение
Нахождение собственных пар матрицы – это наиболее сложная и
необходимая задача современной линейной алгебры. Проблему
нахождения собственных пар делят на полную проблему (нахождение
всех собственных значений и всех векторов) и частичную проблему
(нахождение максимального или минимального по модулю собственного
значения и соответствующего вектора). Знание таких характеристик
позволяет специалистам делать заключения о сходимости тех или иных
итерационных методов, оптимизировать параметры итерационных
методов, учитывать влияние на результаты решения алгебраических
задач погрешностей.
1.Основные положения
Основные положения
Пусть А - вещественная квадратная матрица размерности n.
y=y(t) – n x n-мерная векторная функция скалярного аргумента t, и пусть
ищутся нетривиальные решения системы дифференциальных уравнений
dy
 Ay
dt

в виде y  e t v

, где v  C n ,   C .


e t v  Ae t v ,
Система dy/dt=Ay будет иметь решения заданного вида в том и только
том
 случае, если найдутся такие пары чисел
v что


Av  v.
и
ненулевых векторов,
1.Основные положения
Имеется ряд других примеров из областей, лежащих за пределами
линейной алгебры, в которых также приходят к необходимости решать
подобные алгебраические задачи, называемые задачами на собственные
значения. Различают полную (алгебраическую или, иначе, матричную)
проблему собственных значений, которая предполагает нахождение всех

собственных пар  , v  матрицы A и частичные проблемы собственных
значений, состоящие как правило, в нахождении одного или нескольких
собственных чисел  и, возможно, соответствующих им собственных

векторов v . Чаще всего в последнем случае речь идет о нахождении
наибольшего и наименьшего по модулю собственных чисел; потому что
знание таких характеристик матрицы позволяет, например, делать
заключения о сходимости тех или иных итерационных методов,
оптимизировать параметры итерационных методов, учитывать влияние
на результаты решения алгебраических задач погрешностей исходных
данных и вычислительных погрешностей.
1.Основные положения
Трактуя A как матрицу линейного преобразования в пространстве Rn,
задачу на собственные значения можно сформулировать так: для каких

ненулевых векторов v и чисел линейное преобразование вектора с
помощью матрицы A не изменяет направления этого вектора в Rn, т.е.
сводится к «растяжению» этого вектора в раз.

( A  E )v  0
Теоретически эта задача легко решаема: нужно найти корни так
называемого характеристического или иначе «векового» уравнения
det( A  E )  0

(, A
 E )vизсоответствующих
0
и, подставляя их в
получать
переопределенных
систем собственные векторы.
Такой непосредственный подход к решению алгебраической проблемы
собственных значений обычно применяют лишь при очень малых
размерах матриц A (n=2;3); уже при n≥4 на первый план выходят
численные методы решения таких задач.
1.Основные положения
Современные методы решения полной проблемы ориентированы на
алгоритмическое построение из матрицы A такой матрицы, определенные
элементы которой являлись бы приближенными значениями собственных
чисел А, причем параллельно формировались бы и ее собственные
векторы.
Вещественной симметричной матрицей является матрица, все
элементы которой принадлежат множеству действительных чисел и
которая удовлетворяет условиям:
A  AT или aij  a ji
1.Основные положения


 – собственная пара матрицы A, α(α≠0) –

,
v
Свойство 1. Если

некоторое число, то  , v  также является собственной парой для A.

Свойство 2. Пусть   , v  – собственная
пара матрицы A-pE при

некотором р  R . Тогда      p, v  собственная пара матрицы A.

Свойство 3. Если  , v  – собственная пара обратимой матрицы A, то  1 , v 
 
- собственная пара матрицы A-1.
Свойство 4. Собственными числами диагональных и треугольных матриц
являются их диагональные элементы
1.Основные положения
Свойства симметричных матриц:
Определение 1. Отношением Релея для nxn – матрицы A называется
 
функционал
 ( Av , v )
 (v )   
(v , v ) ,

определенный на множестве ненулевых n-мерных векторов v .
*
*

(
v
) – ее
Свойство 5. Пусть v - собственный вектор матрицы A, тогда
собственное число.


 ( )  Av  v
Свойство 6. Минимум евклидовой нормы вектора
для
*
*
*
любого фиксированного ненулевого вектора v достигается при    (v . )
2.Степенной метод
2.1 Описание метода
Степенной метод
Описание метода
Рассмотрим простейший метод решения частичных проблем
собственных значений, который много значит для понимания и
построения других, более эффективных методов. Метод применяется в
том случае, когда матрица A симметричная, или имеет вещественные
собственные числа.
Вещественная nxn-матрица A является матрицей простой структуры,
т.е. имеет ровно n линейно независимых собственных векторов (базис):
 v n1 
 v11 
 v21 
 
 
 
 v   v 
 v 
v1   12 , v2   22 , ..., vn   n 2 .
...
...
...
 
 
 
v 
v 
v 
 1n 
 2n 
 nn 
Нумерация этих векторов отвечает упорядочению соответствующих им
собственных чисел по убыванию модулей:
1  2  ...  n .
2.Степенной метод
2.1 Описание метода
 ( 0)



y  c1v1  c2 v2  ...  cn vn .
 ( 0)
Выполним первую итерацию вектора y умножением данного равенства
слева на матрицу А:




y ( 0)  c1v1  c2 v2  ...  cn vn .





y (1)  Ay ( 0 )  c1 Av1  c2 Av2  ...  cn Avn .
Для k-й итерации по тому же принципу получаем:






y ( k )  Ay ( k 1)  A k y ( 0 )  c1k v1  c2 k v2  ...  cn k vn
1
2
n
или

y (k )
 y1( k ) 
 vn1 
 v11 
 v21 
 (k ) 
 
 
 
y 
v 
v 
v 
  2   c1k  12   c2 k  22   ...  cn k  n 2 .
...
...
...
 ... 
 
 
 
v 
v 
v 
 y (k ) 
 1n 
 2n 
 nn 
 n 
1
2
n
2.Степенной метод
2.1 Описание метода
 (k )
y
Беря отношения компонент вектора
к соответствующим компонентам
 ( k 1)
предыдущего вектора y , будем иметь:

yi( k )
c11k v1i  c2k2 v2 i  ...  cn kn vni

 ( k 1) 
( k 1)
( k 1)
( k 1)
yi
c11 v1i  c22 v2 i  ...  cn n vni
k
c v  
c
1  2  2 i  2   ...  n
c1 v1i  1 
c1
 1 
k 1


c v 
c
1  2  2 i  2   ...  n
c1 v1i  1 
c1
v  
 ni  n 
v1i  1 

vni  n 
 
v1i  1 
k
k 1
.
Предел дроби в последнем равенстве при сделанных допущениях равен
1 при k–> и значит
 ( k )  ( k 1)
yi / yi 

k
  1

 (k )
c
k 
y  c11 v1  2
c1

k
 2  
c
  v2  ...  n
c1
 1 
 n

 1
k
 
 vn  ,
 
2.Степенной метод
2.1 Описание метода
Можно сделать вывод, что при
тех же исходных допущениях, в силу
k
 i /  1 k
 0

 
,
(i 1)
 

в линейной комбинации векторов
с ростом
k начнет
v1 , v2 , ... , vn
 (k )
доминировать первое слагаемое. Это значит, что вектор y от итерации
к итерации будет давать все более хорошее приближение к собственному
вектору
по направлению.
v1
Анализируя выражение

 (k )
c
k 
y  c11 v1  2
c1

k
 2  
c
  v2  ...  n
c1
 1 
 n

 1
k
 
 vn  ,
 
видим, что при достаточно большом числе итераций k за счет множителя
k
. 1 в процессе счета может произойти либо превышение допустимых для
используемого компьютера чисел, если 1  1, либо пропадания значащих
цифр итерированных векторов, если 1  1 . Устранить это явление можно
достаточно легко, введя в итерационный процесс нормировку
итерированных векторов на каждой итерации или через некоторое
фиксированное число итерационных шагов.
2.Степенной метод
2.2 РМ-алгоритм
РМ-алгоритм
1. Ввести nxn - матрицу A, задать n-мерный вектор
( 0)
(0)
( 0)
(0)
и вектор v : y / y
; положить k=1.
y
2. Вычислить вектор
3. Вычислить
y
(k )
иv
y
(k )
(k )
 Av
: y
(k )
( k 1)
/y
(k )
y
(0)
, вычислить
.
.
(k )
(k )
( k 1)
4. Вычислить отношения i  y i / v i
при i=1,2,…,n таких, что
где δ>0 - некоторое задаваемое малое число (допуск).
vi(k 1)  
,
5. Подвергнуть числа  (k ) тесту на сходимость. Если обнаруживаются
i
совпадения требуемого числа знаков в (i k ) и (i k 1) , то работу алгоритма
прекратить и за старшее собственное число 1 принять усредненное
значение (ki ) , а за нормированный старший собственный вектор v 1 –
вектор v (k ) .В противном случае - вернуться к шагу 2.
2.Степенной метод
2.2 РМ-алгоритм
Слабым местом данного алгоритма является последний шаг, т.е. решение
проблемы своевременного останова работы алгоритма. Этот шаг описан
из рациональных соображений и не может гарантировать во всех случаях
(даже при сделанных допущениях) получение собственной пары с
наперед заданной точностью, поскольку при разработке метода не было
получено никаких оценок погрешности.
Другой алгоритм (N-алгоритм) основан на проверке условия


x ( k)  x ( k1)  ε
2.Степенной метод
2.3 N-алгоритм
N-алгоритм
1.
2.
3.
4.
 ( 0)
 (0)
x
 1 ; k=0, ε – точность вычисления
x
Выбираем
, такой что

компонент собственного вектора
k = k+1
 (k)
 (k1)
Вычисляем y  Ax
Ищем координату y*(k) :
y*(k)  max
5.
6.
Образуем вектор

x ( k) 
i 1,n
yi(k)

y ( k)
y*( k)  sign y*( k)
 (k)  (k1)
(k)
x
Если
  ε , то собственным значением является λ  y*;
  (k)  x
v1  x . В противном случае перейти к п. 2.
2.Степенной метод
2.3 N-алгоритм
Пример: Рассмотрим пример нахождения старшей собственной пары с
помощью N-алгоритма
Найти максимальное по модулю собственное значение матрицы
 1 4 
A

 0 5 
и соответствующий ему собственный вектор степенным методом с
точностью   10 5 .
2.Степенной метод
2.3 N-алгоритм
1 

x ( 0 )   , x (0)  1
1
Первая итерация:
 1  4 1   3 

    , y(1)  max yi(1)  5
k  1, y (1)  
 0  5 1   5 
  3 1
 0.6 
 0.6  1

x (1)   
  . Так как       0.4   , то переходим к п.2
  5  5  (1)  1 
 1  1
Вторая итерация:
 1  4  0.6    3.4 

   
,
k  2, y (2)  
0

5
1

5

  

  3.4  1
 0.68 


. Так как
x ( 2 )  
 

5
1
5

(

1
)




y(2)  max yi(2)  5
 0.68   0.6 

     0.08   , то переходим к п.2
1

  1 
Требуемая точность   10 5 будет достигнута на восьмой итерации.
2.Степенной метод
2.3 N-алгоритм
Относительно характера сходимости степенного метода можно
утверждать, что в указанных условиях итерационный процесс является
линейным, т.е. сходится со скоростью геометрической прогрессии,
знаменатель которой определяется в основном величиной отношения
2
1
Это означает, что сходимость будет тем лучше, чем сильнее доминирует
в спектре матрицы собственное число 1 . Воспользовавшись свойством
2 можно существенно ускорить нахождение наибольшего по модулю
собственного числа матрицы путем удачного смещения ее спектра.
3.Метод скалярных произведений
3.1 Описание метода
Метод скалярных произведений
Описание метода
Пусть матрица А – симметричная матрица. Обсудим шаг 4
предложенного выше РМ-алгоритма.
Вычисление на каждом итерационном шаге отношений всех пар
соответствующих компонент векторов х и у=Ах, да еще и с
определенными проверками, при больших значениях n требует большихi
вычислительных затрат, хотя и дает о старшем собственном числе .
дополнительную информацию: значение
заключено между
i
наименьшим и наибольшим из этих отношений, т.е. имеются
двусторонние оценки i на каждой итерации.
Чтобы упростить соответствующую шагу 4 РМ-алгоритма процедуру,
проведем следующие рассуждения.
3.Метод скалярных произведений
3.1 Описание метода

 (k )
(k )
 
(k )
 ( k 1)

Рассмотрим скалярные произведения y , y
и y ,y
. Выполняя
умножение правых частей по правилам умножения многочленов и
учитывая ортонормированность собственных векторов, т.е. условие
(xi,xi)=δij при i,j=0,1,…,n имеем:
 y
(k )

, y ( k )   c 212 k  c 2 2 2 k  ...  c 2 n 2 k ,
1
2
n
 y ( k ) , y ( k 1)   c 212 k 1  c 2 2 2 k 1  ...  c 2 n 2 k 1
1
2
n
3.Метод скалярных произведений
3.1 Описание метода
Отношение этих чисел
2
y
y
(k )
(k )
,y
,y
(k )


( k 1)
2k
2
2k
c   
c   
1   2    2   ...   n    n 
c1   1 
c1   1 


 1 
2
2 k 1
2 k 1
 c 2   2 
 c n   n 




1        ...      
 c1   1 
 c1   1 
в оговоренных выше условиях при k–> имеет пределом наибольшее
собственное число i , причем скорость сходимости к пределу будет
больше, чем в степенном методе.
   2k  
   k 
 O 2  против O 2  
  1  
  1  


 
 
Базирующаяся на таком подходе модификация степенного метода
называется методом скалярных произведений. Реализовать её можно в
виде следующего SP-алгоритма.
3.Метод скалярных произведений
3.2 SР-алгоритм
SР-алгоритм
1. Ввести
nxn -  матрицу
задать n-мерный вектор
 ( 0)
 ( 0) A,
( 0)
( 0)
y и вектор x  y / y ; положить k=1.
 ( 0)
y
, вычислить
 (0)
 ( 0)  ( 0)
(0)
y

s


s

y
,
y
2. Вычислить
2

 ( k 1)


(k )
x ( 0)  y ( 0) / y ( 0) 2 y  Ax
( 0)
 (k )
3. Вычислить y

 Ax ( k 1.)
4. Вычислить отношения

y (k )
2
 s
s
(k )
(k )
 (k )  (k )
 y , y 
 (k )  (k )  (k )
x y / y
2
t
(k )
 ( k )  ( k 1)
 y , x 


y ( k ) и x ( k 1)
при i=1,2,…,n таких, что xi(k 1)   , где δ>0 - некоторое задаваемое малое
число (допуск).
(k )
( k 1)
5. Если   
, положить k:=k+1 и вернутся к шагу 3, иначе

завершить работу алгоритма, считая   ( k ) , x  x ( k )
1
1
3.Метод скалярных произведений
3.2 SР-алгоритм
Пример:
 2  1

A  
 1 2
Показать процесс построения приближений к старшему собственному
числу 1 (и соответствующему ему собственному вектору) методом
скалярных произведений .
,,
( 0)
1 
Приняв за начальный вектор y   
, далее идем по степенному
0

алгоритму. Получаем
s
( 0)
 ( 0)  ( 0)
 y , y   1

y (0)
x
(0)
2
 s (0)  1


 y (0) / y ( 0)
2
1
  
 0
3.Метод скалярных произведений
3.2 SР-алгоритм
1  я итерация:
 2  1 1   2 


 
 
     , s ( 0 )   y ( 0 ) , y ( 0 )   5, t (1)   y (1) , x ( 0 )   2,
y (1)  Ax ( 0 )  
 1 2  0  1 
 (1)
y
1  2   0.894  (1) s (1)
 (1)

(1)
(1)
   
,   (1)  5 / 2  2.5
y 2  s  5 , x   (1) 
t
y 2
5   1   0.447 
2  я итерация:
1 5 


 
 
  , s ( 2 )   y ( 2 ) , y ( 2 )   41 / 5, t ( 2 )   y ( 2 ) , x (1)   14 / 5,
y ( 2 )  Ax (1) 
5   4

y ( 2)
1  5   0.781  ( 2 ) s ( 2 )
 ( 2)
 ( 2)
( 2)
   
,   ( 2 )  41 / 14  2.929
y 2  s  41 / 5 , x   ( 2 ) 

4

0
.
625
t
41
y
  

2
3  я итерация:
1 14 


 
 

 , s ( 3)   y ( 3) , y ( 3)   365 / 41, t ( 3)   y ( 3) , x ( 2 )   122 / 41,
y ( 3)  Ax ( 2 ) 
41   13 
 ( 3)
y
1  14   0.733  ( 3) s ( 3)
 ( 3)

( 3)
( 3)

  
,   ( 3)  365 / 122  2.992
y 2  s  365 / 41, x   ( 3) 

13

0
.
680
t
y 2
365 
 

3.Метод скалярных произведений
3.2 SР-алгоритм
( 2)
(1)
( 3)
( 2)
По значениям величин     0.429,     0.063 можно
судить
о
сближении последовательных приближений
числа
(1) , ( 2)собственного
, (3)
с каждой
считать
1 итерацией. Последнюю из этих величин можно
( 3)
нестрогой оценкой абсолютной погрешности равенства 1   :
1  (3)  0.008
  ( 3)
v
Для собственного вектора x1 приближенное равенство 1  x
можно
оценить величиной
 0.048
 ( 3)  ( 2 )
x x 
 0.0073
 0.055 2
Список литературы
Список литературы
1. Вержбицкий В.М. Основы численных методов: Учебник для вузов. – М.:
Высш. шк., 2002. – 840с.
2. Волков Е.А. Численные методы: Учебное пособие. – 3-е изд., испр. –
СПб: Лань, 2004. – 256с.
3. Турчак Л.И. Основы численных методов: Учебное пособие. – М.: Наука.
Гл. ред. физ.-мат. лит., 1987. – 320с.
Download