Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интерполирование функций и решение систем линейных алгебраических уравнений.DOC
Скачиваний:
40
Добавлен:
01.05.2014
Размер:
833.54 Кб
Скачать

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

Методы решения систем линейных алгебраических уравнений делятся на две группы. К первой группе принадлежат так называемые точные,или прямые,методы - алгоритмы, позволяющие получить решение системы за конечное число арифметических действий. Сюда относятся известное правило Крамера нахождения решения с помощью определителей, метод Гаусса (метод исключений) и метод прогонки[13]. Правило Крамера при реализации на ЭВМ не применяется ввиду значительно большего по сравнению с методом Гаусса числа арифметических действий.Метод Гаусса используется при решении систем до порядка 103. Метод прогонки применяется для решения важного класса специальных систем линейных уравнений с трехдиагональной матрицей, часто возникающей в практических приложениях.

Вторую группу составляют приближенные методы, в частности, итерационные методы решения систем линейных алгебраических уравнений, позволяющие решать системы до порядка 106 [1], [4], [7], [13].

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

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

Рассматривается система линейных уравнений n-го порядка

(2.1)

. . . . .

,

что в векторном виде записывается как .

Суть метода исключения по главным элементам (метод Гаусса) заключается в следующем. Находится наибольший по абсолютной величине коэффициент . Для исключения èçi-го уравнения необходимо умножитьk-е уравнение на и вычесть его изi-го уравнения, после чего процесс повторяется для исключения другого неизвестного из оставшихся -1 уравнений и т. д. В результате система (2.1) приводится к треугольному виду

(2.2)

. . . . . .

,

из которого легко находятся неизвестные . Процесс приведения системы к виду (2.2) называется прямым ходом, а нахождение неизвестных -обратным ходом метода Гаусса.

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

Мерой обусловленности матрицы называют величину , ãäå - норма матрицы . Мера обусловленности равна максимально возможному коэффициенту усиления относительной погрешности от правой части к решению системы (2.1). Если матрица симметричная и выбрана вторая норма, то мера обусловленности может быть найдена как

,

ãäå -i-е собственное число матрицы . Åñëè большая, то матрица (система (2.1)) называется плохо обусловленной, в противном случае - хорошо обусловленной.

Лабораторная работа № 11

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

1) с помощью преподавателя определить систему уравнений, которую нужно решить;

2) для решения системы уравнений разработать программу на языке C, использующую подпрограмму-функциюGAUSS из файлаGAUSS.CPP. Данная функция имеет следующие параметры:

- a - матрица коэффициентов системы уравнений размера , òèï ;

- - вектор свободных членов размера , òèï ;

- - выходной вектор результата решения размера , òèï ;

- - размер системы (матрицы aи вектора свободных членов ), òèï .

В разрабатываемой программе должна быть описана константа nmax, равная максимальным размерам используемых матриц и векторов. ФункцияGAUSSв качестве значения типа возвращает:

а) 0 - в случае нормального завершения процесса вычисления;

б) 1 - в случае вырожденности матрицыà;

в) 2 - åñëè ;

г) 3 - åñëè .

Провести вычисления с использованием разработанной программы и исследовать обусловленность задачи с использованием пакета Matlab, при этом для определения числа обусловленности матрицыAрекомендуется использовать функциюcond(A) [14]. Кроме того, для проверки получаемых результатов можно провести вычисления с помощью пакетовMatlabèDerive [15].