Методы исключения Гаусса
Материал из MachineLearning.
 (→Анализ метода)  | 
				 (→Способы оценки ошибок)  | 
			||
| Строка 85: | Строка 85: | ||
== Способы оценки ошибок ==  | == Способы оценки ошибок ==  | ||
| + | |||
| + | :1) <u>'''Контрольная сумма:'''</u> обычно применяется для предупреждения случайных погрешностей в процессе вычисления без помощи компьютеров.  | ||
| + | |||
| + | Составляем контрольный столбец <tex>a_{n+1} = \left( a_{1,n+1}, \ldots, a_{n, n+1}\right)</tex>, состоящий из контрольных элементов системы:  | ||
| + | :<tex>a_{i, n+1} = \sum_{j=1}^n a_{i, j} + b_i</tex>  | ||
| + | |||
| + | При преобразовании уравнений над контрольными элементами производятся те же операции, что и над свободными членами уравнеий. В результате этого контрольный элемент каждого нового уравнения должен равняться сумме коэффициентов этого уравнения. Большое расхождение между ними указывает на погрешности в вычислениях или на неустойчивость алгоритма вычислений по отношению к вычислительной погрешности.  | ||
| + | |||
| + | :2) <u>'''Относительная погрешность известного решения'''</u> позволяет без существенных дополнительных затрат получить суждение о погрешности решения.  | ||
| + | |||
| + | Задается некоторый ветор <tex>z</tex> с компонентами, имеющими по возможности тот же порядок и знак, что и компоненты искомого решения <ref>Часто из-за отсутствия доплнительной информации берут <tex>z=\left(1, \ldots, 1\right)</tex></ref>. Вычисляется вектор <tex>c=Az</tex>, и на ряду с исходной системой уравнения решается система <tex>Az=c</tex>.  | ||
| + | |||
| + | Пусть <tex>x'</tex> и <tex>z'</tex> - реально получаемые решения этих систем. Суждение о погрешности <tex>x-x'</tex> искомого решения можно получить, основываясь на гипотезе: относительные погрешности при решении методом исключения систем с одной и той же матрицей и различными правыми частями, которыми являются соответственно величины <tex>\frac{||x-x'||}{||x'||}</tex> и <tex>\frac{||z-z'||}{||z'||}</tex>, отличаются не в очень большое число раз.  | ||
| + | |||
| + | :3) <u>'''Изменение масштабов'''</u> - прием, применяющийся для получения представления о реальной величине погрешности, возникающей за счет округлений при вычислениях.  | ||
| + | |||
| + | Наряду с исходной системой тем же методом решается система  | ||
| + | :<tex>\left( \alpha A\right)x' = \beta b</tex>, где <tex>\alpha</tex> и <tex>\beta</tex> - числа  | ||
| + | |||
| + | Если бы не было погрешности округления, то выполнялось бы равенство для решений исходной и масштабированной систем: <tex>x=\alpha \beta^{-1}x'</tex>. Поэтому при <tex>\alpha</tex> и <tex>\beta</tex>, не являющихся степенями двойки, сравнение векторов <tex>x</tex> и <tex>\alfa \beta^{-1}x'</tex> дает представление о величине вычислительной погрешности <ref>Например, можно взять <tex>\alfa=\sqrt{2}, \quad \beta=\sqrt{3}</tex></ref>  | ||
== Улучшение метода исключения Гаусса==  | == Улучшение метода исключения Гаусса==  | ||
Версия 17:29, 5 декабря 2008
Содержание | 
Постановка задачи
Дана система линейных алгебраических уравнений (СЛАУ), состоящая из  уравнений с 
 неизвестными :
Предполагается, что существует единственное решение системы, то есть  .
В данной статье будут рассмотрены причины погрешности, возникающей во время решения системы с помощью метода Гаусса, способы выявления и ликвидации(уменьшения) этой погрешности.
Описание метода
Процесс решения системы линейных уравнений
по методу Гаусса состоит из 2х этапов:
-  Прямой ход
- Система (2) приводится к треугольному виду
 
 
-  1. Предполагаем, что 
. Тогда первое уравнение системы (2) делим на коэффициент
, в результате получаем уравнение
 
-  1. Предполагаем, что 
 
- Затем из каждого из оставшихся уравнений вычитается первое, умноженное на соответствующий коэффициент 
. В результате система преобразуются к виду:
 
