Метод Гаусса (последовательного исключения неизвестных). Примеры решений для чайников


Метод Гаусса прекрасно подходит для решения систем линейных алгебраических уравнений (СЛАУ). Он обладает рядом преимуществ по сравнению с другими методами:

  • во-первых, нет необходимости предварительно исследовать систему уравнений на совместность;
  • во-вторых, методом Гаусса можно решать не только СЛАУ, в которых число уравнений совпадает с количеством неизвестных переменных и основная матрица системы невырожденная, но и системы уравнений, в которых число уравнений не совпадает с количеством неизвестных переменных или определитель основной матрицы равен нулю;
  • в-третьих, метод Гаусса приводит к результату при сравнительно небольшом количестве вычислительных операций.

Краткий обзор статьи.

Сначала дадим необходимые определения и введем обозначения.

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

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

Навигация по странице.

Основные определения и обозначения.

Рассмотрим систему из p линейных уравнений с n неизвестными (p может быть равно n ):

Где - неизвестные переменные, - числа (действительные или комплексные), - свободные члены.

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

Совокупность значения неизвестных переменных , при которых все уравнения системы обращаются в тождества, называется решением СЛАУ .

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

Если СЛАУ имеет единственное решение, то она называется определенной . Если решений больше одного, то система называется неопределенной .

Говорят, что система записана в координатной форме , если она имеет вид
.

Эта система в матричной форме записи имеет вид , где - основная матрица СЛАУ, - матрица столбец неизвестных переменных, - матрица свободных членов.

Если к матрице А добавить в качестве (n+1)-ого столбца матрицу-столбец свободных членов, то получим так называемую расширенную матрицу системы линейных уравнений. Обычно расширенную матрицу обозначают буквой Т , а столбец свободных членов отделяют вертикальной линией от остальных столбцов, то есть,

Квадратная матрица А называется вырожденной , если ее определитель равен нулю. Если , то матрица А называется невырожденной .

Следует оговорить следующий момент.

Если с системой линейных алгебраических уравнений произвести следующие действия

  • поменять местами два уравнения,
  • умножить обе части какого-либо уравнения на произвольное и отличное от нуля действительное (или комплексное) число k ,
  • к обеим частям какого-либо уравнения прибавить соответствующие части другого уравнения, умноженные на произвольное число k ,

то получится эквивалентная система, которая имеет такие же решения (или также как и исходная не имеет решений).

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

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

Теперь можно переходить к описанию метода Гаусса.

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

Как бы мы поступили в школе, если бы получили задание найти решение системы уравнений .

Некоторые сделали бы так.

Заметим, что прибавив к левой части второго уравнения левую часть первого, а к правой части - правую, можно избавиться от неизвестных переменных x 2 и x 3 и сразу найти x 1 :

Подставляем найденное значение x 1 =1 в первое и третье уравнение системы:

Если умножить обе части третьего уравнения системы на -1 и прибавить их к соответствующим частям первого уравнения, то мы избавимся от неизвестной переменной x 3 и сможем найти x 2 :

Подставляем полученное значение x 2 =2 в третье уравнение и находим оставшуюся неизвестную переменную x 3 :

Другие поступили бы иначе.

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

Теперь разрешим второе уравнение системы относительно x 2 и подставим полученный результат в третье уравнение, чтобы исключить из него неизвестную переменную x 2 :

Из третьего уравнения системы видно, что x 3 =3 . Из второго уравнения находим , а из первого уравнения получаем .

Знакомые способы решения, не правда ли?

Самое интересное здесь то, что второй способ решения по сути и есть метод последовательного исключения неизвестных, то есть, метод Гаусса. Когда мы выражали неизвестные переменные (сначала x 1 , на следующем этапе x 2 ) и подставляли их в остальные уравнения системы, мы тем самым исключали их. Исключение мы проводили до того момента, пока в последнем уравнении не осталась одна единственная неизвестная переменная. Процесс последовательного исключения неизвестных называется прямым ходом метода Гаусса . После завершения прямого хода у нас появляется возможность вычислить неизвестную переменную, находящуюся в последнем уравнении. С ее помощью из предпоследнего уравнения находим следующую неизвестную переменную и так далее. Процесс последовательного нахождения неизвестных переменных при движении от последнего уравнения к первому называется обратным ходом метода Гаусса .

