
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •1. Название тем лекционных занятий, их содержание, объем в часах Наименование тем, их содержание
- •2. Перечень тем ипр
- •Перечень тем контрольных работ
- •4. Литература
- •4.1 Основная
- •4.2 Дополнительная
- •5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •6. Учебно-методическая карта дисциплины содержание дисциплины
- •Теоретический раздел Вступление
- •Дискретная и вычислительная математика
- •Часть 1. Вычислительная математика Математическое моделирование и вычислительный эксперимент
- •1 Решение систем линейных алгебраических уравнений
- •1.1 Точные методы
- •1.1.1 Метод Гаусса
- •1.1.2 Связь метода Гаусса с разложением матрицы на множители. Теорема об lu разложении
- •Теорема об lu разложении
- •1.1.3 Метод Гаусса с выбором главного элемента
- •1.1.4 Метод Холецкого (метод квадратных корней)
- •1.2 Итерационные методы решений систем алгебраических уравнений
- •1.2.1 Метод Якоби (простых итераций)
- •1.2.2 Метод Зейделя
- •1.2.3 Матричная запись методов Якоби и Зейделя
- •1.2.4 Метод Ричардсона
- •1.2.5 Метод верхней релаксации (обобщённый метод Зейделя)
- •1.2.6 Сходимость итерационных методов
- •2 Плохо обусловленные системы линейных алгебраических уравнений
- •2.1 Метод регуляризации для решения плохо обусловленных систем
- •2.2 Метод вращения (Гивенса)
- •3 Решение нелинейных уравнений
- •3.1 Метод простых итераций
- •3.1.1 Условия сходимости метода
- •3.1.2 Оценка погрешности
- •3.2 Метод Ньютона
- •3.2.1 Сходимость метода
- •4 Решение проблемы собственных значений
- •4.1 Прямые методы
- •4.1.1 Метод Леверрье
- •4.1.2 Усовершенствованный метод Фадеева
- •4.1.3 Метод Данилевского
- •4.1.4 Метод итераций определения первого собственного числа матрицы
- •5 Задача приближения функции
- •5.1 Интерполяционный многочлен Лагранжа
- •5.1.1 Оценка погрешности интерполяционного многочлена
- •5.2 Интерполяционные полиномы Ньютона
- •5.2.1 Интерполяционный многочлен Ньютона для равноотстоящих узлов
- •5.2.2 Вторая интерполяционная формула Ньютона
- •5.3 Интерполирование сплайнами
- •5.3.1 Построение кубического сплайна
- •5.3.2 Сходимость процесса интерполирования кубическими сплайнами
- •5.4 Аппроксимация функций методом наименьших квадратов
- •6 Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений и систем дифференциальных уравнений
- •6.1 Семейство одношаговых методов решения задачи Коши
- •6.1.1 Метод Эйлера (частный случай метода Рунге-Кутта)
- •6.1.2 Методы Рунге-Кутта
- •6.2 Многошаговые разностные методы решения задачи Коши для обыкновенных дифференциальных уравнений
- •6.2.1 Задача подбора числовых коэффициентов aк , bк
- •6.2.2 Устойчивость и сходимость многошаговых разностных методов
- •6.2.3 Примеры m-шаговых разностных методов Адамса для различных m
- •6.3 Численное интегрирование жестких систем обыкновенных дифференциальных уравнений
- •6.3.1 Понятие жесткой системы оду
- •6.3.2 Некоторые сведения о других методах решения жестких систем
- •6.3.2.1 Методы Гира
- •6.3.2.2 Метод Ракитского(матричной экспоненты) решения систем оду
- •6.4 Краевые задачи для обыкновенных дифференциальных уравнений
- •6.5 Решение линейной краевой задачи
- •6.6 Решение двухточечной краевой задачи для линейного уравнения второго порядка сведением к задаче Коши
- •6.7 Методы численного решения двухточечной краевой задачи для линейного уравнения второго порядка
- •6.7.1 Метод конечных разностей
- •6.7.2 Метод прогонки (одна из модификаций метода Гаусса)
- •7 Приближенное решение дифференциальных уравнений в частных производных
- •7.1 Метод сеток для решения смешанной задачи для уравнения параболического типа (уравнения теплопроводности)
- •7.2 Решение задачи Дирихле для уравнения Лапласа методом сеток
- •7.3 Решение смешанной задачи для уравнения гиперболического типа методом сеток
- •Часть 2. Дискретная математика
- •1. Основные Элементы теории множеств
- •1.1 Элементы и множества
- •1.2 Задание множеств. Парадокс Рассела
- •1.3 Операции над множествами
- •1.4 Булеан множества
- •1.5 Представление множеств в эвм
- •Разбиения и покрытия
- •2 Отношения и функции
- •2.1 Прямое произведение множеств
- •Элементы комбинаторики
- •Теория конфигураций и теория перечисления
- •Размещения
- •Сочетания
- •3.1 Перестановки и подстановки
- •4 Элементы математической логики
- •5 Конечные графы и сети Основные определения
- •5.1 Матрицы графов
- •Матрица смежности Списки инцидентности
- •5.2 Достижимость и связность
- •5.3 Эйлеровы и гамильтоновы графы
- •5.4 Деревья и циклы
- •5.5 Алгоритмы поиска пути
- •Двунаправленный поиск
- •Поиск по первому наилучшему совпадению
- •Алгоритм Дейкстры
- •АлгоритмА*
- •Остовное дерево
- •Матрица Кирхгофа
- •5.6 Конечные автоматы
- •5.6 Элементы топологии
- •5.7 Метрическое пространство
- •Указания по выбору варианта
- •Контрольная работа № 2 Общие сведения
- •Квадратурная формула Гаусса
- •Указания по выбору варианта
- •Индивидуальные практические работы Индивидуальная практическая работа № 1 Общие сведения
- •Интерполяционный полином Лагранжа
- •Аппроксимация функций с помощью кубического сплайна
- •Приближение формулами Ньютона
- •Аппроксимация функций методом наименьших квадратов
- •Индивидуальная практическая работа № 2
Остовное дерево
(Spanning tree)
Остовным деревом связного графа называется граф, полученный из исходного путём удаления всех циклов. В остовное дерево входят все вершины исходного графа. Рёбра остовного дерева соединяют вершины таким образом, что в графе нет циклов, т.е. из любой вершины нельзя попасть в саму себя не пройдя какое-либо из рёбер дважды. Остовное дерево также иногда называют покрывающим деревом, остовом или скелетом графа.
Любое
остовное дерево в графе с
вершинами
содержит
ребро.
Остовное
дерево может быть построено практически
любым алгоритмом обхода графа, например
поиском в глубину или поиском в ширину
рассмотренными ранее. Остовные деревья,
построенные при обходе графа с помощью
алгоритма Дейкстры, начиная от вершины
,
обладают тем свойством, что кратчайший
путь в графе из
до
любой другой вершины - это единственный
путь до этой вершины в построенном
остовном дереве. Существует также
несколько параллельных и распределённых
алгоритмов нахождения остовного дерева.
Как практический пример распределённого
алгоритма можно привести протокол STP.
Если каждому ребру графа присвоен вес (длина, стоимость и т. п.), то нахождением оптимального остовного дерева, которое минимизирует сумму весов входящих в него рёбер, занимаются многочисленные алгоритмы нахождения минимального остовного дерева.
Матрица Кирхгофа
Для работы с остовными деревьями в теории графов графы пряно обозначать в виде матрицы Кирхгофа. Благодаря представлению графа в таком виде, матрица Кирхгофа может использоваться вместе с теоремой Кирхгофа для расчета количества остовных деревьев в графе.
Матрица
Кирхгофа это комбинация матрицы степеней
вершин и матрицы смежности L=A+B.
Матрица степеней вершин. А это матрица
размерностью
где
на главной диагонали расположены степени
вершин графа (определение степени
вершины графа дано в начале раздела).
Матрица степеней вершин для данного графа будет иметь вид :
Матрица смежности для данного графа будет иметь вид (заметим, что для смежных вершин используется обозначение -1, а не 1 как в классическом варианте матрицы смежности, в этом особенность матрицы Кирхгофа):
Матрица Кирхгофа будет иметь вид:
В общем виде матрица Кирхгофа записывается как:
Теорема:
Пусть
— связный помеченный граф с матрицей
Кирхгофа
.
Все алгебраические дополнения матрицы
Кирхгофа
равны между собой и их общее значение
есть число остовных деревьев графа
.
Пример. Дан граф , рассчитаем количество остовных деревьев графа:
Матрица Кирхгофа для данного графа будет иметь вид:
Найдём алгебраическое дополнение
На основе данного графа может быть получено 3 остовных дерева:
5.6 Конечные автоматы
(Finite-state machines)
Конечный автомат (Finite-state machines, или сокращённо FSM) – это машина или программа, содержащая конечное число состояний, которые могут изменяться от полученных входных данных.
Схематически конечный автомат удобно представлять в виде графа. Тогда состоянию конечного автомата будут соответствовать окружности, т. е. узлы вершины графа, а входным данным -- линии со стрелками, дуги графа.
Один из узлов автомата всегда соответствует начальному состоянию машины или программы. На диаграмме это ребро, входящее в узел и не соединённое с другими узлами графа. Также конечный автомат имеет заключительное состояние, которое соответствует нормальному завершению работы программы или машины. Для перехода из одного состояния в другое автомат должен “принять” определённую строку символов (слово), заданных во входном алфавите.
Определения:
Символ — любой атомарный блок данных, который может производить эффект на машину.
Слово — строка символов, создаваемая с помощью операции конкатенации.
Входной алфавит — конечный набор различных символов.
Язык — множество слов, формируемых символами данного алфавита. Может быть конечным или бесконечным.
С математической точки зрения автомат состоит из 4 основных элементов:
Q — множество состояний (states) конечного автомата Σ — входной алфавит языка (alphabet), который понимает автомат.
δ — функция перехода (transitions), позволяющей автомату перейти в новое состояние.
S0 — начальное состояние конечного автомата (start state)
Диаграмма состояний конечного автомата является частным случаем другой, более общей структуры, называемой ориентированным графом или диграфом. Ориентированные графы очень широко применяются в программировании при разработке динамических структур данных и сложных алгоритмов поиска.
Конечные автоматы широко используются при разработке синтаксических и лексических анализаторов, а также для построения событийно-ориетированный приложений, т.е. приложений использующих графический интерфейс пользователя (GUI), например, программы Windows Forms или Windows Presentation Foundation (WPF) для платформы .NET.
Удобным инструментом для проектирования и разработки конечных автоматов является ещё одна технология .NET: Windows Workflow Foundation (WWF).Особенно широко она используется при проектировании различных бизнес-процессов, которые могут пребывать в различной степени готовности. Подробнее с этой замечательной технологией можно познакомиться в книге Э. Троелсена “Язык программирования С# 2010 и платформа .NET 4”.