Автор работы: Пользователь скрыл имя, 21 Ноября 2013 в 09:50, отчет по практике
Моя отчетная работа посвящена вычислительной практике. Цель данной практики – ознакомление студентов с базовыми понятиями вычислительной математики, проверка полученных знаний студентом за 1 курс в области программирования, а также умение использовать их на практике. В течении двух недель мы изучали алгоритмы: их историю, оптимизация алгоритма и так далее. По-моему учебная практика была достаточно сложной, но в то же время полезной, так как мы наглядно увидели применение языка Си в математических задачах, а точнее в линейной алгебре.
Введение
1.Основные алгоритмы
1.1.История алгоритмов
1.2.Реализация на С
1.3.Быстродействие
Вывод
Сначала мы находим ту строку где первый элемент является максимальным в первом столбце. После переставляем ее на первое место, разделив на первый элемент. Далее отнимаем первую строку из всех остальных умноженную на соответствующий коэффициент.
Далее делаем тоже самое с остальными столбцами, начиная с диагональных элементов, т.е. мы как бы уменьшаем размер матрицы.
Достоинства метода
• Для матриц ограниченного размера менее трудоёмкий по сравнению с другими методами.
• Позволяет однозначно установить, совместна система или нет, и если совместна, найти её решение.
• Позволяет найти максимальное
число линейно независимых
Неоптимальность метода Гаусса. В 1969 году Штрассен доказал, что большие матрицы можно перемножить за время Θ(nlog2 7) = Θ(n2.81). Отсюда вытекает, что обращение матриц и решение СЛАУ можно осуществлять алгоритмами асимптотически более быстрыми, чем метод Гаусса. Таким образом, для больших СЛАУ метод Гаусса не оптимален по скорости.
4.Нахождение обратной матрицы.
Обра́тная ма́трица — такая матрица A−1, при умножении на которую, исходная матрица A даёт в результате единичную матрицу E:
Квадратная матрица обратима тогда и только тогда, когда она невырожденная, то есть её определитель не равен нулю. Для неквадратных матриц и вырожденных матриц обратных матриц не существует. Однако возможно обобщить это понятие и ввести псевдообратные матрицы, похожие на обратные по многим свойствам.
Ниже представлен пседокод программы на Си, осуществляющей нахождение обратной матрицы.
Описание: Алгоритм весьма прост. Изначально матрица В – единичная матрица. После приводим матрицу А к ступенчатому виду как было показано в программе Метод Гаусса, также делая соответствующие преобразования в матрице В. Далее находим элементы массива х.
5.Решение СЛАУ.
АХ=В; Х=А-1В.
Приведем псевдо код программы на Си.
Описание: Сначала находим обратную матрицу к А, после умножаем ее на вектор В и находим вектор Х.
6. LU – разложение.
LU- разложение — представление матрицы A в виде произведения двух матриц, , где L—нижняя треугольная матрица, а U— верхняя треугольная матрица. LU-разложение еще называют LU-факторизацией.
LU-разложение используется
Найти матрицы и можно следующим образом (выполнять шаги следует строго по порядку, так как следующие элементы находятся с использованием предыдущих):
1.
2.
Для
1.
2.
В итоге мы получим матрицы — L и U.
Вот псевдокод программы.
7. LUX=B.
Решение систем линейных уравнений. LU-разложение может быть использовано для решения системы линейных уравнений
где A— матрица коэффициентов системы, x— вектор неизвестных величин системы, b — вектор правых частей системы.
Если известно LU-разложение матрицы , , исходная система может быть записана как
Эта система может быть решена в два шага. На первом шаге решается система
Поскольку L — нижняя треугольная матрица, эта система решается непосредственно прямой подстановкой.
На втором шаге решается система
Поскольку U — верхняя треугольная матрица, эта система решается непосредственно обратной подстановкой.
Ниже предоставлен псевдокод программы.
8. Применение метода Гаусса к
ленточно – диагональным
Если матрица А имеет ленточно – диагональный вид, то программа выглядит так:
Как видно из программы, имея дополнительные сведения о матрице А, можно написать программу, которая будет работать гораздо быстрее, чем программа обычного Метода Гаусса.
Вывод:
Учебно – вычислительная практика позволила нам применить знания полученные в течении года по программированию при решении математических задач, в частности задач из линейной алгебры. Также на практике мы получали новые знания в области программирования.
Информация о работе Осуществление алгоритмов линейной алгебры