Собственные значения.
1. ВВЕДЕНИЕ
Целый ряд инженерных задач сводится к
рассмотрению систем уравнений, имеющих единственное решение лишь в том случае,
если известно значение некоторого входящего в них параметра. Этот особый
параметр называется характеристическим, или собственным, значением системы. С
задачами на собственные значения инженер сталкивается в различных ситуациях.
Так, для тензоров напряжений собственные значения определяют главные нормальные
напряжения, а собственными векторами задаются направления, связанные с этими
значениями. При динамическом анализе механических систем собственные значения
соответствуют собственным частотам колебаний, а собственные векторы характеризуют
моды этих колебаний. При расчете конструкций собственные значения позволяют
определять критические нагрузки, превышение которых приводит к потере
устойчивости.
Выбор наиболее эффективного метода
определения собственных значений или собственных векторов для данной инженерной
задачи зависит от ряда факторов, таких, как тип уравнений, число искомых
собственных значений и их характер. Алгоритмы решения задач на собственные
значения делятся на две группы. Итерационные методы очень удобны и хорошо приспособлены
для определения наименьшего и наибольшего собственных значений. Методы
преобразований подобия несколько сложней,
зато позволяют определить все собственные значения и собственные
векторы.
В данной работе будут рассмотрены наиболее распространенные
методы решения задач на собственные значения. Однако сначала приведем некоторые
основные сведения из теории матричного и векторного исчислений, на которых
базируются методы определения собственных значений.
2. НЕКОТОРЫЕ ОСНОВНЫЕ СВЕДЕНИЯ,
НЕОБХОДИМЫЕ ПРИ РЕШЕНИИ ЗАДАЧ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ
В общем виде задача на собственные
значения формулируется следующим образом:
AX = lX,
где A — матрица размерности n х n. Требуется
найти n скалярных значений l и собственные векторы X, соответствующие
каждому из собственных значений.
Основные определения матричного исчисления
1. Матрица A называется симметричной, если
аij = аij, где i, j = 1, 2, . . ., n.
Отсюда следует симметрия относительно
диагонали
аkk, где k == 1, 2, . . ., n.
Матрица
1
4
5
4
3
7
5
7
2
является примером симметричной.
2. Матрица A называется трехдиагональной, если все ее
элементы, кроме элементов главной и примыкающих к ней диагоналей, равны нулю. В
общем случае трехдиагональная матрица имеет вид
*
*
0
*
*
*
*
*
*
.
.
.
.
.
.
*
*
*
0
*
*
*
*
*
Важность трехдиагональной формы
обусловлена тем, что некоторые методы преобразований подобия позволяют привести
произвольную матрицу к этому частному виду.
3. Матрица A называется ортогональной,
если
АТА = Е,
где Ат—транспонированная матрица A, а Е—единичная матрица. Очевидно,
матрица, обратная ортогональной, эквивалентна транспонированной.
4. Матрицы А и В называются подобными,
если существует такая несингулярная матрица Р, что справедливо соотношение
В = Р-1АР.
Основные свойства собственных значений.
1. Все п собственных значений симметричной
матрицы размерности пХп, состоящей из действительных чисел, действительные. Это
полезно помнить, так как матрицы, встречающиеся в инженерных расчетах, часто
бывают симметричными.
2. Если собственные значения матрицы
различны, то ее собственные векторы ортогональны. Совокупность п линейно
независимых собственных векторов образует базис рассматриваемого пространства.
Следовательно, для совокупности линейно независимых собственных векторов
Xi, где i == 1,. . ., n,
любой произвольный вектор в том же
пространстве можно выразить через собственные векторы. Таким образом,
n
Y = S aiXi.
i=1
3. Если две матрицы подобны, то их
собственные значения совпадают. Из подобия матриц A и В следует, что
В = Р-1АР.
Так как
АХ = lХ,
то
Р-1АХ = lР-1Х.
Если принять Х == РY, то
Р-1АРY = lY,
а
ВY == lY.
Таким образом, матрицы A и В не только
имеют одинаковые собственные значения, но и их собственные векторы связаны
соотношением
Х = Р Y.
4. Умножив собственный вектор матрицы на
скаляр, получим собственный вектор той же матрицы. Обычно все собственные
векторы нормируют, разделив каждый элемент собственного вектора либо на его
наибольший элемент, либо на сумму квадратов всех других элементов.
3. ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ.
Пожалуй, наиболее очевидным способом
решения задачи на собственные значения является их определение из системы
уравнений
(A - lE) Х == 0,
которая имеет ненулевое решение лишь в
случае, если det(A
- lE)=0. Раскрыв определитель, получим
многочлен п-й
степени относительно l, корни которого и будут собственными
значениями матрицы. Для определения корней можно воспользоваться любым из
методов, описанных в гл. 2. К сожалению, в задачах на собственные значения
часто встречаются кратные корни. Так как итерационные методы, в этих случаях не
гарантируют получение решения, то для определения собственных значений следует
пользоваться другими итерационными методами.
Определение наибольшего собственного
значения методом итераций
На рис. 1 показана блок-схема простейшего
итерационного метода отыскания наибольшего собственного значения системы
AХ = lХ.
Процедура начинается с пробного
нормированного вектора X(0). Этот вектор умножается слева на матрицу A, и
результат приравнивается произведению постоянной (собственное значение) и
нормированному вектору X(0).. Если вектор X(0) совпадает с вектором X(0), то
счет прекращается. В противном случае новый нормированный вектор используется в
качестве исходного и вся процедура повторяется. Если процесс сходится, то
постоянный множитель соответствует истинному наибольшему собственному значению,
а нормированный вектор — соответствующему собственному вектору. Быстрота
сходимости этого итерационного процесса зависит от того насколько удачно выбран
начальный вектор. Если он близок к истинному собственному вектору, то итерации
сходятся очень быстро. На быстроту сходимости влияет также и отношение величин
двух наибольших собственных значений. Если это отношение близко к единице,
то сходимость оказывается медленной.
Рис. 1. Блок-схема алгоритма иитерационного метода решения задач на
собственные значения.
Пример 1
Исследуем трехосное напряженное состояние
элемента тела, представленного на рисунке 2. Матрица напряжений для него имеет
вид
10
5
6
5
20
4
* 106 Н/м2
6
4
30
Рисунок 2.Трехосное напряженное состояние элемента
тела.
Если исходить из того, что разрушение
произойдет при максимальном напряжении, то необходимо знать величину
наибольшего главного напряжения, которое соответствует наибольшему собственному
значению матрицы напряжений. Для нахождения этого напряжения воспользуемся
методом итерации Ниже приведена программа для ЭВМ, с помощью которой
итерационная процедура осуществляется до тех пор, пока разность между
собственными значениями, вычисленными в последовательных итерациях, не станет
менее 0,01%. В программе использованы две подпрограммы — GMPRD из пакета программ для научных
исследований фирмы IВМ,
служащая для перемножения матриц и NORML, нормирующая собственные векторы по наибольшему элементу.
{**********************************************************************}
Программа определения собственных значений
Программа позволяет определить наибольшее главное напряжение (собственное значение) для данного
трехосного напряженного состояния. Применяется метод итераций. Счет
прекращается, когда изменение собственного значения становится менее 0,01
процента или число итераций превышает 50.
{**********************************************************************}
DIMENSION
S(3,3),X(3),R(3)
S(1,1) = 10.E06
S(1,2) = 5.ЕО6
S(2,1) = S(1,2)
S(1,3) = 6.E06
S(3,1) = S(1,3)
S(2,2) = 20.E06
S(2,3) = 4.E06
S(3,2) = S(2,3)
S(3,3) = З0.Е06
X(1) = 1.
Х(2) = 0.0
Х(3) = 0.0
XOLD = 0.0
I = 0
WRITE(6 100)
WRITE(6 101)
WRITE(6 102)
WRITE(6 100)
WRITE(6 104)
I,X(1),X(2),X(3)
DO 1 1=1,50
CALL GMPRD (S, X,
R, 3, 3, 1)
DO 2 J=1,3
2 X(J) = R(J)
CALL NORML(XLAM,X)
WRITE(6,103)
I,XLAM,X(1),X(2),X(3)
IF(ABS((XOLD-XLAM)/XLAM).LE.0.0001)
GO TO 3
XOLD = XLAM
3 WRITE(6,100)
100 FORMAT (1X 54C'-''))
FORMAT (2X ‘ITERATION’,
ЗХ ‘ITERATION’,
11X,‘EIGENVECTOR')
FORMAT (3X
'NUMBER", 6X ,'(N/M**2)’, 5X, ‘X(1)’,
6X,'X(2)',6X,’X(3)’)
103 FORMAT (1X,I5,7X,E12.5,3F10.5)
104 FORMAT (1X,I5,19X,3F10.5)
STOP
END
{**********************************************************************}
SUBROUTINE
NORML(XL,X)
DIMENSION X(3)
{**********************************************************************}
Подпрограмма norml.
Эта подпрограмма находит наибольший из
трех элементов собственного вектора и нормирует собственный вектор по этому
наибольшему элементу.
{**********************************************************************}
# FIND THE LARGEST
ELEMENT
XBIG = X(1)
IF(X(2).GT.XBIG)XBIG=X(2)
IF(X(3).GT.XBIG)XBIG=X(3)
# Нормирование по XBIG
X(l) = X(1)/XBIG
X(2) = X(2)/XBIG
X(3) = X(3)/XBIG
XL = XBIG
RETURN
END
{**********************************************************************}
Результат работы программы получаем в виде:
Номер
Итерации
Собственное
Значение
( N / M ** 2 )
Собственный вектор
X (1)
X (2)
X (3)
0.
1.00000
0.
0.
0.10000 Е 08
1,00000
0.50000
0.60000
0.26000Е 08
0.61923
0.66923
1.00000
0.36392Е 08
0.42697
0.56278
1.00000
0.34813Е 08
0.37583
0.49954
1.00000
0.34253Е 08
0.35781
0.46331
1.00000
0.34000Е 08
0.34984
0.44280
1.00000
0.33870Е 08
0.34580
0.43121
1.00000
0.33800Е 08
0.34362
0.42466
1.00000
0.33760Е 08
0,34240
0.42094
1.00000
0.33738Е 08
0.34171
0.41884
1.00000
0.33726Е 08
0.34132
0.41765
1.00000
0.33719Е 08
0,34110
0.41697
1.00000
0.33714Е 08
0.34093
0.41658
1.00000
0.33712Е 08
0.34091
0.41636
1.00000
Отметим, что для достижения требуемой точности
потребовалось 14 итераций.
Определение наименьшего собственного
значения методом итераций
В некоторых случаях целесообразно искать
наименьшее, а не наибольшее собственное значение. Это можно сделать,
предварительно умножив исходную систему на матрицу, обратную A:
А-1АX=lА-1X.
Если обе части этого соотношения умножим на
1/l, то получим
1/l Х = A-1X.
Ясно, что это уже иная задача на
собственное значение, для которой оно равно 1/l, а рассматриваемой матрицей является A-1. Максимум 1/l, достигается
при наименьшем l. Таким образом, описанная выше
итерационная процедура может быть использована для определения наименьшего
собственного значения новой системы.
Определение промежуточных собственных
значений методом итераций
Найдя наибольшее собственное значение,
можно определить следующее за ним по величине, заменив исходную матрицу
матрицей, содержащей лишь оставшиеся собственные значения. Используем для этого
метод, называемый методом исчерпывания. Для исходной симметричной матрицы A с
известным наибольшим собственным значением l1 и собственным вектором X1 можно воспользоваться принципом
ортогональности собственных векторов, т. е. записать
ХiT Хj =0 при ij и ХiT Хj =1 при i=j.
Если образовать новую матрицу A* в
соответствии с формулой
A* =A-l1Х1 Х1T,
то ее собственные значения и собственные
векторы будут связаны соотношением
А*Xi =liXi.
Из приведенного выше выражения для матрицы
A* следует, что
A* Хi = AХi -lХ1 Х1TXi.
Здесь при i = 1 свойство ортогональности
позволяет привести правую часть к виду
A Х1 - l1 Х1.
Но по определению собственных значений
матрицы A это выражение должно равняться нулю. Следовательно, собственное
значение l1 матрицы A* равно нулю, а все другие ее собственные
значения совпадают с собственными значениями матрицы A. Таким образом, матрица
A* имеет собственные значения 0, l2, l3,. . ., ln и соответствующие собственные векторы Х1,
Х2, Хз,. . . .... Хn. В результате выполненных преобразований наибольшее
собственное значение l1 было изъято, и теперь, чтобы найти
следующее наибольшее собственное значение l2, можно применить к матрице A* обычный
итерационный метод. Определив l2 и Х2, повторим весь процесс, используя
новую матрицу A**, полученную с помощью A*, l2 и Х2. Хотя на первый взгляд кажется, что
этот процесс должен быстро привести к цели, он имеет существенные недостатки.
При выполнении каждого шага погрешности в определении собственных векторов
будут сказываться на точности определения следующего собственного вектора и
вызывать накопление ошибок. Поэтому описанный метод вряд ли применим для
нахождения более чем трех собственных значений, начиная с наибольшего или
наименьшего. Если требуется получить большее число собственных значений,
следует пользоваться методами преобразования подобия.
4. ОПРЕДЕЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ
МЕТОДАМИ ПРЕОБРАЗОВАНИЙ ПОДОБИЯ
Метод преобразований подобия применяется с
целью получить из исходной матрицы новую с теми же собственными значениями, но
более простого вида. Очевидно, самым лучшим упрощением было бы приведение
матрицы к чисто диагональному виду, так как в этом случае собственные значения
просто соответствовали бы элементам матрицы, стоящим на главной диагонали. К
сожалению, большая часть методов преобразования не позволяет этого сделать, и
приходится довольствоваться приведением матрицы к трехдиагональной форме.
Метод Якоби
Метод Якоби позволяет привести матрицу к
диагональному виду, последовательно, исключая все элементы, стоящие вне главной
диагонали. К сожалению, приведение к строго диагональному виду требует
бесконечно большого числа шагов, так как образование нового нулевого элемента
на месте одного из элементов матрицы часто ведет к появлению ненулевого
элемента там, где ранее был нуль. На практике метод Якоби рассматривают, как
итерационную процедуру, которая в принципе позволяет достаточно близко подойти
к диагональной форме, чтобы это преобразование можно было считать законченным.
В случае симметричной матрицы A действительных чисел преобразование выполняется
с помощью ортогональных матриц, полученных в результате вращении в
действительной плоскости. Вычисления осуществляются следующим образом. Из
исходной матрицы А образуют матрицу A1 == Р1АР1T. При этом ортогональная
матрица Р1 выбирается так, чтобы в матрице А1 появился нулевой элемент, стоящий
вне главной диагонали. Затем из А1 с помощью второй преобразующей матрицы Р2,
образуют новую матрицу A2. При этом Р2, выбирают так, чтобы в A2 появился еще один нулевой
внедиагональный элемент. Эту процедуру продолжают, стремясь, чтобы на каждом
шаге в нуль обращался наибольший внедиагональный элемент. Преобразующая матрица
для осуществления указанной операции на каждом шаге конструируется следующим
образом. Если элемент аkl матрицы Ат-1 имеет максимальную величину, то Рт соответствует
Pkk = Pll = cos q,
Pkl = - Plk = sin q,
Pii = 1 при i
k, l, Pij = 0 при i
j.
Матрица Ат будет отличаться от матрицы
Am-1 только строками и столбцами с номерами k и l. Чтобы элемент аkl(m) был равен нулю, значение q выбирается так, чтобы
2 akl(m-1)
tg 2 q =
------------------------- .
akk(m-1) – all(m-1)
k
l
1
1
1
1
1
Cos q
.
.
.
.
.
.
sin q
k
1
1
Pm =
1
1
1
1
- sin q
Cos q
l
1
1
1
1
Значения q заключены в интервале
p
p
- —