Добавить readme.md
This commit is contained in:
@@ -0,0 +1,119 @@
|
|||||||
|
План курса «Математическое моделирование»
|
||||||
|
|
||||||
|
Направление: 09.02.07 «Информационные системы и программирование»
|
||||||
|
Объём: 24 часа лекций + 48 часов практических занятий = 72 часа
|
||||||
|
Форма итоговой аттестации: зачёт
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
1. О чём этот предмет?
|
||||||
|
|
||||||
|
Математическое моделирование – это искусство переводить реальные задачи на язык математики, решать их с помощью компьютера и анализировать результаты. Для программиста это ключевой навык: любая серьёзная программа (от игры до банковской системы) использует математические модели.
|
||||||
|
|
||||||
|
Чему вы научитесь:
|
||||||
|
|
||||||
|
· строить математические модели для практических задач;
|
||||||
|
· выбирать подходящий численный метод;
|
||||||
|
· реализовывать алгоритмы вручную и на Python;
|
||||||
|
· оценивать точность и достоверность результатов.
|
||||||
|
|
||||||
|
Зачем это нужно: чтобы понимать, как работают алгоритмы внутри готовых библиотек, уметь самостоятельно создавать вычислительные модули и принимать обоснованные решения на основе данных.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
2. Темы лекций (24 часа)
|
||||||
|
|
||||||
|
№ Тема лекции (2 часа) Краткое содержание
|
||||||
|
1 Введение в математическое моделирование Понятие модели. Этапы моделирования: постановка задачи, формализация, выбор метода, реализация, анализ. Примеры из IT.
|
||||||
|
2 Погрешности вычислений Источники погрешностей: неустранимая, метода, округления. Абсолютная и относительная погрешность. Правила записи приближённых чисел.
|
||||||
|
3 Решение нелинейных уравнений (часть 1) Отделение корней. Метод половинного деления: алгоритм, сходимость, оценка числа итераций.
|
||||||
|
4 Решение нелинейных уравнений (часть 2) Метод простых итераций, метод Ньютона (касательных). Сравнение скорости сходимости.
|
||||||
|
5 Решение систем линейных уравнений (СЛАУ) Метод Гаусса (прямой ход, обратный ход). Метод простых итераций. Метод Зейделя. Условия сходимости.
|
||||||
|
6 Интерполяция функций Постановка задачи. Интерполяционный многочлен Лагранжа. Погрешность интерполяции.
|
||||||
|
7 Аппроксимация. Метод наименьших квадратов Отличие аппроксимации от интерполяции. Линейная и квадратичная аппроксимация. Построение эмпирических формул.
|
||||||
|
8 Численное интегрирование Формулы прямоугольников, трапеций, Симпсона. Оценка погрешности. Правило Рунге.
|
||||||
|
9 Численное дифференцирование Простейшие формулы численного дифференцирования. Погрешность. Применение в обработке данных.
|
||||||
|
10 Решение обыкновенных дифференциальных уравнений Задача Коши. Метод Эйлера (явный и неявный). Модифицированный метод Эйлера. Метод Рунге-Кутты 4-го порядка.
|
||||||
|
11 Имитационное моделирование Метод Монте-Карло: генерация случайных чисел, оценка площадей, моделирование случайных процессов.
|
||||||
|
12 Основы теории массового обслуживания Понятие СМО. Входящий поток, очередь, каналы обслуживания. Показатели эффективности: загрузка, длина очереди, время ожидания. Формулы для простейшей СМО.
|
||||||
|
13 Оптимизация и линейное программирование Постановка задачи оптимизации. Графический метод для двух переменных. Транспортная задача. Понятие о симплекс-методе.
|
||||||
|
14 Обзор современных инструментов моделирования Обзор библиотек Python (NumPy, SciPy, Matplotlib), сред моделирования (AnyLogic). Подготовка к итоговому проекту.
|
||||||
|
|
||||||
|
Курс лекций может незначительно корректироваться в зависимости от темпа усвоения материала.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
3. Темы практических занятий (48 часов)
|
||||||
|
|
||||||
|
Практики проводятся в компьютерном классе (Python, Excel) или с использованием калькуляторов для ручных расчётов. Каждое занятие рассчитано на 2 академических часа.
|
||||||
|
|
||||||
|
№ практики Тема Содержание работы
|
||||||
|
1 Построение простейших моделей Разбор примеров перевода словесной задачи в математическую формулу. Составление блок-схемы этапов моделирования.
|
||||||
|
2 Вычисление погрешностей Определение абсолютной и относительной погрешности. Оценка погрешности арифметических операций.
|
||||||
|
3 Метод половинного деления (вручную) Решение уравнения x^3 - x - 1 = 0 с точностью 0.1. Заполнение таблицы итераций.
|
||||||
|
4 Метод половинного деления (программирование) Написание программы на Python, реализующей метод. Сравнение с ручным расчётом.
|
||||||
|
5 Метод Ньютона и простых итераций Ручной расчёт для уравнения x^2 - 2 = 0. Реализация на Python. Сравнение скорости сходимости.
|
||||||
|
6 Решение СЛАУ методом Гаусса Решение системы 3×3 вручную. Составление алгоритма, реализация на Python.
|
||||||
|
7 Итерационные методы для СЛАУ Метод простых итераций и Зейделя. Исследование сходимости на примере.
|
||||||
|
8 Интерполяция многочленом Лагранжа Построение интерполяционного многочлена для табличных данных. Вычисление значения в промежуточной точке.
|
||||||
|
9 Метод наименьших квадратов Построение линейной и квадратичной аппроксимации по экспериментальным данным в Excel и Python.
|
||||||
|
10 Численное интегрирование (вручную) Вычисление определённого интеграла методами прямоугольников, трапеций, Симпсона с заданным шагом.
|
||||||
|
11 Численное интегрирование (Python) Реализация функций интегрирования. Оценка погрешности по правилу Рунге.
|
||||||
|
12 Численное дифференцирование Вычисление производной таблично заданной функции. Сравнение с аналитическим значением.
|
||||||
|
13 Метод Эйлера для ОДУ (вручную) Решение задачи Коши y' = y, y(0)=1 с шагом 0.1. Построение таблицы.
|
||||||
|
14 Метод Эйлера и Рунге-Кутты (Python) Реализация методов, сравнение с точным решением, визуализация.
|
||||||
|
15 Метод Монте-Карло Оценка числа π методом случайных точек. Моделирование бросания игральной кости.
|
||||||
|
16 Расчёт показателей СМО Вычисление загрузки сервера, длины очереди, времени ожидания для заданных λ и μ.
|
||||||
|
17 Имитационная модель очереди Написание программы, моделирующей очередь в магазине/на сервере. Сбор статистики.
|
||||||
|
18 Графический метод линейного программирования Решение задачи о максимизации прибыли с двумя переменными. Построение области допустимых решений.
|
||||||
|
19 Транспортная задача Решение транспортной задачи методом северо-западного угла и методом потенциалов (упрощённо).
|
||||||
|
20 Комплексная работа: модель траектории снаряда Использование метода Рунге-Кутты для расчёта траектории с сопротивлением воздуха. Построение графиков.
|
||||||
|
21 Обработка экспериментальных данных Построение аппроксимирующей функции, оценка точности, прогнозирование.
|
||||||
|
22 Подготовка к итоговому проекту Выбор темы, постановка задачи, обсуждение плана реализации.
|
||||||
|
23 Работа над проектом Консультации, отладка программ, оформление результатов.
|
||||||
|
24 Защита проектов Представление проекта: модель, метод, программа, анализ результатов.
|
||||||
|
|
||||||
|
Примечание: если нет возможности использовать компьютеры на каждой практике, часть работ выполняется вручную (как указано), но для специальности 09.02.07 желательно как можно больше программировать.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
4. Система оценивания
|
||||||
|
|
||||||
|
Итоговая оценка складывается из нескольких компонентов. В течение семестра вы будете получать баллы за следующие виды работ:
|
||||||
|
|
||||||
|
Текущий контроль (60% итоговой оценки)
|
||||||
|
|
||||||
|
· Практические работы – 40%.
|
||||||
|
Каждая выполненная и защищённая практическая работа оценивается по 5-балльной шкале. Средний балл за все практики умножается на коэффициент.
|
||||||
|
· Домашние задания – 10%.
|
||||||
|
Выборочно задаются после некоторых тем. Проверяется правильность, аккуратность, самостоятельность.
|
||||||
|
· Контрольная работа (рубежный контроль) – 10%.
|
||||||
|
Проводится после 6-й лекции. Включает задачи на погрешности, решение уравнений, СЛАУ, интерполяцию.
|
||||||
|
|
||||||
|
Итоговый контроль (40% итоговой оценки)
|
||||||
|
|
||||||
|
· Зачёт в форме защиты индивидуального или группового проекта (математическая модель + программа + отчёт).
|
||||||
|
Требования к проекту:
|
||||||
|
· сформулирована задача;
|
||||||
|
· построена математическая модель;
|
||||||
|
· выбран и реализован численный метод;
|
||||||
|
· приведены результаты и их анализ.
|
||||||
|
|
||||||
|
Критерии оценки на зачёте
|
||||||
|
|
||||||
|
· «Зачтено» – проект выполнен полностью, модель адекватна, программа работает, студент отвечает на вопросы по теме.
|
||||||
|
· «Не зачтено» – проект отсутствует или грубо нарушены ключевые этапы моделирования.
|
||||||
|
|
||||||
|
Важно: пропуски практических занятий отрабатываются в течение семестра. Без выполненных практик студент не допускается до зачёта.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
5. Рекомендуемая литература и ресурсы
|
||||||
|
|
||||||
|
1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – М.: БИНОМ, любое издание.
|
||||||
|
2. Турчак Л.И., Плотников П.В. Основы численных методов. – М.: Физматлит.
|
||||||
|
3. Самарский А.А., Гулин А.В. Численные методы. – М.: Наука.
|
||||||
|
4. Интернет-ресурсы:
|
||||||
|
· NumPy User Guide
|
||||||
|
· SciPy Lecture Notes
|
||||||
|
· Python Programming for Mathematician
|
||||||
Reference in New Issue
Block a user