Метод Зейделя

 

При решении системы линейных уравнений вычислительные формулы имеют вид:

(3.27)

где .

Из (3.27) видно, что в методе простой итерации для получения нового значения вектора решений на i+1-ом шаге используются значения переменных, полученные на предыдущем шаге.

Основная идея метода Зейделя состоит в том, что на каждом шаге итерационного процесса при вычислении значения переменной учитываются уже найденные значения :

(3.28)

Достаточные условия сходимости итерационного процесса (3.23)-(3.25) также являются достаточным условиями сходимости метода Зейделя.

Существует возможность автоматического преобразования исходной системы к виду, обеспечивающему сходимость итерационного процесса метода Зейделя. Для этого умножим левую и правую части системы (3.2) на транспонированную матрицу системы AT, получим равносильную систему

, (3.29)

где , .

Система (3.29) называется нормальной системой уравнений. Нормальные системы уравнений обладают рядом свойств, среди которых можно выделить следующие:

1) матрица C коэффициентов при неизвестных нормальной системы является симметрической (т.е. , );

2) все элементы, стоящие на главной диагонали матрицы C положительны (т.е. , ).

Последнее свойство дает возможность «автоматически» приводить нормальную систему (3.29) к виду, пригодному для итерационного процесса Зейделя:

(3.30)

где

, (3.31)

и

. (3.32)

Целесообразность приведения системы к нормальному виду и использования метода Зейделя вытекает из следующей теоремы:

Теорема 3.2.Итерационный процесс метода Зейделя для приведенной системы (3.30), эквивалентной нормальной системе (3.29), всегда сходится к единственному решению этой системы при любом выборе начального приближения [2].

Таким образом решение произвольной системы линейных уравнений вида (3.1) методом Зейделя реализуется в соответствие со следующим алгоритмом:

1. Ввод матрицы А коэффициентов исходной системы и вектор-столбца свободных членов.

2. Приведение системы к нормальной умножением обеих частей системы на транспонированную матрицу АT.

3. Приведение нормальной системы к виду, пригодному для итерационного процесса Зейделя (3.30), (3.31).

4. Задание требуемой точности решения.

5. Циклическое выполнение итерационного процесса до достижения требуемой точности.

Для реализации метода Зейделя в пакете MATLAB необходимо:

1. Создать файл Zeidel.m, содержащий описание функции, выполняющей последовательно: а) приведение системы к нормальному виду; б) приведение нормальной системы к виду, пригодному для итерационного процесса Зейделя; в) реализацию итерационного процесса Зейделя.

% листинг файла Zeidel.m

function [z1,z2]=Zeidel(A,b,eps)

N=size(A,1);

% приведение системы к нормальному виду

C=A'*A;

D=A'*b;

% приведение системы к виду пригодному для итерационного процесса

% Зейделя

for i=1:N

D1(i)=D(i)/C(i,i);

End;

D1=D1';% транспонирование матрицы

d1=D1;

for i=1:N

for j=1:N

if i==j

C1(i,j)=0;

Else

C1(i,j)=-C(i,j)/C(i,i);

End;

End;

End;

% решение системы линейных уравнений методом Зейделя

R1=d1;

while Flag==0

for i=1:N

v=C1(i,1:N);% выделение i-oй строки матрицы

a=dot(v',d1);% вычисление скалярного произведения

d1(i)=a+D1(i);

End;

R2=d1;

s=max(abs(R2-R1));

if s<eps

z1=d1;

z2=s;

Return

End;

R1=R2;

End;

 

2. Задать матрицу коэффициентов при неизвестных исходной системы линейных уравнений и столбец свободных членов

 

>> A=[1,2,3,4,5;10,9,8,7,6;5,9,11,12,13;20,1,3,17,14;12,10,4,16,15]

>> b=[10,20,30,40,50];

3. Вычислить решение системы линейных уравнений, используя функцию Zeidel( )

 

>> Zeidel1(A,b,10^-6)

ans =

0.0972

1.4325

-1.3533

1.6564

0.8947

4. Проверить полученное решение

>> A*ans

ans =

10.0013

20.0003

29.9995

39.9999

50.0000

 

3.6. Решение систем линейных уравнений средствами пакета MATLAB

 

Для решения систем линейных уравнений и связанных с ними матричных операций применяются операторы: сложения (+), вычитания (-), умножения (*), деления справа (/), деления слева (\), возведения в степень (^), транспонирования (¢), действие которых определяется правилами линейной алгебры.

Пусть задана система n линейных алгебраических уравнений с n неизвестными:

. (3.61)

Система уравнений (1) в матричной форме представляется следующим образом:

АХ = В, (3.62)

где А – квадратная матрица коэффициентов, размером n ´ n строк и столбцов;

Х – вектор-столбец неизвестных;

В – вектор-столбец правых частей.

Систему уравнений (2) можно решить различными методами. Один из наиболее простых и эффективных методов является метод исключения Гаусса и его модификации. Алгоритм метода основан на приведении матрицы А к треугольному виду (прямой ход) и последовательном вычислении неизвестных (обратный ход). Эти процедуры можно выполнять над невырожденными матрицами, в противном случае метод Гаусса неприменим.

Недостатком метода является накапливание погрешностей в процессе округления, поэтому метод Гаусса без выбора главных элементов используется обычно для решения сравнительно небольших (n £ 100) систем уравнений с плотно заполненной матрицей и не близким к нулю определителем. Если матрица А сильно разрежена, а ее определитель не близок к нулю, то метод Гаусса не пригоден для решения больших систем уравнений.

В MATLAB имеется обширный арсенал методов решения систем уравнений (2). Для этого применяются следующие операторы

/ - правое деление;
   
\ - левое деление;
   
Ù - 1 - возведение в степень –1;
   
inv(A) - обращение матрицы А.

 








Дата добавления: 2015-08-21; просмотров: 5940;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.019 сек.