|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
П 3.7 Метод простых итераций решения систем линейных алгебраических уравнений
Рассмотрим метод простых итераций [19]. Имеем систему линейных алгебраических уравнений
или в матричном виде Приведем систему (1) к эквивалентному виду
или в матричной форме
где
Такое приведение может быть выполнено различными способами. Итерационную последовательность векторов
называют методом простых итераций. Вектор начального приближения В качестве критерия сходимости метода простых итераций имеет место следующее утверждение [20]: Для того чтобы метод простой итерации сходился при любом начальном приближении
так как Таким образом выбор матрицы В для системы (5) метода простой итерации должен подчиняться требованиям сходимости и не может быть совсем произвольным. Если матрица А имеет диагональное преобладание, т.е. ее элементы удовлетворяют неравенствам
то в качестве матрицы В можно задать матрицу с элементами
В этом случае систему (1) в эквивалентном виде (3) можно записать следующим образом:
т.е.
Описанная модификация метода простой итерации, связанная с делением уравнений на диагональные элементы матрицы системы, называется методом Якоби [10]. Если
где Выход из итерационного процесса осуществляется по результатам выполнения неравенства
где
Пример 1. Методом простых итераций решить систему линейных уравнений с точностью
Решение: Очевидно, что матрица этой системы не удовлетворяет условиям диагонального преобладания. Переставим уравнения местами так, чтобы выполнялось условие преобладания диагональных элементов.
Преобразуем эту систему к эквивалентному виду (5). Для этого выразим из первого уравнения
Имеем
Заметим, что Зададим вектор начального приближения Выполним расчеты по формуле (6)
На первой итерации имеем систему
Условие окончания итерационного процесса
Условие окончания итерационного процесса На пятой итерации требуемая точность достигнута
Пример 2. Описать алгоритм метода простой итерации на языке программирования С++. При описании алгоритма используются объекты и методы классов «SquareMatrix», «Vector».
void IterationMethods:: simpleIterationMethod(SquareMatrix A, Vector f, double tochnost){
/* Создание вспомогательной матрицы В, векторов g, x1 и вектора решений x */
SquareMatrix B = SquareMatrix(A.getRowCount()); Vector g = Vector(A.getColCount()); Vector x = Vector(A.getColCount()); Vector x1 = Vector(A.getColCount());
/* Получение канонического вида системы: X = BX + g, т.е. матрицы В и g */ for (int i = 0; i < A.getRowCount(); i++){ for (int j = 0; j < A.getColCount(); j++){ if (i == j){ B.setElement(i, j, 0); } if (i!= j){ B.setElement(i,j,-A.getElement(i,j)/A.getElement(i, i)); } } g.setElement(i, f.getElement(i)/A.getElement(i, i)); }
/* Построение итерационной последовательности и вычисление значения вектора на текущей итерации по формуле X(k+1) = BX(k) + g */ ................................................. /*Вывод вектора решений*/ }
Данный алгоритм основан на матричном представлении метода простой итерации. Однако можно обойтись без построения матрицы В и вектора g, воспользовавшись непосредственно формулами (10) для описания итерационного процесса. Это позволит сэкономить вычислительные ресурсы.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |