Метод гаусса. Пример несовместной системы

Итак, метод Гаусса применим к любой системе линейных уравнений, он идеально подходит для решения систем, содержащих больше трех линейных уравнений. Метод Гаусса решения СЛАУ с числовыми коэффициентами в силу простоты и однотипности выполняемых операций пригоден для счета на электронно-вычислительных машинах.

Достоинства метода:

a) менее трудоёмкий по сравнению с другими методами;

b) позволяет однозначно установить, совместна система или нет, и если совместна, найти её решение;

c) позволяет найти максимальное число линейно независимых уравнений - ранг матрицы системы.

Существенным недостатком этого метода является невозможность сформулировать условия совместности и определенности системы в зависимости от значений коэффициентов и свободных членов. С другой стороны, даже в случае определенной системы этот метод не позволяет найти общие формулы, выражающие решение системы через ее коэффициенты и свободные члены, которые необходимо иметь при теоретических исследованиях.

Помимо аналитического решения СЛАУ, метод Гаусса также применяется для:

a) нахождения матрицы, обратной к данной (к матрице справа приписывается единичная такого же размера, что и исходная: , после чего приводится к виду единичной матрицы методом Гаусса-Жордана; в результате на месте изначальной единичной матрицы справа оказывается обратная к исходной матрица:);

b) определения ранга матрицы (согласно следствию из теоремы Кронекера-Капелли ранг матрицы равен числу её главных переменных);

c) численного решения СЛАУ в вычислительной технике (ввиду погрешности вычислений используется Метод Гаусса с выделением главного элемента, суть которого заключена в том, чтобы на каждом шаге в качестве главной переменной выбирать ту, при которой среди оставшихся после вычёркивания очередных строк и столбцов стоит максимальный по модулю коэффициент).

Существуют и другие методы решения и исследования систем линейных уравнений, которые лишены отмеченных недостатков. Эти методы основаны на теории матриц и определителей.

Комбинаторика.

Сколькими способами трое мальчиков - Алмас, Болат, Сабыр - могут стоять в одном ряду? - Это не трудно, напишем все возможные случаи (комбинации): АБС, АСБ, БАС, БСА, САБ, СБА. Всего шесть комбинаций.

Допустим к ним присоединился еще один мальчик Даурен. Каковы будут способы расположения в этом случае? В возможных шести случаях Даурен может стоять первым, вторым, третьим и последним:

ДАБС, ДАСБ, ДБАС, ДБСА, ДСАБ, ДСБА;
АДБС, АДСБ, БДАС, БДСА, СДАБ, СДБА;
АБДС, АСДБ, БАДС, БСДА, САДБ, СБДА;
АБСД, АСБД, БАСД, БСАД, САБД, СБАД.

Всего 24 разных способов. А если еще увеличить количество детей? Каждый раз писать и выводить общее количество трудно. Нам нужно определить число способов, а не виды способов. Нет ли других методов для определение этого число? - Есть. И в теории вероятностей нас больше интересует количество способов расположения, чем виды расположения. Раздел математики, называемый комбинаторикой, дает возможность сразу определить количество таких способов. Ознакомимся с основными понятиями комбинаторики, необходимыми для решения задач теории вероятностей. Это - перестановка, размещение и сочетания. Остановимся на каждом в отдельности.

1. Перестановка. Рассмотрим число случаев в предыдущей задаче. Мы переставили местами буквы А, Б, С и посчитали число всевозможных комбинаций, оно равнялось 6. А когда число мальчиков увеличилось на единицу, переставь местами буквы А, Б, С, Д, мы нашли число всевозможных комбинаций, оно равнялось 24.

ОПРЕДЕЛЕНИЕ. Перестановкой из n различных элементов называются комбинации, которые состоят из n элементов и отличаются друг от друга только порядком их расположения.

Число перестановок из n различных элементов обозначают P n и подсчитывают по формуле:

здесь n! (читается "эн факториал") означает произведение всех натуральных чисел от 1 до n:

Понятно, что один факториал равен единице, 1! = 1, вместе с этим, в математике принято считать что и ноль факториал равен единице. И так 0! = 1.

Вернемся к примеру. Здесь n=3. Следовательно, можно найти искомое число перестановок по формуле (1): P 3 =3!=1 2 3=6. Аналогично, число перестановок из четырех букв равно: P 4 =4!=1 2 3 4=24

