Добавить readme.md

This commit is contained in:
2026-09-05 06:22:50 +00:00
parent 4b7cbe8fe6
commit c482e238d7
+119
View File
@@ -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