Метод Гаусса решения СЛАУ

Автор работы: Пользователь скрыл имя, 21 Марта 2013 в 14:01, курсовая работа

Описание работы

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

Содержание работы

ВВЕДЕНИЕ
1. ПОСТАНОВКА ЗАДАЧИ
2. МАТЕМАТИЧЕСКИЕ И АЛГОРИТМИЧЕСКИЕ ОСНОВЫ РЕШЕНИЯ ЗАДАЧИ
2.1 ОПИСАНИЕ МЕТОДА
2.2 АЛГОРИТМ
3. ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ И БЛОК-СХЕМЫ РЕШЕНИЯ ЗАДАЧИ
4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЕШЕНИЯ ЗАДАЧИ
5. ПРИМЕР ВЫПОЛНЕНИЯ ПРОГРАММЫ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

Файлы: 12 файлов

2. Содержание.doc

— 26.50 Кб (Скачать файл)

3. Введение.doc

— 27.50 Кб (Просмотреть файл, Скачать файл)

4.1 Постановка задачи.doc

— 35.50 Кб (Просмотреть файл, Скачать файл)

4.2 Мат. и алг. основы решения задачи.doc

— 63.00 Кб (Просмотреть файл, Скачать файл)

4.2 Метод Гаусса.doc

— 44.50 Кб (Скачать файл)

2. Математические  и алгоритмические  основы решения  задачи

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

Задача поиска решений  системы линейных уравнений имеет  не только самостоятельное значение, но часто является составной частью алгоритма решения многих нелинейных задач. Основные методы решения СЛУ:

- метод Гаусса;

- метод обращения матрицы;

- итерационные методы.

Матрица A с элементами aij называется ступенчатой, если она обладает следующими двумя свойствами:

  1. если в матрице есть нулевая строка, то все строки ниже нее также нулевые;
  2. пусть aij не равное 0 -- первый ненулевой элемент в строке с индексом i, т.е. элементы ail = 0 при l < j. Тогда все элементы в j-м столбце ниже элемента aij равны нулю, и все элементы левее и ниже aij также равны нулю: akl = 0 при k > i и l =< j.

Ступенчатая матрица  выглядит так:

Здесь тёмными квадратиками отмечены первые ненулевые элементы строк матрицы. Белым цветом изображаются нулевые элементы, серым цветом - произвольные элементы.

Алгоритм Гаусса использует элементарные преобразования матрицы двух типов.

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

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

Метод Гаусса в математическом варианте состоит в следующем:

  1. ищем сначала ненулевой элемент в первом столбце. Если все элементы первого столбца нулевые, то переходим ко второму столбцу, и так далее. Если нашли ненулевой элемент в k-й строке, то при помощи элементарного преобразования первого рода меняем местами первую и k-ю строки, добиваясь того, чтобы первый элемент первой строки был отличен от нуля;
  2. используя элементарные преобразования второго рода, обнуляем все элементы первого столбца, начиная со второго элемента. Для этого от строки с номером k вычитаем первую строку, умноженную на коэффициент ak1/a11 .
  3. переходим ко второму столбцу (или j-му, если все элементы первого столбца были нулевыми), и в дальнейшем рассматриваем только часть матрицы, начиная со второй строки и ниже. Снова повторяем пункты 1) и 2) до тех пор, пока не приведем матрицу к ступенчатому виду.

Программистский вариант  метода Гаусса имеет три отличия  от математического:

  1. индексы строк и столбцов матрицы начинаются с нуля, а не с единицы;
  2. недостаточно найти просто ненулевой элемент в столбце. В программировании все действия с вещественными числами производятся приближенно, поэтому можно считать, что точного равенства вещественных чисел вообще не бывает. Некоторые компиляторы даже выдают предупреждения на каждую операцию проверки равенства вещественных чисел. Поэтому вместо проверки на равенство нулю числа aij следует сравнивать его абсолютную величину ij‌ с очень маленьким числом ε (например, ε = 0.00000001). Если ij‌=< ε, то следует считать элемент aij нулевым;
  3. при обнулении элементов j-го столбца, начиная со строки i + 1, мы к k-й строке, где k > i, прибавляем i-ю строку, умноженную на коэффициент r = -akj/aij :

Такая схема работает нормально только тогда, когда коэффициент r по абсолютной величине не превосходит единицы. В противном случае, ошибки округления умножаются на большой коэффициент и, таким образом, экспоненциально растут. Математики называют это явление неустойчивостью вычислительной схемы. Если вычислительная схема неустойчива, то полученные с ее помощью результаты не имеют никакого отношения к исходной задаче. В нашем случае схема устойчива, когда коэффициент r = -akj/aij не превосходит по модулю единицы. Для этого должно выполняться неравенство Отсюда следует, что при поиске разрешающего элемента в j-м столбце необходимо найти не первый попавшийся ненулевой элемент, а максимальный по абсолютной величине. Если он по модулю не превосходит ε, то считаем, что все элементы столбца нулевые; иначе меняем местами строки, ставя его на вершину столбца, и затем обнуляем столбец элементарными преобразованиями второго рода.

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

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

 

Разделим обе части 1–го уравнения на a11 ¹ 0, затем: 1) умножим на а21 и вычтем из второго уравнения 2) умножим на а31 и вычтем из третьего уравнения и т.д. Получим:, где d1j = a1j/a11, j = 2, 3, …, n+1. dij = aij – ai1d1j i = 2, 3, … , n; j = 2, 3, … , n+1. Далее повторяем эти же действия для второго уравнения системы, потом – для третьего и т.д.




4.2.2 Алгоритм решения.doc

— 108.50 Кб (Просмотреть файл, Скачать файл)

4.3 Блок-схема.doc

— 29.50 Кб (Просмотреть файл, Скачать файл)

4.4 Метод Гаусса на С++.doc

— 29.00 Кб (Просмотреть файл, Скачать файл)

4.5 Пример выполнения программы.doc

— 23.50 Кб (Просмотреть файл, Скачать файл)

5. Заключение.doc

— 28.50 Кб (Просмотреть файл, Скачать файл)

6. Список использованных источников и литературы.doc

— 27.00 Кб (Просмотреть файл, Скачать файл)

Блок-схема.gif

— 14.12 Кб (Скачать файл)

Информация о работе Метод Гаусса решения СЛАУ