информатика1ё / wesna / MIRONOFF
.DOC
ЛЕКЦИЯ 4. Численные методы линейной алгебры(продолжение)
Итерационные методы решения СЛАУ
Один из методов решения СЛАУ
{ |
. (1) . |
состоит в следующем. Преобразуем систему (1) к виду
{ |
(2)
|
где буквы и означают новые значения коэффициентов.Это можно сделать многими способами,например,можно перенести все члены уравнений (1) в правую часть и затем прибавить к обеим частям i-того уравнения неизвестное . Далее, зададим начальное (нулевое) приближение корней
и построим последовательность приближений по правилу
{ |
(3)
|
Если существуют пределы
, j=1,2,... n, (4)
то они являются искомыми корнями. Действительно, переходя в (3) к пределу мы видим, что должны заменить величинами и числа в правой части, и в левой. Значит, пределы (4) удовлетворяют СЛАУ (2), а тогда - и эквивалентной системе (1).
Таким образом, мы получили следующий алгоритм:
1. Выбираем начальное (нулевое) приближение.
2. Вычисляем первое приближение, положив в формуле (3) i=0.
3. Вычисляем второе приближение, положив в формуле (3) i=1.
.
.
m. Вычисляем (m+1)-ое приближение, положив в (3) i=m. Если это приближение отличается от предидущего м-того менее чем на e, где e- заранее заданная допустимая погрешность, то мы останавливаемся и полагаем, j=1,2,... n.
Здесь многократно повторяются вычисления по формуле (3). Результат каждого вычисления (левая часть) на следующем шаге подставляется в правую часть в качестве аргумента. Такие вычислительные процессы называются итерационными, а каждый шаг процесса называется итерацией.
Сушествует много итерационных методов решения СЛАУ. Рассмотреный выше метод называется методом простых итераций.
Итерационные методы не являются прямыми, поскольку количество шагов нельзя определить заранее.
В связи с каждым итерационным методом возникают следующие вопросы:
а) при каких условиях метод сходится, т.е. когда мы можем быть уверены в существовании предела (4)?
б) насколько обоснованно правило остановки?
Последний вопрос означает следующее. Вообще говоря, возможжна ситуация, когда m-тое и (m+1) приближенияочень близки между собой, но их отклонение от значения предеоа (4) при этом велико, т.е. наше превило остановки может дать недопустимо большую погрешность. Как обезопасить себя от такой неприятности - вот в чем смыл второго вопроса.
Ответ на эти оба вопроса дает следующий результат весьма общего характера.
Принцип сжатых отображений.
Пусть R есть n-мерное векторное пространство, т.е. множество всех n-мерных векторов u=(u1, u2, ... un). Закон соответствия, связывающий каждый вектор u с некоторым новым вектором v называется отображением пространства на себя. Пишут v=Au, где А обозначение данного отображения. Напомним, что
Определение. Отображение А называется сжатым, если
(5)
для любых двух векторов u,v и некоторого не зависящего от них числа q, причем 0<q<1.
Для сжатых отображений легко выясняются все вопросы, касающиеся решения уравнения
xi=Ax (6)
итерационными методами.
Теорема. Если А есть сжатое отображение, то :
1) уравнение (6) имеет единственное решение х*,
2) это решение может быть найдено как предел последовательных приближений, построенных по правилу
хi+1=Axi (7)
где начальное приближение х0 может быть выбрано произвольно,
3) отклонение m-того приближения от точного решения удовлетворяет оценке
/(1-q) (8)
Первые два из этих утверждений часто называют принципом сжатых отображений.
Доказательство.
Обозначим . Тогда ,
и т.д. В итоге получим
(9)
Очевидно,
xj+i=x0+(x1-x0)+(x2-x1)+....+(xi+1-xi),
т.е. предел последовательности (7) существует, если сходится ряд
(10)
(сходимость ряда из векторов понимается покоординатно). Но согласно (9) для j -тых координат имеем
,
и последний ряд сходится, как сумма геометрической прогрессии знаменатель которой меньше единицы. И так, ряд (10) сходится. Значит, предел последовательности (7) существует и равен х0 +s. Но тогда этот предел дает решение уравнения (6). Таким образом, мы доказали, что уравнение (6) разрешимо, и что одно из его решений может быть получено итерационным методом (7). Нам осталось доказать единственность решения и оценку погрешности (8).
Единственность мы докажем от противного. Допустим, что уравнение (6) имеет два решения х и у. Тогода
.
Но отсюда
(1-q)<0,
и, поскольку (1-q)>0,
<0
но это возможно лишь если х=у. Единственность доказана.
Теперь докажем оценку (8). Имеем
Очевидно,
и
Теорема доказана.
Поскольку 1/(1-q)>1, то разность двух последовательных приближений действительно может оказаться меньше реальной погрешности. При вычислениях, требующих высокой точности, мы должны откорректировать правило остановки с учетом формулы (8): останавливаться следует при
Теперь мы должны выяснить, чему равна характеристика q для СЛАУ. Для этого нам сначала придется получить одно обобщение принципа сжатых отображений.
Нормы векторов.
В этом доказательстве мы не использовали геометрических свойств величины , т.е. длины вектора. Нам нужны лишь несколько алгебраических свойств этой величины, в первую очередь неравенство треугольника
а также тот факт, что величина неотрицательна и равна нулю лишь если вектор x нулевой.
Определение.
Пусть задано правило, связывающее с каждым вектором х неотрицательное число . Это число называется нормой вектора, если выполнены три условия:
1) тогда и только тогда, когда х=0,
2) для любых двух векторов выполнено неравенство
3) для любого вектора х и любого числа с выполнено равенство
В частности, нормой является длина. Но существуют и другие векторные нормы. Так, совсем нетрудно показать, что нормой является величина
(11)
Любая такая норма может быть использована в принципе сжатых отображений. Т.о. справедлива
Теорема.
Пусть для отображения А можно указать такую векторную норму что
для любых двух векторов u,w и некоторого фиксированного числа q, причем 0<q<1. Тогда уравнение (6) имеет единственное решение, которое является пределом последовательности (7) при любом начальном приближении, и прогрешность этого итерационного процесса удовлетворяет оценке (8).
Норма матрицы.
С каждой нормой n-мерных векторов можно связать следующую характеристику квадратных матриц размера n на n, также называемую нормой.
Определение. Пусть есть некоторая векторная норма, а М-квадратная матрица. Величина
max ,
где максимум берётся по всем векторам e со свойством ,называется нормой матрицы М (ассоциированной с исходной векторной нормой) и обозначается .
Любой вектор х может быть представлен в виде x=re, где r-его норма, а е-вектор еденичной нормы. Поэтому
,
т.е. для любого вектора соответствующей размерности имеем
Вычисление нормы матрицы , ассоциированной с длиной вектора, довольно громоздко. Гораздо легче вычисляется матричная норма, ассоциированная с векторной нормой (11).
Теорема.Величина равна наибольшей из сумм абсолютных величин элементов строк матрицы М.
Доказательство.Для простоты докажем это при n=2, в общем случае доказательство совершенно аналогично. Пусть
М=()
e=. Условие означает, что i=1,2. Но
Me={m11e1+m12e2, m21e1+m22e2}
иmax {, }<=
max {
Пусть, для конкретности, сумма абсолютных величин элементов первой строки больше, чем второй, т. е.
}=
Рассмотрим вектор v={v1, v2}, где v1=+1, если m11 положительно, и
v1=-1, если m11 отрицательно. Аналогично, v2=+1 или -1 в зависимости от знака m12 . Очевидно, и .
Теорема доказана.
Сходимость метода простых итераций.
Уравнение (2) можно записать в виде (6), где отображение А определяется как
Ах=Мх+В,
где M-квадратная матрица, составленная из коэффициентов при неизвестных в правых частях (2), а В-вектор, составленный из свободных членов. Для любых двух векторов u,v и для любой векторной нормы имеем
,
т. е. это отображение является сжатым, если
,
где - какая-либо норма матрицы М.
В частности, теперь мы можем сказать, что метод простых итераций сходится, если сумма абсолютных величин коэффициентов при неизвестных в правой части каждого из уровней (2) меньше еденицы. Наибольшая из этих сумм может использоваться в качестве величины q в оценке погрешности (8).
Метод Гаусса-Зейделя является усовершенствованием метода простых итераций, основанным на следующем замечании. При вычислении очередного приближения по формуле (3) мы можем использовать значения xji по мере их вычисления, а не дожидаться следующего (i+1)-го шага. Кроме того, метод Гаусса-Зейделя предполагают следующий стандартный путь преобразования системы (1) к виду (2): в i-ом уравнении мы должны перенести в правую часть все члены, кроме aiixi и поделить на aii. Получается система
{ |
x1=(-a12x2-a13x3-...-a1nxn+b1)/a11 x2=(-a21x1-a23x3-...-a2nxn+b2)/a22 (2) ............................................... xn=(-an1x1-an2x2-...-an,n-1xn-1+bn)/ann
|
C учётом связанного выше, формула (3) для вычисления последующих приближений приобретает вид
{ |
x1i+1=(-a12xi2-a13xi3-...-a1nxin+b1)/a11 x2i+1=(-a21x1i+1-a23xi3-...-a2nxni+b2)/a22 ..................................................... xni+1=(-an1x1i+1-an2x2i+1-...-an,n-1xn-1i+1+bn)/ann
|
Использование (i+1)-го приближения неизвестного xk при вычислении (i+2)-го приближения для хm при m>k может существенно ускорить сходимость процесса.
Следует, однако, помнить, что метод Гаусса-Зейделя сходится не всегда. Поскольку этот метод есть разновидность метода простых итераций, то для его сходимости достаточно, чтобы норма матрицы, составленная из коэффициентов при неизвестных в правой части (2) была <1. Эта матрица имеет вид
0, -a12/a11,-a13/a11,...,-a1n/a11
a21/a22, 0 -a23/a22,...,-a2n/a22
-a31/a33,-a32/a33, 0 ,...,-a3n/a33
...............................................
-an1/ann,-an2/ann,-an3/ann,..., 0
и мы получаем условие
или
k=1,2,...,n.
Иначе говоря, для сходимости метода Гаусса-Зейделя достаточно, чтоб
каждый диагональный элемент главной матрицы системы (1) по абсолютной величине превосходил сумму абсолютных величин остальных элементов своей строки. Это условие называется условием доминирования диагонали.
Метод Гаусса-Зейделя очень легко прогаммируетсяю Приведём вариант программы.
10 REM МЕТОД ЗЕЙДЕЛЯ
20 REM ВВОД ИСХОДНЫХ ДАННЫХ
30 DIM A(4,4),B(4),X(4_
40 N=4
51 DATA
52 DATA
53 DATA
54 DATA
60 FOR I=1 TO N
70 FOR J=1 TO N
80 READ A(I,J)
90 NEXT J
100 READ B(I)
110 NEXT I
120 REM КОНЕЦ ВВОДА ИСХОДНЫХ ДАННЫХ
130 FOR I=1 TO N
140 FOR J=1 TO N
150 A(I,J)=A(I,J)/A(I,I)
160 NEXT J
170 B(I)=B(I)/A(I,I)
180 A(I,I)=0
190 NEXT I
200 FOR I=1 TO N
210 FOR J=1 TO N
220 X(I)=B(I)-A(I,J)*X(J)
230 NEXT J
240 PRINT “X(“;I;”)=“;X(I)
250 NEXT I
260 PRINT “ЕСЛИ НУЖНО ПРОДОЛЖАТЬ, ВВЕДИТЕ 1, ЕСЛИ НЕТ- 0”
270 INPUT “ПРОДОЛЖАТЬ” T
280 IF T=1 THEN 200
290 STOP
300 END
Задачи на собственные знания.
Собственное число квадратной матрицы А-это такое число l, для которого можно подобрать такой нулевой вектор х, что
(12)
Такой вектор х тоже называют собственным. Если х-собственный вектор, то сх, где с-любое нулевое число, также есть собственный вектор. Действительно, А(сх)=сАх=сlx=l(сх). Положив с=1/, мы получим собственный вектор сх единичной длины. Такой собственный вектор называется нормированным.
Из линейной алгебры известно, что все собственные значения (числа) матрицы А=(аij)-есть корни уравнения
det (13)
Но использование этого уравнения для отыскания собственных значений матрицы обшего вида и высокой размерности приводит к необозримым вычислениям и очень большим погрешностям.
Здесь мы опишем итерационный метод отыскания одного из собственных значений. Он состоит в следующем.
Зададимся начальным (нулевым) приближением собственного вектора Вычислим вектор и положим l(1)=. Тогда также есть 1, т. е.это нормированный вектор. Далее вычислим и получим Тогда также . Продолжая процесс, мы получим последовательность векторов и чисел lк, связанныч соотношением
(14)
Если пределы lim l(k), lim существуют, то
т. е. l-есть собственное значение матрицы А. Можно доказать, что при удачном выборе начального приближения эти пределы существуют, и, что полученное таким образом собственное значение является наибольшим из собственных значений матрицы А.