Метод простой итерации

Функцию r(x,y), определяющую расстояние между точками x и y множества X назовем метрикой, если

1) r(x,y)³0

2) r(x,y)=0 • x=y

3) r(x,y)= r(y,x)

4) r(x,y)£ r(x,z)+ r(z,y).

Множество X с введенной метрикой r назовем метрическим пространством.

Последовательность точек метрического пространства называется фундаментальной, если .

Пространство называется полным, если в нем любая фундаментальная последовательность сходится.

Отображение F пространства E в себя называется сжимающим, если

xнеподвижная точка, если F(x)=x.

Оценка расстояния между неподвижной точкой и приближением x(k) производится следующим образом:

или .

Таким образом, чтобы погрешность вычислений была меньше наперед заданного числа ε, достаточно потребовать .

Рассмотрим 3 типа метрики.

Пусть x(x1,x2,…,xn) и y(y1,y2,…,yn) – две точки n-мерного пространства.

I. Максимальная из сумм модулей коэффициентов при неизвестных в правой части системы, взятых по строкам, должна быть меньше единицы:

II. Максимальная из сумм модулей коэффициентов при неизвестных в правой части системы, взятых по столбцам, должна быть меньше единицы:

III. Корень квадратный из суммы квадратов коэффициентов при неизвестных в правой части системы, должен быть меньше единицы:

 

СЛУ преобразуется таким образом, чтобы по одной из метрик выполнялось α < 1.

При этом СЛУ задает отображение, которое при α < 1 будет сжимающим. Значит, взяв любую точку в качестве начального приближения, получим последовательность точек, которая будет сходиться к неподвижной точке; это точка и будет решением системы.

Чтобы привести СЛУ к итерационному виду нужно:

1) с помощью равносильных преобразований привести систему к виду с преобладающими диагональными коэффициентами (по абсолютной величине);

2) разделить все уравнения на соответствующие диагональные коэффициенты и выразить из каждого уравнения неизвестное с коэффициентом, равным единице.

Если для этой системы α < 1, то система задает сжимающее отображение.

Рассмотрим на примере:

Решим систему трех линейных уравнений с тремя неизвестными.

Преобразуем систему к итерационному виду, для чего поменяем местами 1-ую строку со 2-ой, после чего каждую строку разделим на соответствующие диагональные элементы.

Проверим, будет ли отображение сжимающим:

Запишем формулы для решения системы методом итераций:

Программа решения системы трех линейных уравнений с тремя неизвестными методом простой итерации (с использованием евклидовой метрики):

program slu_iter;

var p,b,x1,x2,x3,y1,y2,y3,a,e: real;

N: integer;

begin

write('Введите x1, x2, x3 : '); readln(x1,x2,x3);

write('Введите A, E : '); readln(a,e);

b:=e*(1-a)/a;

N:=0; {число итераций}

repeat

N:=N+1;

y1:= 0.1362*x2-0.1790*x3+16.1433;

y2:=-0.2238*x1+0.0909*x3+25.3154;

y3:= 0.1739*x1+0.2875*x2+21.3777;

p:=sqrt(sqr(x1-y1)+sqr(x2-y2)+sqr(x3-y3));

x1:=y1; x2:=y2; x3:=y3;

until p<=b;

writeln('x1 = ',x1:8:6);

writeln('x2 = ',x2:8:6);

writeln('x3 = ',x3:8:6);

writeln('Число итераций - N = ',N);

readln

end.


 

Блок-схема метода простой итерации: Результаты выполнения программы
    Введите x1, x2, x3 : 0 0 0 Введите A, E : 0.2218 0.0001 x1 = 13.999332 x2 = 25.000225 x3 = 30.999722 Число итераций - N = 10