Следует заметить, что когда мы выражаем x 1 через x 2 и x 3 в первом уравнении, а затем подставляем полученное выражение во второе и третье уравнения, то к такому же результату приводят следующие действия:

Действительно, такая процедура также позволяет исключить неизвестную переменную x 1 из второго и третьего уравнений системы:

Нюансы с исключением неизвестных переменных по методу Гаусса возникают тогда, когда уравнения системы не содержат некоторых переменных.

Например, в СЛАУ в первом уравнении отсутствует неизвестная переменная x 1 (иными словами, коэффициент перед ней равен нулю). Поэтому мы не можем разрешить первое уравнение системы относительно x 1 , чтобы исключить эту неизвестную переменную из остальных уравнений. Выходом из этой ситуации является перестановка местами уравнений системы. Так как мы рассматриваем системы линейных уравнений, определители основных матриц которых отличны от нуля, то всегда существует уравнение, в котором присутствует нужная нам переменная, и мы это уравнение можем переставить на нужную нам позицию. Для нашего примера достаточно поменять местами первое и второе уравнения системы , дальше можно разрешить первое уравнение относительно x 1 и исключить ее из остальных уравнений системы (хотя во втором уравнении x 1 уже отсутствует).

Надеемся, что суть Вы уловили.

Опишем алгоритм метода Гаусса.

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

Будем считать, что , так как мы всегда можем этого добиться перестановкой местами уравнений системы. Исключим неизвестную переменную x 1 из всех уравнений системы, начиная со второго. Для этого ко второму уравнению системы прибавим первое, умноженное на , к третьему уравнению прибавим первое, умноженное на , и так далее, к n-ому уравнению прибавим первое, умноженное на . Система уравнений после таких преобразований примет вид

где , а .

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

Далее действуем аналогично, но лишь с частью полученной системы, которая отмечена на рисунке

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

где , а . Таким образом, переменная x 2 исключена из всех уравнений, начиная с третьего.

Далее приступаем к исключению неизвестной x 3 , при этом действуем аналогично с отмеченной на рисунке частью системы

Так продолжаем прямой ход метода Гаусса пока система не примет вид

С этого момента начинаем обратный ход метода Гаусса: вычисляем x n из последнего уравнения как , с помощью полученного значения x n находим x n-1 из предпоследнего уравнения, и так далее, находим x 1 из первого уравнения.

Разберем алгоритм на примере.

Пример.

методом Гаусса.

Решение.

Коэффициент a 11 отличен от нуля, так что приступим к прямому ходу метода Гаусса, то есть, к исключению неизвестной переменной x 1 из всех уравнений системы, кроме первого. Для этого к левой и правой частям второго, третьего и четвертого уравнения прибавим левую и правую части первого уравнения, умноженные соответственно на , и :

Неизвестную переменную x 1 исключили, переходим к исключению x 2 . К левым и правым частям третьего и четвертого уравнений системы прибавляем левую и правую части второго уравнения, умноженные соответственно на и :

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

Можно начинать обратный ход метода Гаусса.

Из последнего уравнения имеем ,
из третьего уравнения получаем ,
из второго ,
из первого .

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

Ответ:

А сейчас приведем решение этого же примера методом Гаусса в матричной форме записи.

Пример.

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

Решение.

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

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

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

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

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

Следует отметить, что эта матрица соответствует системе линейных уравнений

которая была получена ранее после прямого хода.

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

стала диагональной, то есть, приняла вид

где - некоторые числа.

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

Прибавим к элементам третьей, второй и первой строк соответствующие элементы последней строки, умноженные на , на и на соответственно:

Теперь прибавим к элементам второй и первой строк соответствующие элементы третьей строки, умноженные на и на соответственно:

На последнем шаге обратного хода метода Гаусса к элементам первой строки прибавляем соответствующие элементы второй строки, умноженные на :

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

Ответ:

ОБРАТИТЕ ВНИМАНИЕ.

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

Пример.

Решите систему из трех уравнений методом Гаусса .

Решение.

Отметим, что в этом примере неизвестные переменные имеют другое обозначение (не x 1 , x 2 , x 3 , а x, y, z ). Перейдем к обыкновенным дробям:

Исключим неизвестную x из второго и третьего уравнений системы:

В полученной системе во втором уравнении отсутствует неизвестная переменная y , а в третьем уравнении y присутствует, поэтому, переставим местами второе и третье уравнения:

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

Приступаем к обратному ходу.

Из последнего уравнения находим ,
из предпоследнего


из первого уравнения имеем

Ответ:

X = 10, y = 5, z = -20 .

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

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

Сейчас мы разберемся, как метод Гаусса позволяет установить совместность или несовместность системы линейных уравнений, а в случае ее совместности определить все решения (или одно единственное решение).

В принципе процесс исключения неизвестных переменных в случае таких СЛАУ остается таким же. Однако следует подробно остановиться на некоторых ситуациях, которые могут возникнуть.

Переходим к самому важному этапу.

Итак, допустим, что система линейных алгебраических уравнений после завершения прямого хода метода Гаусса приняла вид и ни одно уравнение не свелось к (в этом случае мы бы сделали вывод о несовместности системы). Возникает логичный вопрос: «Что делать дальше»?

Выпишем неизвестные переменные, которые стоят на первом месте всех уравнений полученной системы:

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

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

После этого в правых частях всех уравнений нашей СЛАУ находятся числа и можно преступать к обратному ходу метода Гаусса.

Из последнего уравнений системы имеем , из предпоследнего уравнения находим , из первого уравнения получаем

Решением системы уравнений является совокупность значений неизвестных переменных

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

Ответ:

где - произвольные числа.

Для закрепления материала подробно разберем решения еще нескольких примеров.

Пример.

Решите однородную систему линейных алгебраических уравнений методом Гаусса.

Решение.

Исключим неизвестную переменную x из второго и третьего уравнений системы. Для этого к левой и правой части второго уравнения прибавим соответственно левую и правую части первого уравнения, умноженные на , а к левой и правой части третьего уравнения - левую и правую части первого уравнения, умноженные на :

Теперь исключим y из третьего уравнения полученной системы уравнений:

Полученная СЛАУ равносильна системе .

Оставляем в левой части уравнений системы только слагаемые, содержащие неизвестные переменные x и y , а слагаемые с неизвестной переменной z переносим в правую часть:

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

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

Метод Гаусса (метод последовательного исключения неизвестных ) заключается в том, что с помощью элементарных преобразований система приводится к эквивалентной системе ступенчатого вида. Сначала с помощью 1-го уравнения исключается x 1 из всех последующих уравнений системы. Затем с помощью2-го уравнения исключается x 2 из 3-го и всех последующих уравнений. Этот процесс, называемый прямым ходом метода Гаусса , продолжается до тех пор, пока в левой части последнего уравнения останется только одно неизвестное x n . После этого производится обратный ход метода Гаусса – решая последнее уравнение, находим x n ; после этого, используя это значение, из предпоследнего уравнения вычисляем x n –1 и т.д. Последним находим x 1 из первого уравнения.

Преобразования Гаусса удобно проводить, осуществляя преобразования не с самими уравнениями, а с матрицами их коэффициентов. Рассмотрим матрицу:

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

Пример 5.1. Решить систему методом Гаусса:

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

получим нули во 2-й, 3-й и 4-й строках первого столбца:


Теперь нужно чтобы все элементы во втором столбце ниже 2-й строки были равны нулю. Для этого можно умножить вторую строку на –4/7 и прибавить к 3-й строке. Однако чтобы не иметь дело с дробями, создадим единицу во 2-й строке второго столбца и только

