Темы курсовых

Результаты работ по указанным темам (при достаточном качестве и полноте выполненной работы) не являются чисто учебными, а имеют реальные приложения (а также могут развиваться в виде бакалаврских и магистерских диссертаций). Ряд тем предполагает применение и развитие навыков разработки программных продуктов.

Численные методы в механике

1. Симплектические методы численного интегрирования обыкновенных дифференциальных уравнений, далее — уравнений с частными производными.

Симплектические методы позволяют обеспечить выполнение закона сохранения полной энергии (гамильтониана в гамильтоновых системах). Традиционно широко применяемые методы Рунге-Кутты не обеспечивают выполнение законов сохранения, что отражается на качественном уровне при моделировании механических систем.

Реализация: любой язык программирования или математический пакет.

2. Моделирование механических систем в реальном масштабе времени.

Предполагается выполнить обзор и сравнение существующих решений (например, ODE, NGD, Bullet, Rigs of Rods, PhysX, Havok). Далее — реализация простого симулятора (вплоть до бакалаврской, магистерской диссертации). Работой может заниматься команда до трёх человек.

Реализация: C++, некоторый 3D API или готовый движок для симулятора.

3. Разработка новой версии комплекса задач и демонстрационных программ по предмету «Математическое моделирование» (классическая механика и механика сплошной среды). Работой может заниматься команда до трёх человек.

На данный момент имеется версия, разработанная в начале 2000-х годов.

Реализация: C++ и OpenGL (либо использовать готовый движок), возможно, C# + XNA или Java + 3D движок с поддержкой Java.

4. Численное решение задачи n тел.

Рассмотреть подходы, позволяющие ускорить процесс интегрирования движения n массивных тел, участвующих в гравитационном взаимодействии. Произвести компьютерное моделирование, сравнить с «наивным» методом.

Задачи управления

5. Управление ориентацией твердого тела в случае Эйлера при действии ограниченных по величине помех.

Рассматривается космический аппарат (КА), вращением которого можно управлять, прилагая вращающие моменты к маховикам, установленным по главным осям инерции КА. Задача состоит в приведении КА в заданное положение при условии, что на КА действуют неизвестные ограниченные по величине помехи — вращающие моменты.

6. Управление движением материальной точки при наличии фазовых ограничений.

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

Вычислительная геометрия

7. Методы упрощения невыпуклых многоугольников, далее — многогранников в R3.

8. Упрощение полиэдральных выпуклых оболочек в Rn.

Решение данных задач (темы 4 и 5) необходимо для работы алгоритмов численного построения множеств достижимости управляемых динамических систем, стабильных мостов в позиционных дифференциальных играх. Число вершин, рёбер, граней в этих алгоритмах с каждым шагом растёт в геометрической прогрессии, и их количество необходимо держать в определённых рамках. Кроме того, слишком короткие рёбра приводят к потере численной устойчивости и вырождению структур вычислительной геометрии.

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

Реализация (темы 7 и 8): предпочтительно C++ (хотя можно рассмотреть и другие варианты), можно опираться на библиотеку вычислительной геометрии CGAL.

Высокопроизводительные вычисления

9. Применение графических процессоров в задачах механики.

Современные графические процессоры имеют пиковую производительность вычислений до 4TFLOPS, что многократно превышает возможности процессоров «обычных». Однако высокая производительность достигается только на определённых задачах, решение которых можно представить как выполнение одинаковых действий над большим количеством данных.

Предполагается выбрать известный алгоритм (сеточные методы для механики сплошной среды, метод конечных элементов для расчёта конструкций, задача n тел, также см. тему 4), реализовать его в форме, пригодной для запуска на графическом процессоре, проанализировать полученные результаты (сравнить с «эталонной» реализацией для «обычного» процессора).

Реализация: C++ (возможно, другой язык с привязкой к OpenCL), OpenCL. Можно изучить реализацию в open-source движке Bullet.

10. Моделирование вычислений на кластере.

При проектировании ПО для выполнения большого объёма вычислений имеет смысл продумать способ эффективной загрузки высокопроизводительных вычислительных систем, реализованных как кластер. Чтобы не экспериментировать на реальных системах, было бы полезно иметь симулятор кластера, на котором можно прогнать скелет программы (не производящий реальных вычислений) и собрать статистику загрузки вычислительных узлов для выбора той или иной стратегии планирования и раздачи подзадач в ходе вычислений («имитационное моделирование«). Кластер моделируется графом, узлы которого соответствуют вычислительным узлам, а рёбра — сетевым соединениям (с соответствующими характеристиками).

Реализация: любой язык программирования с возможностью экспорта C ABI интерфейса  (для подключения в качестве внешней библиотеки) и/или поддержка скриптов, рекомендуется связка C++ / Lua.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: