Методы исключения Гаусса
Материал из MachineLearning.
 (→Анализ метода)  | 
			|||
| Строка 38: | Строка 38: | ||
== Анализ метода ==  | == Анализ метода ==  | ||
| + | |||
| + | Данный метод относится к классу прямых методов решения системы уравнений, а это значит, что за конечное число шагов можно получить точное решение, при условии, что входные данные ( матрица <tex>A</tex> и правая часть уравнения - <tex>b</tex>) заданы точно и вычисление ведется без округлений.  | ||
| + | Для получения решения требуется <tex>\frac{m^3}{3}+ m^2 - \frac{m}{3}</tex> умножений и делений, то есть порядка <tex>O(\frac{m^3}{3})</tex> операций.  | ||
| + | |||
| + | Условия, при которых метод выдает точное решение, на практике не выполнимы - неизбежны как ошибки входных данных, так и ошибки округления.  | ||
| + | Тогда встает вопрос: насколько точное решение можно получить, используя метод Гаусса, насколько метод корректен?  | ||
| + | Определим устойчивость решения относительно входных параметров. Наряду с исходной системой {{eqref|1}} рассмотрим возмущенную систему:  | ||
| + | <center><tex>(A + \delta A)(x + \delta x)=b + \delta b</tex></center>  | ||
| + | Пусть введена некоторая норма <tex>|| . ||</tex>.  <tex>CondA=|| A || * || A^{-1}||</tex> - называется числом обусловленности матрицы <tex>A</tex>.  | ||
| + | |||
| + | Возможны 3 случая:  | ||
| + | |||
| + | 1) <tex>\delta A = 0 , \quad \delta b \neq 0</tex> :  | ||
| + | :<tex>\frac{||\delta x||}{||x||} &\leq& Cond A \frac{||\delta b ||}{|| b ||}</tex>  | ||
| + | 2) <tex>\delta A \neq 0 , \quad \delta b = 0</tex> :  | ||
| + | :<tex><tex>\frac{||\delta x||}{||x||} \leq Cond A \frac{||\delta A ||}{|| A ||}</tex>  | ||
| + | 3) <tex>\delta A \neq 0 , \quad \delta b \neq 0</tex> :  | ||
| + | :<tex><tex>\frac{||\delta x||}{||x||} \leq \frac{Cond A}{1-Cond A\frac{||\delta A ||}{|| A ||}}(\frac{||\delta A ||}{|| A ||}+ \frac{||\delta b ||}{|| b ||})</tex>  | ||
| + | |||
| + | Число обусловленности матрицы <tex>A</tex> всегда <tex>\geq 1</tex>. Если оно велико ( <tex>Cond A \approx 10^k k \geq 2</tex> ) , то говорят, что матрица <tex>A</tex> плохо обусловлена. В этом случае малые возмущения правых частей системы {{eqref|1}}, вызванные либо неточностью задания исходных данных, либо вызванные погрешностями вычисления, существенно влияют на решение системы. Грубо говоря, если погрешность правых частей <tex>10^{-l}</tex> , то погрешность решения будет <tex>10^{-l+k}</tex> .  | ||
| + | |||
| + | Проиллюстрируем полученные результаты на следующем числовом примере:  | ||
| + | Дана система   | ||
| + | |||
| + | :<tex>\left\{\begin{array}{lcr}5x_1+7x_2 &=& 12 \\  \\ 7x_1+10x_2 &=& 17 \\ \end{array} \right.</tex>  | ||
| + | |||
| + | Она имеет решение <tex>(1, \quad 1)</tex>.  | ||
| + | |||
| + | Теперь рассмотрим возмущенную систему:  | ||
| + | |||
| + | :<tex>\left\{\begin{array}{lcr}5x_1+7x_2 &=& 12.075 \\  \\ 7x_1+10x_2 &=& 16.905 \\ \end{array} \right.</tex>  | ||
| + | |||
| + | Решением такой системы будет вектор <tex>(2.415, \quad 0)</tex>.  | ||
| + | |||
| + | При совсем малом возмущении правой части получили несоизмеримо большое возмущение решения.   | ||
| + | Объяснить такую "ненадежность" решения можно тем, что матрица <tex>A</tex> почти вырожденная: прямые, соответствующие двум уравнениям, почти совпадают, что видно на графике:  | ||
| + | |||
| + | [[Изображение:Слау.jpg|thumb|Геометрическое представление системы двух линейных алгебраических уравнений, которая является почти вырожденной. Прямые, соответствующие двум уравнениям, почти совпадают.]]  | ||
| + | |||
| + | Такой результат можно было предвидеть в силу плохой обусловленностью матрицы <tex>A = \left( \begin{array}{ccc} 5 & 7\\ \\ 7 & 10 \end{array}\right)</tex> :  | ||
| + | <tex>Cond A = 17^2</tex>  <ref>Здесь и далее в числовых примерах будем рассматривать метрику <tex>||.||_1</tex> : <tex>||x||_1=\sum_{i=1}^n | x_i |, \quad || A ||_1 = \max_{j} \left( \sum_{i=1}^n | a_{ij} |\right)</tex></ref>  | ||
| + | |||
| + | Вычисление <tex>Cond A </tex> является достаточно сложным, сравнимо с решением всей системы, поэтому для оценки пограшности применяются более грубые, но простые в реализации методы.  | ||
== Способы оценки ошибок ==  | == Способы оценки ошибок ==  | ||
Версия 20:00, 4 декабря 2008
Содержание | 
Постановка задачи
Дана система линейных алгебраических уравнений (СЛАУ), состоящая из  уравнений с 
 неизвестными :
Предполагается, что существует единственное решение системы, то есть  .
В данной статье будут рассмотрены причины погрешности, возникающей во время решения системы с помощью метода Гаусса, способы выявления и ликвидации(уменьшения) этой погрешности.
Описание метода
Процесс решения системы линейных уравнений
по методу Гаусса состоит из 2х этапов:
-  Прямой ход
- Система (2) приводится к треугольному виду
 
 
-  1. Предполагаем, что 
. Тогда первое уравнение системы (2) делим на коэффициент
, в результате получаем уравнение
 
-  1. Предполагаем, что 
 
- Затем из каждого из остальных уравнений вычитается первое уравнение, умноженное на соответствующий коэффициент 
. В результате уравнения преобразуются к виду:
 
- Затем из каждого из остальных уравнений вычитается первое уравнение, умноженное на соответствующий коэффициент 
 
-  2. В предположении, что 
, делим второе уравнение на коэффициент
и исключаем неизвестное
из всех последующих уравнений и т.д.
 - 3. Получаем систему уравнений с треугольной матрицей:
 
-  2. В предположении, что 
 
-  Обратный ход
- Непосредственное определение неизвестных
 
 
-  1. Из 
го уравнения системы (3) определяем
 -  2. Из 
го - определяем
и т.д.
 
-  1. Из 
 
Анализ метода
Данный метод относится к классу прямых методов решения системы уравнений, а это значит, что за конечное число шагов можно получить точное решение, при условии, что входные данные ( матрица  и правая часть уравнения - 
) заданы точно и вычисление ведется без округлений.
Для получения решения требуется 
 умножений и делений, то есть порядка 
 операций.
Условия, при которых метод выдает точное решение, на практике не выполнимы - неизбежны как ошибки входных данных, так и ошибки округления. Тогда встает вопрос: насколько точное решение можно получить, используя метод Гаусса, насколько метод корректен? Определим устойчивость решения относительно входных параметров. Наряду с исходной системой (1) рассмотрим возмущенную систему:
Пусть введена некоторая норма .  
 - называется числом обусловленности матрицы 
.
Возможны 3 случая:
1)  :
2)  :
3)  :
Число обусловленности матрицы  всегда 
. Если оно велико ( 
 ) , то говорят, что матрица 
 плохо обусловлена. В этом случае малые возмущения правых частей системы (1), вызванные либо неточностью задания исходных данных, либо вызванные погрешностями вычисления, существенно влияют на решение системы. Грубо говоря, если погрешность правых частей 
 , то погрешность решения будет 
 .
Проиллюстрируем полученные результаты на следующем числовом примере: Дана система
Она имеет решение .
Теперь рассмотрим возмущенную систему:
Решением такой системы будет вектор .
При совсем малом возмущении правой части получили несоизмеримо большое возмущение решения. 
Объяснить такую "ненадежность" решения можно тем, что матрица  почти вырожденная: прямые, соответствующие двум уравнениям, почти совпадают, что видно на графике:
Такой результат можно было предвидеть в силу плохой обусловленностью матрицы  :
  [1]
Вычисление  является достаточно сложным, сравнимо с решением всей системы, поэтому для оценки пограшности применяются более грубые, но простые в реализации методы.
Способы оценки ошибок
Улучшение метода исключения Гаусса
Выбор главного элемента
Итеративное улучшение результата
Программа, реализующая метод на C++
Рекомендации программисту
Список литературы
- Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков Численные методы
 

