Уважаемые посетители Портала Знаний, если Вы найдете ошибку в тексте, выделите, пожалуйста, ее мышью и нажмите Сtrl+Enter. Мы обязательно исправим текст!


Случайная цитата


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

Численные методы: решение систем линейных уравнений

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

Система линейных алгебраических уравнений с n неизвестными  -  это система уравнений вида

                                     (1)

Слово система означает, что все уравнения рассматриваются как одно целое.

В общем случае у нас имеется m - уравнений, n - количество неизвестных. x1x2,…, xn - неизвестные, которые следует определить.

В системе (1)  – фиксированные коэффициенты,  b1b2, …, bm - свободные члены - предполагаются известными.

Система (1) называется однородной, если все её свободные члены равны нулю (b1 = b2 = … = bm = 0), иначе - неоднородной.

Система (1) называется квадратной, если число m уравнений равно числу n неизвестных.

Задача состоит в том, чтобы найти такие  которые удовлетворяют всем уравнениям (1).

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

Конечно, такое уравнение легко решить, если предположить, что коэффициент  не равен 0, имеем:  = .

Очевидно, в общем случае имеются 3 варианта решений: система имеет ни одного решения, имеет одно решение, более одного решения.

Система (1) называется совместной, если она имеет хотя бы одно решение, и несовместной, если нет ни одного решения.

Система линейных уравнений может быть представлена в матричной форме как:

или:

Ax = b

Здесь A - это матрица системы, x - столбец неизвестных, а b - столбец свободных членов.

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

Рассмотрим, например, систему вида и поймем, как найти ее решение:

                                      (2)

Предположим на минуту, что в первом уравнении y отсутствует, а во втором отсутствует x, тогда мы имели бы решение именно то решение, которое нам нужно.

Вопрос: как исходную систему привести к такому виду и можно ли это сделать.

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

От этих операций тождество не меняется.

В системе (2) у нас два тождества, домножим второе тождество на 2 и вычтем из первого, получим:

                                      (3)

Формально у нас есть еще старое тождество , но оно нам не понадобится (подумайте, почему).

Система (3) точно такая же, как система (2).

Из второго уравнения системы (3) сразу получим:

 

Никто не мешает нам подставить это значение в первое уравнение:

Отсюда сразу находим, что

Итак, путем простых действий мы нашли, что система (2) может быть представлена в виде:

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

Метод Гаусса является одним из самых распространенных прямых методов решения систем линейных уравнений Ax = b:

Опишем этот метод в общем случае.

Вначале исходная система приводится к верхнетреугольному виду.

Это достигается следующей последовательностью преобразований (прямой ход).

Будем считать для удобства, что элемент aij исходной матрицы и компоненты вектора bi есть, соответственно, элементы aij (1) первого шага преобразованной матрицы A1 и преобразованного вектора b1:A = A1, b=b1

Далее, на втором шаге прибавим к второй строке первую, умноженную на  

Аналогично поступим со всеми оставшимися строками, т.е. прибавим к каждой i-ой строке i=2,3,...,N, первую, умноженную на коэффициент  

При этом соответственно изменится и вектор b1. 

Таким образом, 2 шаг.

Имеем систему уравнений A2x = b2:

где

3 шаг.

Прибавим к новой третьей строке новую вторую, умноженную на  

То же самое сделаем с остальными строками 4,5,...,N, т.е. прибавим к i-ой строке вторую, умноженную на  

При этом получим систему A3x = b3:

(k+1)-ый шаг:

Здесь

Поступая так и далее, на шаге N-1 получаем верхнетреугольную систему:

При этом, мы также получили матрицу C переводных коэффициентов, имеющую вид:

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

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

Поэтому метод Гаусса обычно проводят с частичным выбором главного элемента, то есть после каждого шага (пусть это был k-й шаг) переставляют строки с номерами k,k+1,...,N таким образом, чтобы на месте kk оказался элемент  наибольший из всех в k-ом столбце при m>k (при этом, естественно, переставляются и компоненты вектора b).

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

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

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

Введем матрицы Mk по правилу:

На каждом шаге метода Гаусса получается некоторая промежуточная матрица: 

 и вектор  

Нетрудно видеть, что

Вопрос. Почему

Если производить также выбор главных элементов, то необходимо использовать оператор P перестановки индексов l и m, матричные элементы которого равны:

При применении оператора перестановки индексов к матрице слева, меняются местами строки матрицы и компоненты свободного вектора (PAx = Pb), если же его применить справа к матрице, то меняются местами ее столбцы и компоненты решения

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

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

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

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

Идея состоит в том, чтобы найти неподвижную точку матричного уравнения

 \bold{x} = A^\prime \bold{x} + \bold{b}^\prime                                      (5)

эквивалентного начальной системе линейных алгебраических уравнений.

При итерации  \bold{x}  в правой части уравнения заменяется, например, в методе Якоби (метод простой итерации) приближение, найденное на предыдущем шаге:

 \bold{x}_{n+1} = A^\prime \bold{x}_n + \bold{b}^\prime .

Термин неподвижная точка становится ясен, если вы внимательно посмотрите на уравнение (5), по самому своему смыслу величина Х является неподвижной точкой.

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

Обусловленность линейных систем, погрешность

При решении абстрактной задачи Ax = b, где A - оператор произвольной природы, важным моментом является корректность ее постановки.

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

Однако и непрерывная зависимость от входных данных может иметь свои нюансы.

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

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

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

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

Чем можно охарактеризовать количественно обусловленность для линейных систем?

Пусть A - квадратная NxN - матрица.

Рассмотрим задачу Ax = b.

Пусть также  некоторая норма в пространстве RN 

Норма оператора A определяется стандартно:

Обозначим y = Ax и введем число m по правилу:

Величина  называется числом обусловленности.

Очевидно:

  1.      
  2. если A - диагональная, то  (Для какой нормы, или для всех вышеприведенных?). Чем меньше число обусловленности C(A), тем лучше обусловлена система. Действительно, пусть  вариация правой части, а соответствующее изменение решения.

Тогда справедливо следующее неравенство:

 

Доказательство. Имеем:

Так как

то    

Аналогично, поскольку  

Объединяя два неравенства, окончательно получаем для оценки погрешности:

 


В начало

Содержание портала