Последовательность выполнения работы. Решение систем линейных уравнений
Лабораторная работа №4
Решение систем линейных уравнений
Теоретические сведения
Матричное исчисление играет важную роль в компьютерной математике. Практически все численные методы на том или ином этапе работы своего алгоритма сводятся к решению систем линейных алгебраических уравнений (СЛАУ), которое часто производится матричными методами.
Методы решения СЛАУ
(4.1)
или в векторном виде
(4.2)
можно разделить на две основные группы: прямые методы и итерационные. Прямые методы дают точное решение за конечное число операций. Итерационные методы дают решение системы уравнений как предел последовательных приближений. Для итерационных методов необходимо выполнение условий сходимости и дополнительных преобразований системы в эквивалентную систему.
Метод матричных преобразований
Пусть требуется найти решение (СЛАУ) вида (4.1).
Введем следующие обозначения:
где – матрица коэффициентов;
– вектор свободных членов;
– вектор неизвестных.
Из линейной алгебры известно, что система (4.2) имеет единственное решение при условии невырожденности матрицы, т.е. её детерминант должен быть отличным от нуля. Поэтому, какой бы вычислительный метод не применялся, решение системы линейных уравнений всегда нужно начинать с вычисления определителя (детерминанта) матрицы.
Применив к уравнению (4.2) аппарат матричных преобразований, получим «матричную» формулу для вычисления :
1. Помножим уравнение (4.2) слева на матрицу, обратную к матрице :
(4.3)
2. Воспользуемся тем свойством, что , где – единична матрица. Тогда уравнение (4.3) примет вид:
(4.4)
3. Воспользуемся тем свойством, что . Тогда уравнение (4.4) примет вид:
(4.5)
где (4.5) – решение системы (4.2).
Метод Жордана-Гаусса
Метод Жордана-Гаусса, или метод последовательных исключений состоит в том, что систему (4.1) приводят последовательным исключением неизвестных к эквивалентной системе с треугольной матрицей:
(4.6)
решение которой находят по рекуррентным формулам:
В матричной записи это означает, что сначала элементарными операциями над строками приводят расширенную матрицу системы к ступенчатому виду (метод Гаусса):
,
а затем эту ступенчатую матрицу преобразуют так, чтобы в первых столбцах получилась единичная матрица (метод Жордана-Гаусса).
Последний, столбец этой матрицы содержит решение системы (4.1).
Метод простых итераций
При решении системы (4.1) методом простой итерации предполагают, что матрица – квадратная и невырожденная.
Предварительно приводят систему (4.2) к итерационному виду:
(4.8) (4.8)
Для произвольного начального вектора итерационный процесс
(4.9)
сходится, если выполнено одно из условий [4.9]
Процесс вычислений заканчивается при выполнении условия
где - одна из метрик, определяемая левой частью (4.10) – (4.12), по которой была установлена сходимость, - заданная точность.
Метод Зейделя.
Метод Зейделя отличается от метода простой итерации тем, что найдя какое-то значение для , он на следующем шаге использует его для отыскания следующего значения . Вычисления ведутся по реккурентной формуле:
Каждое из условий (4.10) – (4.12) является достаточным для сходимости итерационного процесса по методу Зейделя. Практически же удобнее следующее преобразование системы (4.2). Домножая обе части (4.2) на , получим эквивалентную ей систему
где и .
Далее, поделив каждое уравнение на , приведем систему к виду (4.14). Подобное преобразование также гарантирует сходимость итерационного процесса.
Последовательность выполнения работы
Работа с матрицами в пакете Mathcad организована с помощью панели инструментов Matrix (см. рис. 4.1). Кроме этого, система Mathcad представляет большое количество функций для работы с векторами и матрицами. Воспользоваться этими функциями можно с помощью мастера функций .
Рис. 4.1. Назначение некоторых команд,
расположенных на панели инструментов «Matrix»
Задание 1. Найти решение системы линейных уравнений, пользуясь матричными преобразованиями:
Решение. Решение приведено на рис. 4.2.
Рис. 4.2. Решение СЛАУ в пакете MathCAD матричнм способом.
Задание 2.Найти решение системы средствами Mathcad.
Решение. Систему линейных уравнений средствами Mathcad решают:
1) с помощью функции lsolve(A,b) (см. рис. 4.3).
Lsolve(А, b)
Возвращается вектор решения такой, что
Аргументы:
– квадратная, не сингулярная матрица.
– вектор, имеющий столько же строк, сколько строк в матрице .
Рис. 4.3. Решение системы уравнений с помощью функции lsolve(A,b).
2) с помощью конструкции Given…Find (см. рис. 4.4). Для этого в рабочий документ нужно записать сужебное слово Given. Далее ниже и правее этого слова записывают левую часть первого уравнения системы и символьный знак равно «Ctrl+=» и правую часть. Аналогично записываются все уравнения системы. Правее и ниже последнего уравнения системы записывается имя функции Find и в скобках перечисляются имена переменных, значения которых необходимо найти. С помощью операции → из панели символьных операций получаем ответ в виде матрицы, каждый столбец которой содержит решение – один из решени системы.
Рис. 4.4. Решение системы уравнений с помощью конструкции Given…Find
Задание 3.Решить СЛАУметодом Жордана-Гаусса.
Решение. Решение приведено на рис. 4.5.
Rref(А)
Возвращается ступенчатая форма матрицы
Augment(А,B)
Возвращается массив, сформированный расположением массивов и «бок о бок». Массивы и должны иметь одинаковое число строк
Submatrix(А,ir,jr,ic,jc)
Возвращается подматрица, состоящая из всех элементов с ir по jr и столбцов с ic по jc. Убедитесь, что ir ≤ jr и ic ≤ jc, иначе порядок строк и (или столбцов) будет обращен.
Рис. 4.5. Решение СЛАУ методом Жордана-Гаусса
Задание 4.Решить СЛАУ методом простой итерации c точностью
Решение. порядок выполнения задания:
1. Введите матрицы и .
2. Преобразуйте исходную систему к виду .
3. Определите нулевое приближение решения.
4. Задайте количество итераций.
5. Вычислите последовательные приближения.
Решение приведено на рис. 4.6.
Рис. 4.6. Решение СЛАУ методом простых итераций
Задание 5.Решить СЛАУ методом Зейделя c точностью
Решение: порядок выполнения задания
1. Введите матрицы и .
2. Преобразуйте исходную систему к виду .
3. Определите нулевое приближение решения.
4. Задайте количество итераций.
5. Вычислите последовательные приближения.
Решение приведено на рис. 4.7.
Рис. 4.7. Решение СЛАУ методом Зейделя
Контрольные вопросы
1. К какому типу – прямому или итерационному – относится метод Жордана-Гаусса?
2. Как организуется контроль над вычислениями в прямом и обратном ходе метода Жордана-Гаусса?
3. Как строится итерационная последовательность для нахождения решения системы линейных уравнений в методе простых итераций?
4. Как формулируется достаточные условия сходимости итерационного процесса в методе простых итераций?
5. В чем отличие итерационного процесса метода Зейделя от аналогичного процесса метода простой итерации?
Варианты задания к лабораторной работе №4
Задание. Решить СЛАУ следующими методами :
– матричных преобразований;
– методом Жордана-Гаусса;
– методом простых итераций;
– методом Зейделя.
Найденное решение проверить с помощью встроенных функцй Mathcad. Варианты заданий заданы в табл. 4.1.
Таблица 4.1 – Варианты коэффициентов матриц левой и правой части
№ вар. | ||||
0.35 0.12 - 0.13 | 0.12 0.71 0.15 | - 0.13 0.15 0.63 | 0.10 0.26 0.38 | |
0.71 0.10 - 0.10 | 0.10 0.34 0.64 | 0.12 - 0.04 0.56 | 0.29 0.32 - 0.10 | |
0.34 - 0.04 0.06 | - 0.04 0.44 0.56 | 0.10 - 0.12 0.39 | 0.33 - 0.05 0.28 | |
0.10 - 0.04 - 0.43 | - 0.04 0.34 0.05 | - 0.63 0.05 0.13 | - 0.15 0.31 0.37 |
0.63 0.05 0.15 | 0.05 0.34 0.10 | 0.15 0.10 0.71 | 0.34 0.32 0.42 | |
1.20 - 0.50 - 0.30 | - 0.20 1.70 0.10 | 0.30 - 1.60 - 1.50 | - 0.60 0.30 0.40 | |
0.30 - 0.10 - 1.50 | 1.20 - 0.20 - 0.30 | - 0.20 1.60 0.10 | - 0.60 0.30 0.70 | |
0.20 0.58 0.05 | 0.44 - 0.29 0.34 | 0.91 0.05 0.10 | 0.74 0.02 0.32 | |
6.36 7.42 1.77 | 1.75 19.03 0.42 | 1.0 1.75 6.36 | 41.70 49.49 27.67 | |
3.11 - 1.65 0.60 | - 1.66 3.15 0.78 | - 0.60 - 0.78 - 2.97 | - 0.92 2.57 1.65 |