Пример 7. Найдем значение выражения с факториалами 8!/6! 2!

Сначала преобразуем 8!=1 2 3 4 5 6 7 8=6! 7 8

Это преобразование подставим в выражение и упростим. 8!/6! 2=6! 7 8/6! 2=7 8/2=28

2. Размещения. Рассмотрим пример. Сколько двузначных чисел (цифры не повторяются) можно записать с помощью цифр 7, 8, 9. Это можно сделать в двух этапах: первый этап - определение количество подбора разрядов десятков числа, он равен 3 (любая из данных 3 цифр может занять разряд десятков); второй этап - определение количество подбора разрядов единиц числа, он равен 2 (любая цифра из оставшихся двух может занять разряд единиц). По правилу умножения из трех чисел можно составить всего 3 2=6 различных двузначных чисел. Действительно, можно в этом убедиться непосредственно записывая эти числа 78, 79, 87, 89, 97, 98, При решении задачи мы расположили по два элемента из трех, причем эти комбинации отличаются либо составом (78, 98), либо порядком их расположения (78, 87).

ОПРЕДЕЛЕНИЕ. Размещением из n элементов по m элементов (m n) называются комбинации, состоящие из m элементов, взятых из данных n различных элементов, отличающихся друг от друга либо самими элементами, либо порядком их расположения.

Число размещений из n элементов по m элементов обозначают и читают так: "А из эн по эм". Чтобы найти используют формулу:

(15)

Рассмотрим еще один пример. В 5 классе изучают 10 предметов. Сколькими способами можно составить расписание, если в этот день должно быть 4 различных урока?

Чтобы найти число способов расположения 10-ти предметов по четыре предмета, воспользуемся формулой (15) нахождения числа размещений из 10 элементов по 4 элемента:

Итак, 10 предметов по 4 предмета можно расположить 5040 различными способами.

3. Сочетания. Пример. Нужно составить произведения двух различных чисел из данных трех чисел 7, 8, 9.

Учитывая переместительное свойство умножения, имеем: 7 8=56, 7 9=63, 8 9=72. При решении задачи мы отобрали по два элемента из трех, причем эти комбинации отличаются только составом (78, 98), а их расположения не влияют на произведение.

ОПРЕДЕЛЕНИЕ. Сочетанием из n элементов по m элементов (m n) называются комбинации, состоящие из m элементов, взятых из данных n различных элементов, отличающиеся друг от друга только составом.

Число сочетаний из n элементов по m элементов обозначают и читают так: "це из эн по эм". Чтобы найти используют формулу:

(16)

В нашем примере n=3, а m=2. Тогда

Рассмотрим еще пример. В классе 25 учеников, из них 12 мальчиков. а) Нужно составить дежурство по два человека, причем пары должны состоят либо из мальчиков, либо из девочек. б) Сколько можно создать групп для дежурства, из двух мальчиков и одной девочки?

Решение. а) При решении этой задачи воспользуемся правилом сложения и формулой сочетания. Сначала посчитаем сколько пар можно создать из мальчиков (m 1) и из девочек (m 2), после найдем их сумму (m=m 1 +m 2).

Чтобы определить сколько пар можно создать из 12 мальчиков воспользуемся формулой для подсчета числа сочетаний из 12 элементов по 2 элемента

Из девочек можно создать 78 различных пар. Тогда по два мальчика и по две девочки всего можно создать m=66+78=144 различных пар.

б) При решении этой задачи воспользуемся правилом умножения и формулой сочетания. В группе два мальчика и одна девочка. Сначала посчитаем сколькими способами можно выбрать из 12 мальчиков по два мальчика (m 1) и из 13 девочек одну девочку (m 2), затем перемножим полученные результаты (m=m 1 m 2).
Из 12 мальчиков 2 мальчика можно выбрать 66 различными способами. А из 13 девочек 1 девочку можно выбрать следующим образом:

Тогда группу из двух мальчиков и из одной девочки можно создать m=66 13=856 различными способами.

Определение матрицы. Определители второго и третьего порядков, их основные свойства. Миноры и алгебраические дополнения, разложение определителя по строке (столбцу). Методы вычисления определителей. Понятие об определителе n-го порядка.

Определение 1.1 . Матрицей называется прямоугольная таблица чисел.