Теперь, чтобы получить треугольную матрицу, нужно обнулить элемент четвертой строки 3-го столбца, для этого можно умножить третью строку на 8/54 и прибавить ее к четвертой. Однако чтобы не иметь дело с дробями поменяем местами 3-ю и 4-ю строки и 3-й и 4-й столбец и только после этого произведем обнуление указанного элемента. Заметим, что при перестановке столбцов меняются местами, соответствующие переменные и об этом нужно помнить; другие элементарные преобразования со столбцами (сложение и умножение на число) производить нельзя!


Последняя упрощенная матрица соответствует системе уравнений, эквивалентной исходной:

Отсюда, используя обратный ход метода Гаусса, найдем из четвертого уравнения x 3 = –1; из третьего x 4 = –2, из второго x 2 = 2 и из первого уравнения x 1 = 1. В матричном виде ответ записывается в виде

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

Пример 5.2. Исследовать систему методом Гаусса:

Решение . Выписываем и преобразуем расширенную матрицу системы

Записываем упрощенную систему уравнений:

Здесь, в последнем уравнении получилось, что 0=4, т.е. противоречие. Следовательно, система не имеет решения, т.е. она несовместна . à

Пример 5.3. Исследовать и решить систему методом Гаусса:

Решение . Выписываем и преобразуем расширенную матрицу системы:

В результате преобразований, в последней строке получились одни нули. Это означает, что число уравнений уменьшилось на единицу:

Таким образом, после упрощений осталось два уравнения, а неизвестных четыре, т.е. два неизвестных "лишних". Пусть "лишними", или, как говорят, свободными переменными , будут x 3 и x 4 . Тогда

Полагая x 3 = 2a и x 4 = b , получим x 2 = 1–a и x 1 = 2b a ; или в матричном виде

Записанное подобным образом решение называется общим , поскольку, придавая параметрам a и b различные значения, можно описать все возможные решения системы. à

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

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

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

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

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

по методу Гаусса состоит из 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

Рассмотрим один из самых распространенных методов решения систем линейных алгебраических уравнений - метод Гаусса. Этот метод (который называют также методом последовательного исключения неизвестных) известен в различных вариантах уже более 2000 лет.

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

1. Схема единственного деления.

Рассмотрим сначала простейший вариант метода Гаусса, называемый схемой единственного деления.

Прямой ход состоит из шагов исключения.

1-й шаг. Целью этого шага является исключение неизвестного из уравнений с номерами Предположим, что коэффициент Будем называть его главным (или ведущим) элементом 1-го шага.

Найдем величины

называемые множителями 1-ю шага. Вычтем последовательно из второго, третьего, уравнений системы (5.1) первое уравнение, умноженное соответственно на Это позволит обратить в

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

в которой вычисляются по формулам

2-й шаг. Целью этого шага является исключение неизвестного из уравнений с номерами Пусть где - коэффициент, называемый главным (или ведущим) элементом шага. Вычислим множители 2-го шага

и вычтем последовательно из третьего, четвертого, уравнений системы (5.30) второе уравнение, умноженное соответственно на . В результате получим систему

Здесь коэффициенты вычисляются по формулам

Аналогично проводятся остальные шаги. Опишем очередной шаг.

k-й шаг. В предположении, что главный (ведущий) элемент шага отличен от нуля, вычислим множители шага

и вычтем последовательно из уравнений полученной на предыдущем шаге системы уравнение, умноженное соответственно на

После шага исключения получим систему уравнений

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

Обратный ход. Из последнего уравнения системы (5.33) находим Подставляя найденное значение в предпоследнее уравнение, получим Осуществляя обратную подстановку, далее последовательно находим Вычисления неизвестных здесь проводятся по формулам

Трудоемкость метода. Оценим число арифметических операций, необходимых для реализации схемы единственного деления.

Вычисления 1-го шага исключения по формулам (5.29), (5.31) требуют выполнения деления, умножений и вычитаний, т. е. общее число арифметических операций составляет Аналогично, на шаге требуется операций, а на шаге - операций.

Подсчитаем теперь приближенно общее число арифметических операций прямого хода, считая размерность системы достаточно большой:

Как нетрудно видеть, для реализации обратного хода по формулам (5.34) нужно всего операций, что при больших пренебрежимо мало по сравнению с числом операций прямого хода.

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