- Затем из каждого из оставшихся уравнений вычитается первое, умноженное на соответствующий коэффициент 
 
-  2. В предположении, что 
, делим второе уравнение на коэффициент
и исключаем неизвестное
из всех последующих уравнений и т.д.
 - 3. Получаем систему уравнений с треугольной матрицей:
 
-  2. В предположении, что 
 
-  Обратный ход
- Непосредственное определение неизвестных
 
 
-  1. Из 
го уравнения системы (3) определяем
 -  2. Из 
го - определяем
и т.д.
 
-  1. Из 
 
Анализ метода
Данный метод относится к классу прямых методов решения системы уравнений, а это значит, что за конечное число шагов можно получить точное решение, при условии, что входные данные ( матрица  и правая часть уравнения - 
) заданы точно и вычисление ведется без округлений.
Для получения решения требуется 
 умножений и делений, то есть порядка 
 операций.
Условия, при которых метод выдает точное решение, на практике не выполнимы - неизбежны как ошибки входных данных, так и ошибки округления. Тогда встает вопрос: насколько точное решение можно получить, используя метод Гаусса, насколько метод корректен? Определим устойчивость решения относительно входных параметров. Наряду с исходной системой (1) рассмотрим возмущенную систему:
Пусть введена некоторая норма .  
 - называется числом обусловленности матрицы 
.
Возможны 3 случая:
1)  :
2)  :
3)  :
Число обусловленности матрицы  всегда 
. Если оно велико ( 
 ) , то говорят, что матрица 
 плохо обусловлена. В этом случае малые возмущения правых частей системы (1), вызванные либо неточностью задания исходных данных, либо вызванные погрешностями вычисления, существенно влияют на решение системы. Грубо говоря, если погрешность правых частей 
 , то погрешность решения будет 
 .
Проиллюстрируем полученные результаты на следующем числовом примере: Дана система
Она имеет решение .
Теперь рассмотрим возмущенную систему:
Решением такой системы будет вектор .
При совсем малом возмущении правой части получили несоизмеримо большое возмущение решения. 
Объяснить такую "ненадежность" решения можно тем, что матрица  почти вырожденная: прямые, соответствующие двум уравнениям, почти совпадают, что видно на графике:
Такой результат можно было предвидеть в силу плохой обусловленностью матрицы  :
  [1]
Вычисление  является достаточно сложным, сравнимо с решением всей системы, поэтому для оценки пограшности применяются более грубые, но простые в реализации методы.
Способы оценки ошибок
- 1) Контрольная сумма: обычно применяется для предупреждения случайных погрешностей в процессе вычисления без помощи компьютеров.
 
Составляем контрольный столбец , состоящий из контрольных элементов системы:
При преобразовании уравнений над контрольными элементами производятся те же операции, что и над свободными членами уравнеий. В результате этого контрольный элемент каждого нового уравнения должен равняться сумме коэффициентов этого уравнения. Большое расхождение между ними указывает на погрешности в вычислениях или на неустойчивость алгоритма вычислений по отношению к вычислительной погрешности.
- 2) Относительная погрешность известного решения позволяет без существенных дополнительных затрат получить суждение о погрешности решения.
 
Задается некоторый ветор  с компонентами, имеющими по возможности тот же порядок и знак, что и компоненты искомого решения [1]. Вычисляется вектор 
, и на ряду с исходной системой уравнения решается система 
.
Пусть  и 
 - реально получаемые решения этих систем. Суждение о погрешности 
 искомого решения можно получить, основываясь на гипотезе: относительные погрешности при решении методом исключения систем с одной и той же матрицей и различными правыми частями, которыми являются соответственно величины 
 и 
, отличаются не в очень большое число раз.
- 3) Изменение масштабов - прием, применяющийся для получения представления о реальной величине погрешности, возникающей за счет округлений при вычислениях.
 
Наряду с исходной системой тем же методом решается система
, где
и
- числа
Если бы не было погрешности округления, то выполнялось бы равенство для решений исходной и масштабированной систем: . Поэтому при 
 и 
, не являющихся степенями двойки, сравнение векторов 
 и 
 дает представление о величине вычислительной погрешности [1]
Улучшение метода исключения Гаусса
Выбор главного элемента
Итеративное улучшение результата
Программа, реализующая метод на C++
Рекомендации программисту
Список литературы
- Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков Численные методы
 

