07 - Линейная алгебра.ppt
- Количество слайдов: 45
Алгоритмы и структуры данных. Алгоритмы линейной алгебры
Содержание 1. Матричная алгебра 2. Алгоритмы с матрицами 3. Матрицы специального вида
1. Матричная алгебра
1. Матричная алгебра Матрица (matrix) представляет собой прямоугольный массив чисел. Будем использовать заглавные буквы для обозначения матриц, а их элементы обозначаются соответствующими строчными буквами с нижними индексами. Множество всех матриц размером mхn, элементами которых являются действительные числа, обозначается как Rmxn. В общем случае множество матриц размером mхn, элементы которых принадлежат множеству S, обозначается как Smxn.
1. Основные виды матриц • Диагональная матрица (diagonal matrix) обладает тем свойством, что аij = 0 при i<>j. Поскольку все недиагональные элементы такой матрицы равны 0, диагональную матрицу можно определить путем перечисления ее элементов вдоль диагонали:
1. Основные виды матриц • Единичная матрица (identity matrix) In размером nхn представляет собой диагональную матрицу, все диагональные элементы которой равны 1:
1. Основные виды матриц • Трехдиагональная матрица (tridiagonal matrix) T, элементы матрицы обладают тем свойством, что если |i — j| > 1, то aij = 0.
1. Основные виды матриц • Верхнетреугольной матрицей (upper-triangular matrix) U называется матрица, у которой все элементы ниже диагонали равны 0 (uij = 0 при i > j):
1. Основные виды матриц • Матрица перестановки (permutation matrix) P имеет в каждой строке и столбце ровно по одной единице, а на всех прочих местах располагаются нули. Такая матрица называется матрицей перестановки, потому что умножение вектора х на матрицу перестановки приводит к перестановке элементов вектора.
1. Основные виды матриц • Симметричная матрица (symmetric matrix) А удовлетворяет условию
2. Алгоритмы с матрицами
2. Алгоритмы с матрицами Основные операции с матрицами: • Перемножение • Транспонирование • Разложение • Обращение
2. 1 Умножение матриц. Классический алгоритм: Пусть есть 2 квадратные матрицы, размером nxn
2. 1 Умножение матриц.
2. 1 Умножение матриц. Сложность этого алгоритма O(n^3)
2. 1 Умножение матриц. Утверждение Штрассена: две матрицы размером 2 x 2 можно перемножить используя 7 умножений и 18 сложенийвычитаний
2. 1 Умножение матриц. Сначала вычислим произведения
2. 1 Умножение матриц. Элементы матрицы C считаются по формулам
2. 1 Умножение матриц. Алгоритм Штрассена
2. 1 Умножение матриц. Алгоритм Штрассена Оценка сложности O(n^log 7), примерно O(n^2. 81)
2. 1 Умножение матриц. Алгоритм Штрассена редко применяется на практике по следующим причинам. 1. Постоянный множитель, скрытый во времени работы алгоритма Штрассена, превышает постоянный множитель во времени работы простого алгоритма умножения. 2. В случае разреженных матриц имеются специализированные более эффективные методы умножения. 3. Алгоритм Штрассена не настолько численно устойчив, как простой алгоритм умножения матриц. 4. Построение подматриц на каждом шаге рекурсии приводит к повышенному расходу памяти.
2. 1 Умножение матриц. Блочный алгоритм.
2. 1 Умножение матриц.
2. 1 Умножение матриц. Блочный алгоритм. Оценка сложности алгоритма O(n^3) Работает быстрее чем классический. В зависимости от размера блока. Ускорение может достигать 2.
2. 2 Транспонирование матрицы Пусть есть матрица размером mxn, разобьем ее на 2 подматрицы по большей размерности.
2. 3 Разложение матрицы Пусть есть матрица размером nxn, тогда матрицу A можно представить в виде A = L*U*P, где • L — единичная нижне-треугольная матрица, • U — верхне-треугольная матрица, • Р — матрица перестановки. Матрицы L, U и Р, называются LUP-разложением (LUP decomposition) матрицы А.
2. 3 Разложение матрицы Вычисление LU-разложения
2. 3 Разложение матрицы Рекурсивный алгоритм Если n = 1, задача решена, поскольку мы можем выбрать L = I 1 и U = А. При n > 1 разобьем А на четыре части:
2. 3 Разложение матрицы Рекурсивный алгоритм.
2. 3 Разложение матрицы Рекурсивный алгоритм.
2. 3 Разложение матрицы Математические основы LUP-разложения аналогичны LUразложению. Нам дана невырожденная матрица А размером nхn, и нам требуется найти матрицу перестановки Р, единичную нижне-треугольную матрицу L и верхне-треугольную матрицу U такие, что Р*A = LU.
2. 3 Разложение матрицы Временная сложность. Для матрицы A, размером nxn, сложность LUP -разложения O(n^2. 81)
2. 4 Решение систем линейных уравнений Есть система линейных уравнений
2. 4 Решение систем линейных уравнений Запишем ее в матричной форме Или Ax=b
2. 4 Решение систем линейных уравнений Матрица может быть разложена, тогда получаем L*U*x = P*b Сводится к решению 2 треугольных систем. Ly = Pb, Ux = y.
2. 4 Прямая подстановка
2. 4 Обратная подстановка
2. 4 Решение систем линейных уравнений Прямая и обратная подстановки Временная сложность: Для LUP-разложения, систему можно решить за время O(n^2)
2. 5 Обращение матриц С помощью LUP-разложения. Имея LUP-разложение матрицы А, мы можем решить n систем линейных уравнений с одной и той же матрицей А за время O(n^2). Уравнение A*X = In можно рассматривать как множество из n различных систем линейных уравнений вида Ах = b.
2. 5 Обращение матриц С помощью LUP-разложения. Обозначим через xi i-ый столбец X, и вспомним, что i-ым столбцом матрицы In является единичный вектор еi. Используем LUP-разложение для решения набора уравнений Аxi = еi Задача обращения матрицы решается за время O(n^3).
3. Матрицы специального вида
3. 1 Разреженные матрицы • Матрица, имеющая небольшой процент ненулевых элементов называется разреженной
3. 1 Хранение • Старый Йельский формат V хранит ненулевые элементы, R – номер позиции в массиве V, C – номера столбцов ненулевых элементов • Новый Йельский формат V – сначала записывается диагональ, потом все остальное, R и C записываются в один массив
3. 1 Старый формат
3. 1 Новый формат
07 - Линейная алгебра.ppt