ЛР Численные методы (Трухачев)
.pdfветствующими векторами системы {aiT }. Процесс ортогонализации проходит по формуле (1.8). Тогда матрица H2 частичной ортогона-
|
|
~T |
~T |
T |
T |
}) имеет вид: |
|
лизации (перехода к системе {a1 |
, a2 |
, a3 |
,..., an |
||||
|
|
1 |
0 |
0 |
... |
0 |
|
|
|
|
|
|
|
|
|
|
α21 |
1 |
0 |
... |
0 |
|
|
H 2 |
= 0 |
0 |
1 |
... |
0 |
||
|
|
|
|
|
|
|
|
|
... |
... |
... |
... |
... |
||
|
|
0 |
0 |
0 |
... |
1 |
|
|
|
|
Переход |
от |
системы |
~T |
~T |
T |
T |
} |
к |
системе |
||
{a1 |
, a2 |
, a3 |
,..., an |
||||||||
~T ~T ~T |
T |
T |
}, у которой три вектора ортогональны, осу- |
||||||||
{a1 , a2 , a3 |
, a4 |
,..., an |
|||||||||
ществляется через матрицу H3: |
|
|
|
|
|
|
|
||||
|
|
|
|
1 |
0 |
0 ... |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
0 ... |
0 |
|
|
|
|
|
|
|
H 3 |
= α31 |
α32 |
1 ... |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
... |
... ... |
... |
|
|
|
|
|
|
|
|
|
0 |
0 ... |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
В общем случае при переходе от системы с ортогональными (k-1) векторами к системе с ортогональными k векторами надо воспользоваться матрицей
|
1 |
0 ... |
... |
0 |
0 |
|
|
|
|
|
|
|
... |
... ... |
... |
... |
... |
Hk |
= αk1 |
αk 2 ... |
αk ,k −1 |
1 ... |
0 |
|
|
|
|
|
|
|
... |
... ... |
... |
... |
... |
|
|
0 ... |
... |
0 |
|
|
0 |
1 |
Переход от исходной системы вектор-строк матрицы A к ортогональной можно осуществить, умножая A слева на матрицы H1,
т е × × = ~
…, Hn, . . Hn Hn−1 ... H1 A A .
Если задана система Ax=b с невырожденной матрицей A, то, домножив её слева последовательно на матрицы H1, …, Hn, получим эквивалентную систему
11
|
|
|
|
~ |
|
|
|
(1.9) |
|
|
|
|
Ax = Hb , |
|
|
||
где H = Hn Hn−1 ×... × H1 , |
~ |
|
|
|
|
|||
A = HA . |
|
|
|
|
||||
Будем искать решение в виде |
|
|
|
|
||||
|
|
|
|
n |
~ |
|
|
|
|
|
|
|
|
, |
|
(1.10) |
|
|
|
|
|
x = ∑ c j a j |
|
|||
|
~ |
|
|
j =1 |
|
|
|
|
где |
векторы-столбцы. |
|
|
|
|
|||
a j – |
|
|
|
|
||||
Подставим |
это |
выражение |
|
в |
(1.9), |
получим |
||
~ |
n |
~ ~ |
= Hb . |
|
~ |
~ |
|
|
|
Произведение |
дает вектор-столбец, |
||||||
Ax |
= ∑c j A × a j |
A × a j |
j =1
все компоненты которого равны нулю, кроме j-го, который равен
~ |
~ |
Отсюда следует, что |
|
|
|
|
||
(a j |
, a j )¹ 0 . |
|
|
|
|
|||
|
|
|
c j = |
(H × b)j |
|
, |
|
|
|
|
|
|
|
||||
|
|
|
~ |
~ |
|
|
|
|
где (H × b)j |
|
|
(a j |
, a j ) |
|
|
||
– |
j-й компонент вектора Hb. Зная сj |
(j=1,…,n ), вектор |
||||||
решения определяется по формуле (1.10). |
|
|
||||||
|
|
|
Метод Якоби |
|
|
|||
|
СЛАУ стандартного вида Ax=b, где A = (a )n |
– nxn-матрица, а |
||||||
|
|
|
|
|
|
|
ij i, j =1 |
|
x = (x1 ,..., xn )T |
и b = (b1 ,..., bn )T – n-мерные векторы-столбцы, тем |
или иным способом может быть преобразована к эквивалентной системе вида
x=Bx+c, |
(1.11) |
где x – тот же вектор неизвестных, а B и c – |
некоторые новые мат- |
рица и вектор соответственно. На основе системы (1.11) можно определить итерационный процесс приближений x(k) к неподвижной точке x* (решению системы (1.11)):
x(k +1) = Bx(k ) + c , |
k=0, 1, 2, … |
(1.12) |
Итерационный процесс (1.12) начинается с некоторого вектора
x(0) = (x1(0) ,..., xn(0) )T и называется методом простых итераций
(МПИ).
12
Приведем несколько утверждений о сходимости и оценке погрешности решения, доказательства которых можно найти в литературе.
Теорема 1. Необходимым и достаточным условием сходимости МПИ при любом начальном векторе x(0) к решению x* системы (1.11) является требование, чтобы все собственные числа матрицы B были по модулю меньше единицы.
Теорема 2. Пусть B £ q < 1 , где B – норма матрицы B. Тогда
при любом начальном векторе x(0) МПИ (1.12) сходится к единственному решению x* системы (1.11), и при всех k Î N справедливы оценки погрешности:
1) |
|
x* - x(k ) |
|
|
|
£ |
|
q |
|
|
|
|
x(k ) - x( k −1) |
|
|
|
(апостериорная оценка); |
||||
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
- q |
||||||||||||||||
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
2) |
|
x* - x(k ) |
|
|
|
|
qk |
|
|
|
|
x(1) - x(0) |
|
|
|
|
|
(априорная оценка), |
|||
|
|
|
£ |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
- q |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где x – норма некоторого вектора x, согласованная с нормой матрицы B.
Определение 1. Нормой вектора x = (x1 ,..., xn )T называется неотрицательная функция координат вектора, обозначаемая x , и удовлетворяющая требованиям:
1) x > 0 для "x ¹ 0 и 0 = 0 ;
2)cx = c × x для c, x ;
3) x + y £ x + y .
Примеры норм векторов:
1) |
|
|
|
x |
|
|
|
|
1 |
= max |
|
xi |
|
|
; |
|||||||
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|||||||
2) |
|
|
|
x |
|
|
|
2 = ∑ |
|
xi |
|
|
; |
|
||||||||
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
i =1 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
||||||
3) |
|
|
|
x |
|
|
|
3 = ∑ xi2 . |
||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
i =1 |
|
|
|
|
13
Определение 2. Нормой квадратной матрицы A = (aij )n назы-
i, j =1
вается неотрицательная функция её элементов, обозначаемая A и удовлетворяющая требованиям:
1) A > 0 для "A ¹ 0 и 0 = 0 ;
2)cA = c × A для c, A ;
3) A + B £ A + B ;
4) A + B £ A × B .
Примеры норм матриц:
n
1) A1 = maxi ∑ aij ;
j =1
n
2) A 2 = maxj ∑ aij ;
i =1
3) A 3 = L , где L – наибольшее собственное
число матрицы ATA.
Норма вектора и норма матрицы согласованы между собой, если
A × x £ A × x для "A, x .
Одним из подходов к построению итерационного процесса (1.12) является следующий. Представим матрицу A исходной СЛАУ в виде A=L+D+R, где D – диагональная, а L и R – левая и правая строго треугольные матрицы соответственно. Тогда система может быть переписана в виде
Lx+Dx+Rx=b,
если на диагонали исходной матрицы нет нулей, то эквивалентной задачей вида (1.11) будет
x = -D−1 (L + R)x + D−1b ,
т.е. в равенстве (1.11) следуют положить B = -D−1 (L + R) и
c = D−1b .
Основанный на таком приведении исходной системы к виду (1.11) метод простых итераций называется методом Якоби. В век- торно-матричных обозначениях он определяется формулой
14
x(k +1) = -D−1(L + R)x(k ) + D−1b |
k=0, 1, 2, … |
Метод Зейделя
Под методом Зейделя понимается такое видоизменение МПИ, при котором для подсчета i-й компоненты (k+1)-го приближения к искомому вектору x* используются уже найденные на этом (k+1)-м шаге новые значения первых (i-1) компонент.
В векторно-матричной форме это можно записать как
L × x( k +1) + D × x(k +1) + R × x(k ) = b .
Отсюда
x(k +1) = -(L + D)−1 Rx(k ) + (L + D)−1 b ,
т.е. в данном случае B = -(L + D)−1 R и c = (L + D)−1 b .
ПОДГОТОВКА К РАБОТЕ
1.Изучить описание лабораторной работы.
2.Написать программу решения СЛАУ одним или несколькими методами, указанными в варианте.
Входные параметры программы:
размерность системы n;
матрица коэффициентов A размерности nxn;
вектор свободных членов b.
Дополнительный входной параметр итерационных методов:
величина ε для останова итерационного процесса. Выходные параметры программы:
вектор решения системы;
вектор невязки решения, определяемый по формуле
r = b − Ax ;
норма вектора невязки.
Дополнительные выходные параметры итерационных методов:
начальный вектор x(0);
число шагов итерационного процесса;
величину x(k ) - x( k −1) для последнего шага процесса.
15
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1.Отладить программы, реализующие указанные методы.
2.С помощью программ найти решение СЛАУ.
3.В случае если предложенный в варианте метод не позволяет найти решение, предложить и реализовать его модификацию для нахождения решения СЛАУ.
ОТЧЕТ О РАБОТЕ
Отчет о работе должен включать в себя:
1.Название и цель лабораторной работы.
2.Постановку задачи.
3.Исходные данные (размерность матрицы, СЛАУ, величину
ε).
4.Вид матрицы B и вектора c для итерационных методов.
5.Расчет нормы матрицы B и выводы о сходимости итерационного процесса.
6.Априорную оценку числа шагов итерационного процесса.
7.Выходные данные программ решения СЛАУ.
8.График зависимости нормы вектора разности приближения
крешению на текущем и предыдущих шагах итерационного процесса от номера шага (для итерационных методов).
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.На какие два класса можно разделить численные методы решения СЛАУ?
2.Опишите прямой и обратный ход метода Гаусса в матричной форме. Какие модификации метода существуют?
3.Сравните метод Гаусса и квадратного корня. Какие преимущества и недостатки есть у каждого из них?
4.Опишите процедуру ортогонализации Грама– Шмидта. В каких методах и как она используется?
5.Сравните прямые и итерационные методы решения СЛАУ. Какие преимущества и недостатки есть у каждого из подходов?
6.Дайте определение нормы вектора и матрицы, приведите примеры норм. Что такое согласованные нормы вектора и матрицы?
16
7.Запишите итерационный процесс метода простой итерации. Какие условия сходимости данного метода?
8.Приведите априорную и апостериорную оценку погрешности решения МПИ. Как можно оценить число шагов решения для достижения требуемой точности ε?
9.Запишите методы Якоби и Зейделя в матричной форме. Какой из них будет сходиться быстрее в случае диагонального преобладания в матрице A?
10.Что называется невязкой решения СЛАУ?
|
Пример варианта |
|
|
||
Размерность матрицы: |
n=6. |
|
|
|
|
Матрица А: |
|
|
|
|
|
3.45 |
0.97 |
0.99 |
1.00 |
-0.58 |
-0.71 |
-0.31 |
-3.76 |
0.07 |
0.63 |
0.70 |
-0.01 |
0.96 |
-0.24 |
-7.31 |
0.56 |
0.49 |
0.06 |
-0.29 |
0.50 |
-0.74 |
5.27 |
-0.19 |
0.02 |
-0.96 |
-0.11 |
0.73 |
0.81 |
-3.90 |
-0.55 |
0.63 |
-0.80 |
0.42 |
-0.79 |
-0.05 |
8.70 |
Величина |
|
ε=1·10-4. |
|
|
|
Методы |
|
Гаусса, Якоби. |
|
|
СПИСОК РЕКОМЕНДОВАННОЙ ЛИТЕРАТУРЫ
1.Вержбицкий В.М. Основы численных методов. М.: Высшая школа, 2002.
2.Тимохин С.Г. Алгоритмизация вычислений. М.: МИФИ,
1983.
17
Работа 2
СОБСТВЕННЫЕ ЗНАЧЕНИЯ И СОБСТВЕННЫЕ ВЕКТОРЫ МАТРИЦ
Ц е л ь : изучение методов нахождения всех собственных значений матрицы, а также построения характеристического многочлена и собственных векторов.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Нахождение собственных чисел и собственных векторов матриц является востребованной, но в то же время наиболее сложной задачей вычислительной линейной алгебры.
В данной работе рассматривается итерационный процесс вращений Якоби, который позволяет найти все собственные значения симметричной вещественной матрицы. А также методы Данилевского определения характеристического многочлена и получения собственных векторов.
Метод вращения Якоби решения полной проблемы собственных значений
Подобными называются матрица A и B=C-1AC, где C – произвольная невырожденная матрица.
Пусть {λ, x} – собственная пара матрицы B=C-1AC, тогда {λ, Cx}
– собственная пара матрицы A.
Основой метода является использование преобразований с помощью так называемой матрицы плоских вращений:
ij
::
|
1 |
... |
... |
0 |
|
||
|
... |
c ... |
− s |
... |
(2.1) |
||
|
|
|
|
|
|
|
|
Tij |
= |
|
: |
: |
|
|
|
|
... |
s ... |
c |
... |
|
||
|
|
0 |
... |
... |
1 |
|
|
|
|
|
|
18
Она получается из единичной матрицы заменой двух единиц и двух нулей на пересечениях i-х и j-х строк и столбцов числами с и
±s, как показано в (2.1), такими, что
c2+s2=1. (2.2)
Условие нормировки (2.2) позволяет интерпретировать числа с и s как косинус и синус некоторого угла α, и так как умножение любой матрицы на матрицу Tij изменяет у неё только две строки и два столбца по формулам поворота на угол α в плоскости, определяемой выбранной парой индексов i и j, то это полностью оправдывает название матрицы Tij.
Матрица Tij ортогональна (TijTTij=TijTijT=I) при любых i и j, а зна-
чит матрица |
|
B=Tij-1ATij |
(2.3) |
подобна A, т.е. имеет тот же набор собственных чисел, что и матрица A.
Классический итерационный метод вращений, предложенный Якоби, предполагает построение последовательности матриц
B0(=A), B1, B2, …, |
Bk, … |
с помощью преобразований типа (2.3) |
|
Bk=Tij-1Bk-1Tij |
(2.4) |
такой, что на k-м шаге обнуляется максимальный по модулю элемент матрицы Bk-1 предыдущего шага (а значит и симметричный ему элемент). Эта стратегия определяет способ фиксирования пары индексов i и j, задающих позиции (i,i), (j,j), (i,j), (j,i) «существенных» элементов в матрице вращения Tij, и угол поворота α, конкретизирующий значения этих элементов с=cos α, и ±s=±sin α. На каждом шаге таких преобразований пересчитываются только две строки (или два столбца) матрицы предыдущего шага. Хотя, к сожалению, нельзя рассчитывать, что таким путем за конечное число шагов можно точно найти диагональную матрицу Λ (Λ=diag(λi)), ибо полученные на некотором этапе преобразований нулевые элементы на следующем этапе станут, вообще говоря, ненулевыми, но нужное предельное поведение
|
|
|
|
B ¾¾¾® L |
|
|
|
|
|
|
|
k |
k →∞ |
|
|
будет иметь место. |
|
|
|
||||
Рассмотрим |
теперь данный метод подробнее. |
Пусть |
|||||
A = (a |
ml |
) n |
– |
исходная симметричная матрица, а B = (b |
) n |
– |
|
|
m,l =1 |
|
|
ml |
m,l =1 |
|
19
матрица, получающаяся после одного |
шага преобразований по |
|||
формуле (2.3). Обозначим через |
~ |
и |
~ |
двумерные подматрицы |
A |
B |
этих матриц, определяемые фиксированием позиции (i,j) некоторого элемента aij матрицы A:
~ |
aii |
aij |
~ |
bii |
bij |
, |
A = |
|
B |
= |
|
||
|
|
|
|
|
|
|
|
aij |
a jj |
|
b ji |
b jj |
|
~ |
– |
такую же подматрицу матрицы Tij: |
||
а через T |
||||
|
|
~ |
c |
− s |
|
|
T |
= |
. |
|
|
|
|
|
|
|
|
s |
c |
Очевидно, что равенство (2.3) записанное для матриц A, B, Tij,
|
|
|
|
|
|
|
|
|
~ |
~ |
и |
~ |
|
Пользуясь этим, подсчита- |
|||||||||
будет верным и для матриц A |
, B |
T . |
|
||||||||||||||||||||
ем элементы матрицы |
~ |
: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
B |
|
|
|
|
|
|
+ saij |
|
|
|
− saii |
|
|||||||||||
|
~ |
~T |
AT |
c |
|
s |
caii |
|
caij |
|
|||||||||||||
|
B = T |
|
= |
− s c |
|
|
+ sa |
|
|
ca |
|
− sa |
= |
|
|||||||||
|
|
|
|
|
|
ca |
jj |
jj |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
ij |
|
|
|
|
ij |
|
|||||
|
c2a |
+ 2csa |
+ s2a |
jj |
|
|
c2a |
− csa + csa |
jj |
− s2a |
|
||||||||||||
|
|
ii |
|
|
ij |
|
|
|
|
|
|
|
ij |
|
|
|
ii |
|
|
ij |
|||
= c2a |
− csa + csa |
jj |
− s2a |
|
c2a |
jj |
− 2csa + s2a |
. |
|||||||||||||||
|
ij |
|
|
ii |
|
|
|
|
|
|
ij |
|
|
|
|
|
|
ij |
|
ii |
|
||
Отсюда видим, что bij=bji=0, если (c2– s2)aij– cs(aii– ajj)=0, т.е. если |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
cs |
|
|
= |
|
aij |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
c2 − s2 |
a |
− a |
jj |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ii |
|
|
|
|
|
|
|
|
Учитывая тригонометрическую интерпретацию чисел с=cos α, и s=sin α, можно считать
cs = |
sin 2α |
, |
c2 − s2 = cos 2α . |
|
|||
2 |
|
|
~
Приходим к выводу, что матрица B будет иметь нулевые внедиагональные элементы bij=bji, если использовать предобразование по формуле плоского вращения (2.3) на угол α такой что
tg 2α = |
2aij |
|
|
. |
|
||
aii |
− a jj |
|
|||||
|
|
|
|||||
|
|
|
− |
π |
π |
|
|
Для определенности считают α |
|
|
; |
. |
|||
|
|
|
|
4 |
4 |
|
20