Обозначения: А – матрица, - элемент матрицы, номер строки, в которой стоит данный элемент, номер соответствующего столбца; m – число строк матрицы, n – число ее столбцов.

Определение 1.2 . Числа m и n называются размерностями матрицы.

Определение 1.3. Матрица называется квадратной , если m = n. Число n в этом случае называют порядком квадратной матрицы.

Каждой квадратной матрице можно поставить в соответствие число, определяемое единственным образом с использованием всех элементов матрицы. Это число называется определителем.

Определение 1.4. Определителем второго порядка называется число, полученное с помощью элементов квадратной матрицы 2-го порядка следующим образом:

.

При этом из произведения элементов, стоящих на так называемой главной диагонали матрицы (идущей из левого верхнего в правый нижний угол) вычитается произведение элементов, находящихся на второй, или побочной, диагонали.

1. 2.

Определение 1.5 . Определителем третьего порядка называется число, определяемое с помощью элементов квадратной матрицы 3-го порядка следующим образом:

А` , называемая транспонированной по отношению к матрице А , элементы которой связаны с элементамиА соотношением a` ij = a ji .

Сегодня разбираемся с методом Гаусса для решения систем линейных алгебраических уравнений. О том, что это за системы, можно почитать в предыдущей статье, посвященной решению тех же СЛАУ методом Крамера. Метод Гаусса не требует каких-то специфических знаний, нужна лишь внимательность и последовательность. Несмотря на то что с точки зрения математики для его применения хватит и школьной подготовки, у студентов освоение этого метода часто вызывает сложности. В этой статье попробуем свести их на нет!

Метод Гаусса

Метод Гаусса – наиболее универсальный метод решения СЛАУ (за исключением ну уж очень больших систем). В отличие от рассмотренного ранее , он подходит не только для систем, имеющих единственное решение, но и для систем, у которых решений бесконечное множество. Здесь возможны три варианта.

  1. Система имеет единственное решение (определитель главной матрицы системы не равен нулю);
  2. Система имеет бесконечное множество решений;
  3. Решений нет, система несовместна.

Итак, у нас есть система (пусть у нее будет одно решение), и мы собираемся решать ее методом Гаусса. Как это работает?

Метод Гаусса состоит из двух этапов – прямого и обратного.

Прямой ход метода Гаусса

Сначала запишем расширенную матрицу системы. Для этого в главную матрицу добавляем столбец свободных членов.

Вся суть метода Гаусса заключается в том, чтобы путем элементарных преобразований привести данную матрицу к ступенчатому (или как еще говорят треугольному) виду. В таком виде под (или над) главной диагональю матрицы должны быть одни нули.

Что можно делать:

  1. Можно переставлять строки матрицы местами;
  2. Если в матрице есть одинаковые (или пропорциональные) строки, можно удалить их все, кроме одной;
  3. Можно умножать или делить строку на любое число (кроме нуля);
  4. Нулевые строки удаляются;
  5. Можно прибавлять к строке строку, умноженную на число, отличное от нуля.

Обратный ход метода Гаусса

После того как мы преобразуем систему таким образом, одна неизвестная Xn становится известна, и можно в обратном порядке найти все оставшиеся неизвестные, подставляя уже известные иксы в уравнения системы, вплоть до первого.

Когда интернет всегда под рукой, можно решить систему уравнений методом Гаусса онлайн . Достаточно лишь вбить в онлайн-калькулятор коэффициенты. Но согласитесь, гораздо приятнее осознавать, что пример решен не компьютерной программой, а Вашим собственным мозгом.

Пример решения системы уравнений методом Гаусс

А теперь - пример, чтобы все стало наглядно и понятно. Пусть дана система линейных уравнений, и нужно решить ее методом Гаусса:

Сначала запишем расширенную матрицу:

Теперь займемся преобразованиями. Помним, что нам нужно добиться треугольного вида матрицы. Умножим 1-ую строку на (3). Умножим 2-ую строку на (-1). Добавим 2-ую строку к 1-ой и получим:

Затем умножим 3-ую строку на (-1). Добавим 3-ую строку к 2-ой:

Умножим 1-ую строку на (6). Умножим 2-ую строку на (13). Добавим 2-ую строку к 1-ой:

Вуаля - система приведена к соответствующему виду. Осталось найти неизвестные:

