2. Описание используемого метода
Для решения методом Зейделя система линейных алгебраических уравнений Ax = b должна быть приведена к виду x = Gx+f , где G - некоторая матрица, f - преобразованный вектор свободных членов. Затем выбирается начальное приближение - произвольный вектор x(0) - и строится рекуррентная последовательность векторов x(1), x(2),..., x(k),... по формуле
.
Для сходимости этой последовательности при любом начальном приближении необходимо и достаточно, чтобы все собственные значения матрицы G были по абсолютной величине меньше единицы. На практике это трудно проверить, и обычно пользуются достаточными условиями сходимости - итерации сходятся, если какая-нибудь норма матрицы меньше единицы, т.е.
или .
Чем меньше норма матрицы G, тем быстрее сходится итерационный процесс.
Преобразование системы можно осуществить, просто решая каждое i-е уравнение относительно xi :
.
Метод Зейделя использует следующий алгоритм построения приближений:
Если A - матрица с доминирующей диагональю, т.е. , то метод Зейделя сходится при любом начальном приближении x(0).
Метод Зейделя сходится примерно так же, как геометрическая прогрессия со знаменателем ||G|| . Если норма матрицы G близка к 1, то скорость сходимости очень медленная. Для ускорения сходимости используется метод релаксации. Суть его в том, что полученное по методу Зейделя очередное значение пересчитывается по формуле:
Здесь 0<w£2 – параметр релаксации. Если w<1 - нижняя релаксация, если w>1 – верхняя релаксация. Параметр w подбирают так, чтобы сходимость метода достигалась за минимальное число итераций.
Метод Зейделя является одношаговым итерационным методам, когда для нахождения x(k+1) требуется помнить только одну предыдущую итерацию x(k).
Погрешность итерации вычисляется по формуле:
n - порядок матрицы A.
Если d меньше заданной точности e, то итерационный процесс прекращают.
Элементы главной диагонали называются главными. Заметим, что если в ходе расчётов по данному алгоритму на главной диагонали окажется нулевой элемент, то произойдет сбой программы. Для того, чтобы избежать этого, следует перестановку строк таким образом, чтобы на главной диагонали находились максимальные элементы строк. Т. е., если в k-й строке максимальным является i-й элемент, необходимо поменять местами k-ю и i-ю строки, и поменять местами соответствующие элементы вектора b. Такой выбор главного элемента необходим для сходимости итерационного процесса.
Приведём блок-схему реализации данного метода:
... строке матрицы i2-ю, умноженную на число r; процедура MultMatr предназначена для умножения матриц. Функция Sign используется для изменения знака на противоположный при вычислении обратной матрицы. Программа настроена на решение системы 3-х линейных уравнений с тремя неизвестными. Чтобы решить систему из 2-х уравнений с 2-мя неизвестными необходимо в программе изменить значение константы N с ...
... 4.Исходный текст программы Составить программу решения систем линейных алгебраических уравнений с квадратной невырожденной матрицей порядка n методом Гаусса с использованием языка С++ . // Решение системы линейных уравнений методом Гаусса. #include<io.h> #include "stdio.h" #include "conio.h" #include <windows.h> #include <iostream> #include <time.h> #include ...
... треугольной матрицей. Вычисления значений неизвестных производят на этапе обратного хода. Целью данной курсовой работы является численное решение системы линейных уравнений с помощью метода исключения Гаусса с выбором главного элемента по столбцу. 1 Постановка задачи Задача ставится следующим образом. Пусть требуется найти решение системы линейных алгебраических уравнений a1,1x1 + a1, ...
... , ary2s Типы данных для переменных, в которых хранятся значения коэффициентов системы Unit2 Gauss1 Процедура для решения системы линейных уравнений методом Гаусса Unit2 Gaussj Процедура для решения системы линейных уравнений методом Жордана-Гаусса Unit2 i,j,l Счетчики Unit1 prover Промежуточная переменная типа String, используется для проверки наличия букв среди коэффициентов ...
0 комментариев