Министерство образования Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра прикладной математики
Численные методы
Группа: ПМ-12
Студент: Дуркин Д.С.
Кичаева Н.А.
2003
В данной работе мы написали программу решения СЛАУ
с помощью прямого метода, основанного на
разложении матрицы А на произведение
, где L - нижнетреугольная матрица, а U - верхнетреугольная матрица с единицами на главной
диагонали. В силу того, что исходная матрица задается в профильном формате,
алгоритм
разложения разработан для профильного
формата.
Согласно теореме о
разложении
этот метод применим только для матрицы А, все угловые миноры которой не равны
нулю. В противном случае разложение не возможно.
Алгоритм получения
разложения
имеет следующий вид:

Отсюда

Далее решим систему
с
нижнетреугольной матрицей
. Алгоритм получения
формул для прямого хода имеет вид:

Для обратного хода
, где U - верхнетреугольная матрица с
единицами на главной диагонали формулы получения вектора x
имеют вид:

В лабораторной работе также реализован метод Гаусса с выбором ведущего элемента для плотных матриц.

Подсчитаем количество действий, затрачиваемых для решения СЛАУ методом Гаусса.

Посчитаем
сначала количество умножений для вычисления
.

Теперь посчитаем количество действий для
вычисления коэффициентов
.
![]()

В итоге получаем:

Замечание:
Для тех коэффициентов, про которые заранее известно, что они обнуляются, действия не учитывались!
Количество суммирований равно количеству умножений.

Таким образом, при больших
число действий
равно приблизительно
.
Теперь, исходя из описанных выше формул, посчитаем
количество действий, затрачиваемых для решения СЛАУ
методом
- разложения:
·
-разложение:
1. Суммирование
Посчитаем сначала для
диагональных элементов нижнетреугольной матницы, т.е. для
.

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

В итоге получаем
суммирований.
2. Умножение
Поскольку при данном алгоритме
разложения количество суммирований
совпадает с количеством умножений, то мы имеем
умножений.
3.Деление
В данном случае деление требуется
только для вычисления элементов верхнетреугольной матрицы
, причем для каждого
требуется ровно одно деление на
диагональный элемент, то количество делений совпадает с количеством ненулевых
элементов матрицы
( исключая диагональные элементы
).

· Вычисление
вектора y(
):
1. Суммирование
Для каждого i
требует
(i-1) суммирований, т.е.

2. Умножение
Количество умножений здесь также совпадает
с количеством суммирований, поэтому мы имеем
умножений.
3.Деление
При вычислении все элементы
делятся на диагональные элементы матрицы
по одному разу, отсюда количество делений
совпадает с количеством элементов
, т.е.
.
· Вычисление
вектора x(![]()
):
1. Суммирование
Для каждого i
требует
тоже (i-1) суммирований, т.е.

2. Умножение
Количество умножений-
.
В итоге мы имеем, что
количество операций умножений, равно как и операций сложения, в методе
-разложения при достаточно больших
будет
. Таким образом, подобных операций в методе
Гаусса, как видно из вычислений, приведенных выше, будет в 2 раза меньше!
Тестирование
1.Матрица с нулевым угловым минором

результат работы программы:There is no LU decomposition!
2. Матрица с нулевой диагональю

результат работы программы:There is no LU decomposition!
3. Профильная матрица с дробными элементами


результата выполнения программы:



Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.