Система в данном примере имеет единственное решение. Решение систем с бесконечным множеством решений мы рассмотрим в отдельной статье. Возможно, сначала Вы не будете знать, с чего начать преобразования матрицы, но после соответствующей практики набъете руку и будете щелкать СЛАУ методом Гаусса как орешки. А если Вы вдруг столкнетесь со СЛАУ, которая окажется слишком крепким орешком, обращайтесь к нашим авторам! вы можете, оставив заявку в Заочнике. Вместе мы решим любую задачу!

Метод Гаусса – метод последовательного исключения неизвестных – заключается в том, что с помощью элементарных преобразований исходная система приводится к равносильной ей системе ступенчатого или треугольного вида, из которой последовательно, начиная с последних (по номеру), неизвестных находятся все остальные неизвестные. Дана система (1)

Начинаем осуществлять прямой ход . Считаем, что коэффициент а 11 ≠ 0; если же это не так, меняем местами уравнения.

Первый шаг состоит в том, чтобы исключить неизвестное х 1 из всех уравнений, кроме первого. Для этого ко второму уравнению прибавим первое уравнение, умноженное на число
, к третьему уравнению прибавим первое уравнение, умноженное на число
, и так далее до последнего уравнения. После первого шага получим систему:

Полученная система равносильна исходной системе.

Вторым шагом исключают неизвестное из всех уравнений, кроме первого и второго. Для этого повторяем все действия первого шага для второго и последующих уравнений, а именно: считаем, что коэффициент
≠ 0 и так далее. Если в результате преобразований получается нулевое уравнение, то его удаляют, если же получается несовместное уравнение, то решение системы закончено – она несовместна. Процесс исключения неизвестных продолжаем до тех пор, пока это возможно. Обозначим количество уравнений, оставшихся после прямого хода, через r . Это число равно рангу основной матрицы системы и может быть меньше или равно n . Рассмотрим оба случая.

1) Если r = n

где с 11 ≠ 0, с 22 ≠ 0, …, с nn ≠ 0.

Обратным ходом , начиная с последнего уравнения, последовательно найдем значения x n , (где x n = ), x n – 1 , ..., x 1 . В этом случае система линейных уравнений имеет единственное решение, то есть является определенной.

2) Если r < n , то система после прямого хода принимает вид:

где с 11 ≠ 0, с 22 ≠ 0, …, с rr ≠ 0. Неизвестные x 1 , x 2 , …, x r , с которых начинаются уравнения, называются главными неизвестными , а остальные x r + 1 , x r + 2 , …, x n свободными . В этом случае обратным ходом, начиная с последнего уравнения, выражают главные неизвестные через свободные неизвестные. Получают следующие равенства:

x 1 = k 1, r + 1 x r + 1 + … + k 1, n x n + t 1 ,

x 2 = k 2, r + 1 x r + 1 + … + k 2, n x n + t 2 ,

……………………………………..

x r = k r , r + 1 x r + 1 + … + k r , n x n + t r .

Определение 6.10. Общим решением системы называется выражение главных неизвестных через свободные.

Если свободным неизвестным придать какие-нибудь числовые значения, то из общего решения получим значения главных неизвестных. Таким образом, получают частное решение системы. Из способа его получения следует, что система имеет более одного решения, то есть является неопределенной.

Пример 6.3. Решить методом Гаусса систему линейных уравнений:

Решение . Преобразования с системой линейных удобнее производить не с самими уравнениями, а с матрицей их коэффициентов. Расширенная матрица этой системы имеет вид: (А |B ) =
.

Осуществляем прямой ход. Первым шагом исключаем неизвестное х 1 из всех уравнений, кроме первого. Так как а 11 = 1 ≠ 0, то переставлять уравнения местами не нужно. Прибавим ко второму уравнению системы первое уравнение, умноженное на (–1), к третьему уравнению – первое, умноженное на (–3). Получим после преобразований следующую матрицу:
, в которой элемент а 22 = 1. Перестановка местами уравнений (первое уравнение трогать не следует) не поможет, поэтому переходим к следующему неизвестному х 3 и исключаем его из всех уравнений, кроме первого и второго. Для этого к третьему уравнению прибавим второе, умноженное на (–2) и вычеркнем получившееся нулевое уравнение. После прямого хода получаем следующую систему:
. Прямой ход завершен. В этом случае n = 4, r = 2, r < n , и, следовательно, система неопределенная. Главные неизвестные – это те неизвестные, с которых начинаются уравнения, в нашем случае это х 1 и х 3 . Неизвестные х 2 и х 4 – свободные.

