Курсовая по прикладной математике и информатике должна показывать полный путь от содержательной задачи к математической модели и вычислительному результату. Слабая работа часто начинается сразу с кода или формулы, а связь с исходной задачей остаётся неясной.
Сильная работа отвечает на три вопроса: что моделируется, почему выбран именно этот метод и насколько можно доверять полученному численному результату.
Постановка задачи
Сначала опишите содержательный объект.
Это может быть:
- теплопроводность;
- движение;
- распространение вещества;
- оптимизация;
- поток;
- популяция;
- финансовый процесс;
- обработка данных.
После этого задайте, что считается неизвестным и какие величины известны.
Не начинайте с уравнения, если читатель не понимает физический или прикладной смысл переменных.
Допущения
Любая модель упрощает реальность.
Запишите допущения отдельно.
Например:
- среда однородна;
- параметры постоянны;
- процесс стационарный;
- шум имеет заданное распределение;
- взаимодействием второго порядка пренебрегаем.
Не прячьте важное упрощение внутри формулы.
Размерность
Проверка единиц помогает ловить ошибки ещё до программирования.
Если слева в уравнении размерность температуры, а справа энергии, модель записана неправильно.
Для безразмерной модели покажите, как выполнялась нормировка.
Начальные и граничные условия
Дифференциальное уравнение без условий часто не задаёт единственного решения.
Определите:
- начальное состояние;
- значения на границе;
- поток;
- периодичность;
- условия симметрии.
Не копируйте условие из учебного примера, если оно не соответствует реальному объекту.
Аналитическое решение как эталон
Если для упрощённого случая есть точное решение, используйте его.
Это отличный способ проверить численный алгоритм.
Даже если основная задача решается только численно, тест на простом случае повышает доверие к реализации.
Выбор численного метода
Метод выбирается по свойствам задачи.
Учитывайте:
- устойчивость;
- порядок точности;
- вычислительную стоимость;
- жёсткость;
- размерность;
- структуру матрицы.
Не используйте сложный метод только потому, что он выглядит научнее.
Дискретизация
Покажите переход от непрерывной задачи к конечному набору уравнений.
Для сеточного метода укажите:
- шаг;
- узлы;
- аппроксимацию производных;
- схему.
Не оставляйте в тексте готовую разностную формулу без вывода или ссылки на используемую аппроксимацию.
Погрешность аппроксимации
Объясните порядок метода.
Если схема имеет второй порядок, уменьшение шага вдвое должно при подходящих условиях заметно уменьшать ошибку по ожидаемому закону.
Проверьте это экспериментом.
Сходимость по сетке
Один расчёт на одной сетке не доказывает точность.
Запустите несколько вариантов:
- h;
- h/2;
- h/4.
Сравните ключевую величину.
Если результат продолжает сильно меняться, сетка недостаточно подробная.
Устойчивость
Некоторые схемы дают красивые числа при одном шаге и полностью разлетаются при другом.
Если метод условно устойчив, соблюдайте ограничение.
Не уменьшайте временной шаг случайно, не объяснив связь с пространственной сеткой и параметрами модели.
Система линейных уравнений
Для большой системы выбор решателя важен.
Можно использовать:
- прямой метод;
- итерационный;
- разреженную матрицу.
Не храните огромную разреженную матрицу как плотную, если задача масштабная.
Это может увеличить память на порядки.
Итерационный метод
Определите критерий остановки.
Например:
- норма невязки;
- изменение решения;
- максимальное число итераций.
Не завершайте процесс только потому, что после 100 итераций график уже похож.