Пример 5.7. Методом Гаусса решим систему

Прямой ход. 1-й шаг. Вычислим множители Вычитая из второго, третьего и четвертого уравнений системы (5.35) первое уравнение, умноженное на соответственно получим

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

3-й шаг. Вычисляя множитель и вычитая из четвертого уравнения системы (5.37) третье уравнение, умноженное на приводим систему к треугольному виду:

Обратный ход. Из последнего уравнения системы находим Подставляя значение в третье уравнение, находим

Результаты вычислений можно свести в следующую таблицу.

Таблица 5.2 (см. скан)

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

Пример 5.8. Используя метод Гаусса, решим систему уравнений

на -разрядной десятичной ЭВМ.

Прямой ход. 1-й шаг. Вычисляем множители и преобразуем систему к виду

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

2-й шаг. После вычисления множителя последнее уравнение системы должно быть преобразовано к виду где Однако на используемой ЭВМ будет получено уравнение

Действительно, коэффициент определяется точно, так как при его вычислении не возникает чисел, мантиссы которых имеют более 6 разрядов. В то же время при вычислении умножение коэффициента 3.0001 на дает 7-разрядное число 105003.5, после округления которого до 6 разрядов получится 105004. Вычисление 62) завершается выполнением операции вычитания: . После округления последнего числа до 6 разрядов мантиссы приходим к уравнению (5.41).

Обратный ход. Из уравнения (5.41) находим и 1.00001. Сравнение с истинным значением показывает, что эта величина получена с очень высокой для используемой ЭВМ точностью. Дальнейшие вычисления дают

После округления имеем .

Как нетрудно видеть, найденные значения неизвестных имеют мало общего с истинными значениями решения

В чем же причина появления такой значительной погрешности? Говорить о накоплении ошибок округления не приходится, так как всего было выполнено 28 арифметических операций и лишь в 4 случаях потребовалось округление. Предположение о плохой обусловленности системы не подтверждается; вычисление дает значение и 100.

В действительности причина состоит в использовании на шаге малого ведущего элемента Следствием этого стало появление большого

множителя и существенное возрастание коэффициента в последнем уравнении системы.