Обратным ходом надо выразить главные неизвестные через свободные. Для этого в столбцах, содержащих ведущие элементы строк, следует получить нули. Здесь это элемент а 13 . Прибавим к первому уравнению, умноженному на 2, второе и выпишем получившуюся матрицу коэффициентов:
, а затем и сами уравнения:
Из этих уравнений получаем общее решение:

Найдем какое-нибудь частное решение; пусть х 2 = 3, х 4 = 1, тогда из общего решения получим значения х 1 = , и х 1 = –2. Таким образом, частное решение – вектор а = (, 3, –2, 1).

Ответ : общее решение {(
, х 2 ,
, х 4)}, где х 2 , х 4  R;

частное решение, если х 2 = 3, х 4 = 1, то (, 3, –2, 1).

(СЛАУ), состоящая из уравнений с неизвестными:

Предполагается, что существует единственное решение системы, то есть .

В данной статье будут рассмотрены причины погрешности, возникающей во время решения системы с помощью метода Гаусса, способы выявления и ликвидации(уменьшения) этой погрешности.

Описание метода

Процесс решения системы линейных уравнений

по методу Гаусса состоит из 2х этапов:

1. Предполагаем, что . Тогда первое уравнение системы делим на коэффициент , в результате получаем уравнение . Затем из каждого из оставшихся уравнений вычитается первое, умноженное на соответствующий коэффициент . В результате система преобразуются к виду: 2. В предположении, что , делим второе уравнение на коэффициент и исключаем неизвестное из всех последующих уравнений и т.д. 3. Получаем систему уравнений с треугольной матрицей:
  • Обратный ход Непосредственное определение неизвестных
1. Из го уравнения системы определяем 2. Из го - определяем и т.д.

Анализ метода

Данный метод относится к классу прямых методов решения системы уравнений, а это значит, что за конечное число шагов можно получить точное решение, при условии, что входные данные (матрица и правая часть уравнения - ) заданы точно и вычисление ведется без округлений. Для получения решения требуется умножений и делений, то есть порядка операций.

Условия, при которых метод выдает точное решение, на практике не выполнимы - неизбежны как ошибки входных данных, так и ошибки округления. Тогда встает вопрос: насколько точное решение можно получить, используя метод Гаусса, насколько метод корректен? Определим устойчивость решения относительно входных параметров. Наряду с исходной системой рассмотрим возмущенную систему:

Пусть введена некоторая норма . - называется числом обусловленности матрицы .

Возможны 3 случая:

Число обусловленности матрицы всегда . Если оно велико () , то говорят, что матрица плохо обусловлена. В этом случае малые возмущения правых частей системы , вызванные либо неточностью задания исходных данных, либо вызванные погрешностями вычисления, существенно влияют на решение системы. Грубо говоря, если погрешность правых частей , то погрешность решения будет .

Проиллюстрируем полученные результаты на следующем числовом примере: Дана система

Она имеет решение .

Теперь рассмотрим возмущенную систему:

Решением такой системы будет вектор .

При совсем малом возмущении правой части получили несоизмеримо большое возмущение решения. Объяснить такую "ненадежность" решения можно тем, что матрица почти вырожденная: прямые, соответствующие двум уравнениям, почти совпадают, что видно на графике:

Такой результат можно было предвидеть в силу плохой обусловленностью матрицы :

Вычисление является достаточно сложным, сравнимо с решением всей системы, поэтому для оценки пограшности применяются более грубые, но простые в реализации методы.

Способы оценки ошибок

1) Контрольная сумма: обычно применяется для предупреждения случайных погрешностей в процессе вычисления без помощи компьютеров.

Составляем контрольный столбец , состоящий из контрольных элементов системы:

При преобразовании уравнений над контрольными элементами производятся те же операции, что и над свободными членами уравнеий. В результате этого контрольный элемент каждого нового уравнения должен равняться сумме коэффициентов этого уравнения. Большое расхождение между ними указывает на погрешности в вычислениях или на неустойчивость алгоритма вычислений по отношению к вычислительной погрешности.

2) Относительная погрешность известного решения позволяет без существенных дополнительных затрат получить суждение о погрешности решения.

Задается некоторый ветор с компонентами, имеющими по возможности тот же порядок и знак, что и компоненты искомого решения . Вычисляется вектор , и на ряду с исходной системой уравнения решается система .

Пусть и - реально получаемые решения этих систем. Суждение о погрешности искомого решения можно получить, основываясь на гипотезе: относительные погрешности при решении методом исключения систем с одной и той же матрицей и различными правыми частями, которыми являются соответственно величины и , отличаются не в очень большое число раз.

3) Изменение масштабов - прием, применяющийся для получения представления о реальной величине погрешности, возникающей за счет округлений при вычислениях.

Наряду с исходной системой тем же методом решается система

, где и - числа

Если бы не было погрешности округления, то выполнялось бы равенство для решений исходной и масштабированной систем: . Поэтому при и , не являющихся степенями двойки, сравнение векторов и дает представление о величине вычислительной погрешности

Улучшение метода исключения Гаусса

Рассмотренные ниже модификации метода Гаусса позволяют уменьшить погрешность результата.

Выбор главного элемента

Основное увеличение ошибки в методе происходит во время прямого хода, когда ведущая -я строка умножается на коэффициенты .Если коэффициенты 1%20" alt=" >1 ">, то ошибки, полученные на предыдущих шагах накапливаются. Чтобы этого избежать, применяется модификация метода Гаусса с выбором главного элемента. На каждом шаге к обычной схеме добавляется выбор максимального элемента по столбцу следующим образом:

Пусть по ходу исключения неизвестных получена система уравнений:

, .

Найдем такое , что и поменяем местами -е и -е уровнения.

Такое преобразование во многих случаях существенно уменьшает чувствительность решения к погрешностям округления при вычислениях.

Итеративное улучшение результата

Если есть подозрение, что полученное решение сильно искажено, то можно улучшить результат следующим образом. Величина называется невязкой. Погрешность удовлетворяет системе уравнений

.

Решая эту систему, получаем приближение к и полагаем

.

Если точность данного приближения неудовлетворительна, то повторяем эту операцию.

Процесс можно продолжать до тех пор, пока все компоненты не станут достаточно малыми. При этом нельзя останавливать вычисления только потому, что все компоненты вектора невязки стали достаточно малыми: это может быть результатом плохой обусловленности матрицы коэффициентов.

Числовой пример

Рассмотрим для примера матрицу Вандермонда размером 7х7 и 2 различные правые части:

Данные системы были решены двумя способами. Тип данных - float. B итоге получили следующие результаты:

Обычный метод
1 2
1 2 1 2
0.999991 1 0.999996 1
1.00019 1 7.4774e-005 2,33e-008
0.998404 1 0.999375 1
1.00667 1 0.00263727 1,12e-006
0.985328 1 0.994149 1
1.01588 1 0.00637817 3,27e-006
0.993538 1 0.99739 1
0,045479 2,9826e-006 0,01818 8,8362e-006
0,006497 4,2608e-007 0,0045451 2,209e-006
0,040152 4,344e-005 0,083938 2,8654e-006
С выбором ведущего элемента по строке
1 2
1 2 1 2
1 1 1 1
1 1 -3.57628e-005 1,836e-007
1.00001 1 1.00031 1
0.999942 1 -0.00133276 7,16e-006
1.00005 1 1.00302 0,99998
1.00009 1 -0.0033505 1,8e-005
0.99991 1 1.00139 0,99999
0,000298 4,3835e-007 0,009439 5,0683e-005
4,2571e-005 6,2622e-008 0,0023542 1,2671e-005
0,010622 9,8016e-007 0,29402 1,4768e-006

Пусть требуется решить линейную систему уравнений вида:

или в другой форме

В курсе линейной алгебры решения системы уравнений (5.2) представляются по правилу Крамера в виде отношений соответствующих определителей. Если использовать наиболее оптимальный способ расчета определителя, то по правилу Крамера требуется примерно -|п! арифметических операций. Однако существует более оптимальный способ решения системы уравнений (5.2) - метод исключения Гаусса, в рамках которого требуется -|п 3 арифметических действий.

