Курсовая по прикладной математике и информатике в СПбГУ может заметно отличаться в зависимости от программы. В актуальном наборе 2026 года по направлению ПМИ есть «Математика и прикладная математика», «Прикладная математика, процессы управления и искусственный интеллект», «Прикладная математика, современное программирование и искусственный интеллект» и программа «Современное программирование».
Официальный список:
https://cabinet.spbu.ru/Lists/ForeignersLists/bak/index_comp_groups.html
Поэтому ПМИ в СПбГУ не стоит сводить только к численным методам. Курсовая может быть математической, алгоритмической, программной, связанной с управлением или искусственным интеллектом.
Найдите математическое ядро
У темы должен быть объект формализации.
Например:
- система дифференциальных уравнений;
- граф;
- оптимизационная задача;
- временной ряд;
- динамическая система;
- вероятностная модель.
Плохо:
«Использование Python в прикладной математике».
Python здесь только инструмент.
Постановка
Чётко задайте входные данные, неизвестные, ограничения, критерий решения и параметры.
Если задача сформулирована туманно, код будет решать непонятно что.
Модель
Покажите, какие свойства реального объекта вы оставляете.
Например:
- линейность;
- стационарность;
- независимость;
- постоянные коэффициенты.
Отдельно перечислите то, что модель не учитывает. Это понадобится в выводах.
Тест размерности
Для физической модели проверьте единицы.
Это простой контроль формул.
Даже сложная нейросеть не спасает модель, где секунды случайно складываются с метрами.
Контрольный случай
До большого эксперимента возьмите пример с известным ответом.
Например:
- аналитическое решение;
- симметричный случай;
- малая размерность.
Если метод не воспроизводит этот случай, его рано применять к сложным данным.
Алгоритм
Опишите алгоритм словами или псевдокодом.
Нужно понимать инициализацию, шаг, условие, остановку и результат.
Не используйте листинг как единственное объяснение.
Сложность
Оцените время и память.
Если n - число вершин или объектов, напишите это.
Фраза O(n²) без определения n выглядит формально.
Экспериментальная сложность
После теории измерьте runtime для нескольких n.
Например:
10³
10⁴
10⁵.
Сопоставьте рост с ожидаемой сложностью.
Если график не соответствует ожиданию, объясните кеш, overhead или структуру входа.
Численный метод
Если решение приближённое, нужно измерять погрешность.
Варианты:
- абсолютная;
- относительная;
- residual;
- norm.
Не называйте ответ «точным» только потому, что программа завершилась.
Grid convergence
Для задачи на сетке сравните несколько шагов.
Если при уменьшении шага ответ меняется на десятки процентов, окончательный вывод делать рано.
Устойчивость
Небольшое возмущение входных данных не должно создавать необъяснимый огромный скачок результата, если задача ожидается устойчивой.
Проведите sensitivity test.
Обусловленность
Для линейной системы полезно оценить condition number.
Если она плохо обусловлена, высокая машинная точность не гарантирует точный результат.
Оптимизация
При сравнении методов используйте одинаковые objective, constraint, start и stopping rule.
Иначе сравнение нечестное.
Невыпуклая задача
Проведите несколько запусков из разных точек.
Если ответы различаются, это часть результата.
Не выдавайте один local optimum за глобальный.
Стохастика
Для случайного алгоритма фиксируйте seed.
Но один seed не должен быть единственным результатом.
Покажите несколько запусков и разброс.
