Mathcad: метод Гаусса-Зейделя и диагональное преобладание
Вопрос возник по этой заметке, где реализованы прямые и итерационные методы решения систем линейных алгебраических уравнений (СЛАУ) в Mathcad.
Для сходимости как метода Якоби, так и модификации Гаусса-Зейделя, следует приводить матрицу к виду с диагональным преобладанием, это можно всегда сделать, применяя элементарные преобразования над строками и столбцами матрицы.
Приложенный документ содержит модификацию итерационного метода Якоби, известную как метод Гаусса-Зейделя и показывает, как привести матрицу к виду с диагональным преобладанием :)
Исходя из определения, достаточно, чтобы модуль элемента главной диагонали был больше остальных элементов своей строки.
Поэтому для исходной матрицы, показанной на скрине, мы поменяли местами первую и вторую строки, а затем вычли из третьей строки вторую (бывшую первую).
То же самое не забыли сделать для вектора правой части b
, на практике лучше работать с расширенной матрицей системы, в которую последним столбцом дописан вектор правой части b
.
Как видно из результата проверки, система решена с точностью не менее 15 знаков после запятой.
Метод Гаусса-Зейделя для решения СЛАУ
Скачать метод Гаусса-Зейделя для решения СЛАУ, документ Mathcad 14/15 .xmcd в архиве .zip (22 Кб)
P. S. Определение диагонального преобладания насчёт того, что модуль элемента, стоящего на главной диагонали, должен быть больше суммы модулей остальных элементов строки - по-моему, достаточное (достаточными условиями правильности утверждения А называются условия, при выполнении которых утверждение А заведомо верно), но я не помню, чтобы оно где-то называлось необходимым (необходимыми условиями правильности утверждения А называются такие условия, без соблюдения которых утверждение А заведомо не может быть верным).
На практике при увеличении размерности системы мы можем столкнуться с тем, что нужны именно достаточные условия для обеспечения устойчивости вычислительного процесса.
Существуют, например, методы приведения матрицы к треугольному виду, в принципе, это вообще, наверное, можно сделать бесконечным числом способов, например, методом Гаусса-Жордана привести матрицу к диагональному виду, в ней тогда точно будет диагональное преобладание.
02.12.2017, 13:11 [21964 просмотра]