Начнем исследование системы уравнений (5.2) с частного случая, когда матрица системы является верхней треугольной, т. е. все ее элементы ниже главной диагонали равны нулю. Выполняя в командном окне MATLAB oneрацию spy(triu(randn(25))) сгенерируем верхнюю треугольную матрицу и ее графический образ. На рис. 5.1 приведен соответствующий пример верхней треугольной матрицы.

Из последнего уравнения системы с верхней треугольной матрицей находим Х л, подставляя его в предпоследнее уравнение, находим Х„ _i и т. д. - находим все решение. Общая формула для определения Xj-ro имеет вид:

Метод Гаусса выражается в процедуре приведения матрицы системы уравнений к треугольному виду (например, к верхнему треугольному виду на рис. 5.1). Это можно сделать следующим образом. Вычтем из второго уравнения первое, умноженное на такое число, чтобы коэффициент при X] обратился в нуль, аналогично вычтем первое уравнение из второго, третьего и т. д. вплоть до П-го. В результате должна получиться новая система уравнений, в которой в первом столбце везде нули, кроме диагонального элемента а ц. Затем с помощью второго уравнения путем такой же процедуры обнуляем элементы второго столбца, лежащие ниже главной диагонали. Продолжая эту процедуру для третьего и всех последующих уравнений, преобразуем матрицу системы к верхнему треугольному виду.

Рис. 5.1.

Пусть проведено исключение элементов из k- 1 столбца. Остальные уравнения с не обнуленными столбцами можно записать в виде:

Умножим к-к) строку на число С тк = / оIf 1 , т > к, и вычтем из ш-й

строки. Первый ненулевой элемент этой строки обратиться в нуль, а другие элементы можно пересчитать по формулам:

Проведение алгоритма (5.4), (5.5) обнуления каждого столбца матрицы ниже главной диагонали заканчивается (п - 1)-м столбцом, при этом вся процедура называется прямым ходом исключения.

Собрав (5.4), (5.5) вместе, будем иметь

или в развернутой форме

Система уравнений (5.6) легко решается обратным ходом по формулам (5.3).

Возможное нарушение в работе алгоритма (5.4), (5.5) может быть связано с тем, что на главной диагонали оказался нулевой элемент а кк " = 0. В этом случае необходимо среди строк матрицы ниже к -й найти такую, у которой на к- м месте находится отличный от нуля элемент. Такая строка обязательно должна найтись, если она не находится, то это значит, что в к- м столбце, начиная с к-го номера все элементы нулевые, а значит, и детерминант матрицы А равен нулю. Перестановкой строк можно переместить подходящую строку в нужное положение.

Если оказывается, что элемент на главной диагонали мал, то коэффициенты С т к становятся большими числами, и при пересчете элементов матрицы согласно (5.5) может быть значительная потеря точности на ошибках округления при вычитании больших чисел. Чтобы этого не происходило, среди элементов столбца а^ к, т>к, находят главный или максимальный и перестановкой строк переводят его на главную диагональ. Этот метод называется методом Гаусса с выбором главного элемента. С выбором главного элемента ошибки округления в методе Гаусса обычно невелики.

Метод Гаусса с выбором главного элемента наиболее прост, надежен и выгоден и по этой причине наиболее востребован при решении линейных систем уравнений с плотно заполненной матрицей порядка п

Рассмотрим процедуру решения линейной системы уравнений в среде MATLAB. Покажем экспериментально, что в среднем количество операций, осуществляемое центральным процессором при решении линейной системы уравнений, пропорционально кубу порядка матрицы. Покажем, что асимптотически отношение time(n)/n 3 стремится к некоторой предстепенной константе при п -> оо, где time(n) - время работы центрального процессора при данном порядке матрицы п.

В листинге 5.1 приведен код соответствующей программы.

Листинг 5.1

“/«Программа изучения затрат времени “/«центрального процессора при решении %систем линейных уравнений %очищаем рабочее пространство clear all

“/«определяем максимальный порядок “/«обращаемых матриц

птах =1 0 0 0; к =0;

“/«организуем цикл решений систем “/«уравнений вида А X = Ь for п = 1: 10: птах k =к +1; order) к) =п;

“/оформируем случайну матрицу А %и правую часть Ь A=r andn(n); b=randn(n, 1) ;

“/«запоминаем начальный момент времени “/оработы центрального процессора 10 =с рut i me;