Таким образом, изложенный выше вариант метода Гаусса (схема единственного деления) оказался некорректным и, следовательно, непригодным для вычислений на ЭВМ. Этот метод может привести к аварийному останову (если при некотором и вычисления по нему могут оказаться неустойчивыми.

2. Метод Гаусса с выбором главного элемента по столбцу (схема частичного выбора).

Описание метода. На шаге прямого хода коэффициенты уравнений системы с номерами преобразуются по формулам

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

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

После этой перестановки исключение неизвестного производят, как в схеме единственного деления.

Пример 5.9. Решим систему уравнений (5.39) методом Гаусса с выбором главного элемента по столбцу на -разрядной десятичной ЭВМ.

Прямой ход. 1-й шаг. Максимальный в первом столбце элемент матрицы находится в первой строке, поэтому перестановка уравнений не нужна. Здесь 1-й шаг проводится точно так же, как и в примере 5.8.

2-й шаг. Среди элементов матрицы системы (5.40) максимальный принадлежит третьему уравнению. Меняя местами второе и третье уравнения, получим систему

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

Обратный ход. Из последнего уравнения находим Далее, имеем В данном случае ответ получился точным.

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

Вычислительная устойчивость схемы частичного выбора. Детальное исследование метода Гаусса показывает, что действительной причиной неустойчивости схемы единственного деления является возможность неограниченного роста элементов промежуточных матриц в процессе прямого хода. Так как на шаге схемы частичного выбора 1, то для вычисленных по формулам (5.42) элементов справедлива оценка Следовательно, максимальное по модулю значение элементов матрицы возрастает на одном шаге не более чем в 2 раза и в самом неблагоприятном случае шаг прямого хода даст коэффициент роста

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

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

Наличие в оценке (5.43) множителя указывает на то, что при большом схема частичного выбора может оказаться плохо обусловленной и возможна существенная потеря точности. Однако практика матричных вычислений показывает, что существенный рост элементов матрицы происходит крайне редко. В подавляющем большинстве случаев действительное значение коэффициента роста не превышает 8-10. Если система хорошо обусловлена, то погрешность вычисленного решения оказывается, как правило, малой.

Иногда для проверки качества приближенного решения х

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

где то же, что и в оценке (5.43). Заметим, что в неравенство (5.44) не входит число обусловленности.

3. Метод Гаусса с выборок главного элемента по всей матрице (схема полного выбора).

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

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

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

4. Случаи, когда выбор главных элементов не нужен.

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

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

5. Масштабирование.

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

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

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

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

Пример . В качестве иллюстрации преимущества модифицированного метода Гаусса, рассмотрим систему третьего порядка:

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

Исключаем х 1 из второго и третьего уравнений. Для этого первое уравнение умножаем на 0,3 и складываем со вторым, а затем умножаем первое уравнение на (–0,5) и складываем с третьим. В результате получаем

(б )

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

Умножая второе уравнение на 25, и складывая с третьим, получим

(в )

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

Выполняем вычисления, начиная с последнего уравнения в полученной системе:

Подставляя полученное решение в исходную систему, убеждаемся в его истинности.

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

(г )

Прямой ход метода для системы (г ) повторим по аналогичной технологии с исходной системой (а ).

(д )

После исключения х 2 третье уравнение примет вид (остальные – без изменения)

15005 х 3 = 15004. (е )

Выполняя обратный ход, получим

Очевидно, что полученные решения и [–0,35; –1,4; 0,99993] различны. Причиной этого является малая величина ведущего элемента во втором уравнении преобразования в (д ). Чтобы это исключить, переставим в (д ) вторую и третью строки


(ж )

Для данной системы после исключения х 2 из третьего уравнения, оно примет следующий вид

6,002 х 3 = 6,002. (з )

В данном случае, выполняя обратный ход

мы получим решение системы (г ) , которое в точности совпадает с решением исходной системы.

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

Рассмотрим блок-схему модифицированного метода Гаусса (рис. 2.1).

Рис. 2.1. Блок-схема модифицированного метода Гаусса

Проведем анализ предложенной схемы на примере системы n =3 (=0,001)

(8)

;. (*)

Блок 1. Ввод исходных данных:n – порядок системы,A – матрица коэффициентов при неизвестных,b – вектор свободных членов.

Блок 2.I-й цикл прямого хода (дляk , изменяющегося от 1 до предпоследнего значения, т.е. доn –1) обеспечивает исключение из главной диагонали матрицыА элементаa kk =0 благодаря поиску максимального элементаa kk в текущем столбце, осуществляемому в блоках 36 с помощью циклаII.

Затем реализуются расчеты по формулам (6) прямого хода Гаусса в блоках циклов IVиV.

Проведем поблочный анализ в среде рассмотренных циклов IVна примере (8).

Блок 3p =k = 1

Вход в цикл II

Блок 4m =k +1 = 2 доn = 3

Блок 5a 11 = 2 <a 21 = 4 из (*)

Блок 6p = 2

Блок 4m = 2+1 = 3

Блок 5a 21 = 4 <a 31 = 6 из (*)

Блок 6p = 3

Выход из цикла IIи вход в циклIII, блоки 710 выполняют перестановку строк матрицыА поэлементно

Блок 7j = 1 (j от 1 до 3)

Блок 8 r = a 11 = 2 из (*)

Блок 9 a 11 = a 31 = 6

Блок 10 a 31 = r

Блок 7 j = 2

Блок 8 r = a 12 = 1

Блок 9 a 12 = a 32 = 5

Блок 10 a 32 = r = 1

Блок 7j = 3 и по аналогииr =a 13 ;a 13 =a 33 ;a 33 =r = −1.

Выход из цикла IIIи вход вБлок 11 и далее 1213 выполняют аналогичную перестановку значений свободных членов

r =b 1 = 1;b 1 = b 3 = 14;b 3 =r= 1.

Вход в цикл IVс измененной системой

;; (**)

для пересчета b 2 вектора

m =k +1 = 1+1 = 2 доn = 3

c = a mk / a kk = a 21 / a 11 = 4/6 из (**)

b 2 =b 2 –c b 1 = 6 – 4/614 = −20/6 из (**)

Вход во вложенный цикл Vдля пересчета второй строки

i = 1 (i от 1 до 3); a 21 = a 21 – с a 11 = 4 – 4/6  6 = 0;

i = 2; a 22 = a 22 – с a 12 = 6 – 4/6  5 = 16/6;

i = 3; a 23 = a 23 – с a 13 = 2 – 4/6  8 = −20/6.

Выход из цикла Vи вход в циклIV

m = 3;c =a 31 /a 11 = 2/6.

Вход в Блок 16

b 3 =b 3 –c b 1 = 1 – 2/614 = −22/6.

Выход из цикла IVи вход в циклVи вход вБлок 17

i = 1 (i от 1 до 3); a 31 = a 31 – с a 11 = 2 – 2/6  6 = 0;

i = 2; a 32 = a 32 – с a 12 = 1 – 2/6  5 = −4/6;

i = 3; a 33 = a 33 – с a 13 = −1 – 2/6  8 = −22/6.

Выход из цикла Vс преобразованной системой

;
; (***)

и вход по линии А в циклI

k = 2;p =k = 2;m =k +1 = 3; вход вБлок 5

| a 22 | < |a 32 | = | 16/6 | > | 4/6 | из (***).

Выход из цикла IIи вход в циклIII

j = 2 (j от 2 до 3);

r = a kj = a 22 = 16/6; a 22 = a 22 ; a 22 = r = 16/6; из (***)

r =a 23 = −20/6;a 23 =a 23 ;a 23 =r = −20/6; из (***)

В данном случае на диагонали оказался максимальный элемент, поэтому перестановка 2-ой и 3-ей строк не выполняется.

Выход из цикла IIIи вход в циклIвБлок 11

r =b 2 ;b 2 = b 2 ;b 2 =r= −20/6.

Свободный член b 2 остается на своем месте.

Вход в цикл IV

m =k +1 = 2+1 = 3;

c = a mk / a kk = a 32 / a 22 = (–4/6) / (16/6); из (***)

b 3 =b 3 –c b 2 = −22/6 – (–1/4)(–20/6) = −27/6 из (***)

Выход из цикла IVи вход в циклV

i = 2 (i от 2 до 3); a 32 = a 32 – с a 22 = −4/6 – (–1/4)  16/6 = 0;

i = 3;a 33 =a 33 –с a 23 = −22/6 – (–1/4)(–20/6) = −27/6.

Выход из цикла Vи выход из циклаI.

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

В Блоках 1924 реализуются формулы (7).

В Блоке 19 из последнего уравнения находится значениеx n (n = 3)

x 3 =b n / a nn =b 3 / a 33 = (–27/6) / (–27/6) = 1.

Вход в цикл VI(Блок 20), в котором значение переменной циклаk изменяется отn –1 до 1 с шагом (–1)

Блок 21s= 0

Вход в цикл VII(Блок 22)

i = k +1 = 2+1 = 3; n = 3; s = s + a ki x i = 0 + a 23 x 3 = −20/6 1 = −20/6.

Выход из цикла VIIнаБлок 24 в циклVI:

k = 2; x 2 = (b k – s)/ a nn = (b 2 – s)/ a 22 = (–20/6 +20/6)/ a 22 = 0.

k =k –1 = 2–1 = 1;

i = k + 1 = 2; s = 0 + a 12 x 2 = 5  0 = 0;

i = k + 1 = 3; s = 0 + a 13 x 3 = 8  1 = 8;

x 1 = (b 1 –s)/ a 11 = (14 – 8) / 6 = 1.

Выход из последнего цикла VII.

В Блоке 25 (цикл опущен) выполняется вывод на экран полученного решения СЛАУ – векторат.е.x i ,i =1, ...,n . В нашем случае (1; 0; 1).

Поделиться: