- •Оглавление
- •Задание № 1
- •Теоретические сведения Метод бисекции (деления отрезка пополам)
- •Метод хорд (метод линейной интерполяции)
- •Метод касательных (метод Ньютона)
- •Метод секущих
- •Метод простых итераций
- •Задание № 2
- •Теоретические сведения Метод Гаусса (метод последовательного исключения неизвестных)
- •Задание № 3
- •Теоретические сведения Метод Эйлера
- •Методы типа Рунге-Кутта
- •Литература
- •Варианты задач к заданию №1
- •Варианты задач к заданию №2
- •Варианты задач к заданию №3
Задание № 2
Решить систему уравнений с тремя неизвестными методом Гаусса-Жордана
Составить функции, реализующие метод, проверить решение с помощью встроенных функций MathCAD.
Теоретические сведения Метод Гаусса (метод последовательного исключения неизвестных)
Пусть дана система
m
линейных уравнений с n
неизвестными
.
Требуется найти ее общее решение, если
она совместна, или установить ее
несовместность. Выпишем расширенную
матрицу системы
Назовем элементарными операциями следующие действия с матрицами:
перестановка строк;
умножение строки на число, отличное от нуля;
сложение строки с другой строкой, умноженной на число.
Отметим, что при решении системы уравнений, в отличие от вычисления определителя и нахождения ранга, нельзя оперировать со столбцами.
Легко проверить, что если по матрице, полученной из A* выполнением элементарной операции, восстановить систему уравнений, то новая система будет равносильна исходной.
Цель алгоритма – с помощью применения последовательности элементарных операций к матрице A* добиться, чтобы каждая строка, кроме, быть может, первой, начиналась с нулей, и число нулей до первого ненулевого элемента в каждой следующей строке было больше, чем в предыдущей.
Шаг
алгоритма заключается в следующем.
Находим первый ненулевой столбец в
матрице A*.
Пусть это будет столбец с номером i.
Находим в нем ненулевой элемент и строку
с этим элементом меняем местами с первой
строкой. Чтобы не нагромождать
дополнительных обозначений, будем
считать, что такая смена строк в матрице
A*
уже произведена,
то есть
.
Тогда ко второй строке прибавим первую,
умноженную на число
,
к третьей строке прибавим первую,
умноженную на число
,
и т.д. В результате получим матрицу
(Первые нулевые столбцы, как правило, отсутствуют.)
Если
в матрице
встретилась
строка с номером k,
в которой все элементы
равны
нулю, а
,
то выполнение алгоритма останавливаем
и делаем вывод, что система несовместна.
Действительно, восстанавливая систему
уравнений по расширенной матрице,
получим, что k-е
уравнение будет иметь вид
Этому уравнению
не удовлетворяет ни один набор чисел
.
Матрицу можно записать в виде:
,
где
.
По отношению к
матрице
выполняем
описанный шаг алгоритма. Получаем
матрицу
,
где
,.
Эту матрицу снова можно записать в виде
,
и к матрице C* снова применим описанный выше шаг алгоритма.
Процесс останавливается, если после выполнения очередного шага новая уменьшенная матрица состоит из одних нулей или если исчерпаны все строки. Заметим, что заключение о несовместности системы могло остановить процесс и ранее.
Если бы мы не уменьшали матрицу, то в итоге пришли бы к матрице вида
.
Далее
выполняется так называемый обратный
ход метода Гаусса. По матрице
составляем
систему уравнений. В левой части оставляем
неизвестные с номерами, соответствующими
первым ненулевым элементам в каждой
строке, то есть
.
Заметим, что ранг
равен рангу
.
Остальные неизвестные переносим в
правую часть. Считая неизвестные в
правой части некоторыми фиксированными
величинами, несложно выразить через
них неизвестные левой части.
Теперь, придавая
неизвестным в правой части произвольные
значения и вычисляя значения переменных
левой части, мы будем находить различные
решения исходной системы
.
Чтобы записать общее решение, нужно
неизвестные в правой части обозначить
в каком-либо порядке буквами
,
включая и те неизвестные, которые явно
не выписаны в правой части из-за нулевых
коэффициентов, и тогда столбец неизвестных
можно записать в виде столбца, где каждый
элемент будет линейной комбинацией
произвольных величин
(в частности, просто произвольной
величиной Ck).
Эта запись и будет общим решением
системы. Здесь
.
Если система была однородной, то получим общее решение однородной системы. Коэффициенты при C1, взятые в каждом элементе столбца общего решения, составят первое решение из фундаментальной системы решений, коэффициенты при C2 – второе решение и т.д.
Фундаментальную систему решений однородной системы можно получить и другим способом. Для этого одной переменной, перенесенной в правую часть, нужно присвоить значение 1, а остальным – нули. Вычислив значения переменных в левой части, получим одно решение из фундаментальной системы. Присвоив другой переменной в правой части значение 1, а остальным – нули, получим второе решение из фундаментальной системы и так далее.
Задача 2.1
Решим данную систему уравнений средствами MathCAD:
|
Записываем матрицу левой части и вектор правой части системы уравнений. |
|
Получаем решение системы линейных уравнений, используя встроенную функцию MathCAD.
|
|
Просматриваем результаты решения системы уравнений. |
А теперь напишем функции реализующие решение системы уравнений методом Гаусса-Жордана:
|
Функция перестановки i- й и i +1-й строк матрицы:
С – входная матрица,
i – номер строки для перестановки. |
Следующая функция формирует расширенную матрицу системы С, которая является результатом склеивания матриц A и B, и приводит матрицу С к ступенчатой форме.
Следующая функция осуществляет обратный ход метода Гаусса после приведения матрицы С к ступенчатой форме.
|
Теперь вызываем нашу реализацию метода Гаусса. |
|
Просматриваем результаты решения системы уравнений. |
Как видим результаты вычислений встроенными средствами MathCAD и результаты, полученные на основе представленной реализации метода Гаусса-Жордана, совпали.
Задача 2.2
Приведем решение тестового примера для системы линейных алгебраических уравнений с четырьмя неизвестными, представленного в [1].
Решение совпало с приведенным в [1].