“/орешаем линейную систему уравнений %А X = Ь по формуле: X =А Ь А Ь;

“/онаходим последующий момент времени,

“/овычитаем из него предыдущий и “/оделим на куб порядка матрицы

t (к) =(с put i me-10) / n л3; end

“/«строим график зависимости предстепенной “/оконстанты от порядка матрицы А semilogy(order,t);

Рис. 5.2.

На рис. 5.2 приведен график зависимости предстепенной константы отношения времени работы центрального процессора к кубу порядка матрицы от порядка матрицы. Видно, что при П -> оо действительно отношение time(n)/n 3 стремится к некоторой константе, что и подтверждает кубическую зависимость числа операций в методе Гаусса от порядка матрицы.

Определитель и обратная матрица также могут быть найдены методом исключения Гаусса. В процессе исключения вычитание строк не меняет определитель, но может измениться сто знак при перестановке строк. После приведения матрицы к треугольному виду, можем найти детерминант матрицы в виде произведения ее диагональных элементов:

где выбор "+" или зависит от того, четной или нечетной была суммарная перестановка строк.

Процедуру поиска детерминанта матрицы (5.7) изучим на примере стандартной функции MATLAB - det(A), где А - произвольная матрица пхп. Изучим зависимость величины детерминанта матрицы со случайными элементами, распределенными по нормальному закону со средним 0 и стандартным отклонением 1, в зависимости от порядка матрицы.

В листинге 5.2 приведен код соответствующей программы.

Листинг 52

%Программа изучения процедуры поиска детерминанта %матрицы, элементы которой случайные величины,

“/«распределенные по нормальному закону со средним О %и стандартным отклонением 1 %очищаем рабочее пространство clear all

“/«определяем максимальный порядок %анализируемых матриц

птах =3 0 0;

%организуем цикл поиска детерминанта %матрицы А - det(A) for n=l: 5: nmax k =k +1; order) k) =n;

%формируем случайную матрицу A A=r a n d n (n) ;

%вычисляем детерминант матрицы A

%переходим в логарифмическую шкалу %при фиксации значений детерминанта d(k) =si gn(d(к)) *1 оg 10(d(к)); end

%строим график зависимости значений %детерминанта матрицы от порядка матрицы

plot (order, d);

На рис. 5.3 приведен график зависимости логарифма детерминанта случайной матрицы от порядка матрицы. Видно, что детерминант случайной матрицы экспоненциально растет с ростом порядка матрицы.


Рис. 5.3.

Для вычисления обратной матрицы обозначим ее элементы через а 1т, 1,т = 1 , и будем исходить из соотношения АА 1 = Е, тогда верна следующая запись:

Согласно (5.8) /-й столбец обратной матрицы можно рассматривать в качестве неизвестного вектора линейной системы уравнений с матрицей А со специальной правой частью. Таким образом, обращение матрицы сводится к решению линейной системы уравнений п раз с одной и той же матрицей, но с разными правыми частями. Приведение системы к треугольному виду осуществляется только 1 раз, поэтому количество арифметических операций при обращении матрицы лишь в три раза больше, чем при решении системы линейных уравнений, т. е. порядка * 2П 3 .

Рассмотрим теперь функцию inv(A) в среде MATLAB, которая возвращает обратную к А матрицу. В листинге 5.3 приведен код соответствующей программы.

Листинг 53

%Программа изучения процедуры поиска обратной матрицы, Роэлементы которой - случайные величины, распределенные %по нормальному закону со средним 0 и стандартным %отклонением 1

Роочищаем рабочее пространство

%определяем максимальный порядок %анализируемых матриц

пшах=1 0 00; к =0;

Реорганизуем цикл поиска обратной Роматрицы к А - i ПV(А) for п=1: 5: птах k =к +1; о г d е г (к) =п;

Реформируем случайну матрицу А

Ровычисляем обратную к А матрицу Ai nv=i nv(А);

Ренаходим ошибку обращения Е =еуе(п);

е г (к) =п о г ш(A* Ai nv- Е) ; end

Состроим график зависимости значений ошибок

%обращения матриц от порядка матриц

semilogy(order.er);

На рис. 5.4 приведена зависимость ошибки обращения матрицы от ее порядка. Видно, что по мере роста порядка матрицы от 1 до 800 ошибка обращения, выраженная в определенной норме, выросла на пять порядков.