Files
2026-09-05 06:22:50 +00:00

14 KiB
Raw Permalink Blame History

План курса «Математическое моделирование»

Направление: 09.02.07 «Информационные системы и программирование» Объём: 24 часа лекций + 48 часов практических занятий = 72 часа Форма итоговой аттестации: зачёт


  1. О чём этот предмет?

Математическое моделирование – это искусство переводить реальные задачи на язык математики, решать их с помощью компьютера и анализировать результаты. Для программиста это ключевой навык: любая серьёзная программа (от игры до банковской системы) использует математические модели.

Чему вы научитесь:

· строить математические модели для практических задач; · выбирать подходящий численный метод; · реализовывать алгоритмы вручную и на Python; · оценивать точность и достоверность результатов.

Зачем это нужно: чтобы понимать, как работают алгоритмы внутри готовых библиотек, уметь самостоятельно создавать вычислительные модули и принимать обоснованные решения на основе данных.


  1. Темы лекций (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). Подготовка к итоговому проекту.

Курс лекций может незначительно корректироваться в зависимости от темпа усвоения материала.


  1. Темы практических занятий (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 желательно как можно больше программировать.


  1. Система оценивания

Итоговая оценка складывается из нескольких компонентов. В течение семестра вы будете получать баллы за следующие виды работ:

Текущий контроль (60% итоговой оценки)

· Практические работы – 40%. Каждая выполненная и защищённая практическая работа оценивается по 5-балльной шкале. Средний балл за все практики умножается на коэффициент. · Домашние задания – 10%. Выборочно задаются после некоторых тем. Проверяется правильность, аккуратность, самостоятельность. · Контрольная работа (рубежный контроль) – 10%. Проводится после 6-й лекции. Включает задачи на погрешности, решение уравнений, СЛАУ, интерполяцию.

Итоговый контроль (40% итоговой оценки)

· Зачёт в форме защиты индивидуального или группового проекта (математическая модель + программа + отчёт). Требования к проекту: · сформулирована задача; · построена математическая модель; · выбран и реализован численный метод; · приведены результаты и их анализ.

Критерии оценки на зачёте

· «Зачтено» – проект выполнен полностью, модель адекватна, программа работает, студент отвечает на вопросы по теме. · «Не зачтено» – проект отсутствует или грубо нарушены ключевые этапы моделирования.

Важно: пропуски практических занятий отрабатываются в течение семестра. Без выполненных практик студент не допускается до зачёта.


  1. Рекомендуемая литература и ресурсы

  2. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – М.: БИНОМ, любое издание.

  3. Турчак Л.И., Плотников П.В. Основы численных методов. – М.: Физматлит.

  4. Самарский А.А., Гулин А.В. Численные методы. – М.: Наука.

  5. Интернет-ресурсы: · NumPy User Guide · SciPy Lecture Notes · Python Programming for Mathematician