Моделирование броуновского движения

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск

Курсовой проект по информатике

Исполнитель: Лобанов Илья

Группа: 13604/1

Семестр: весна 2016

Аннотация к проекту

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


Постановка задачи

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

Основные определения и понятия

Броуновское движение происходит из-за того, что все жидкости и газы состоят из атомов или молекул — мельчайших частиц, которые находятся в постоянном хаотическом тепловом движении, и потому непрерывно толкают броуновскую частицу с разных сторон. Было установлено, что крупные частицы с размерами более 5 мкм в броуновском движении практически не участвуют (они неподвижны или седиментируют), более мелкие частицы (менее 3 мкм) двигаются поступательно по весьма сложным траекториям или вращаются. Когда в среду погружено крупное тело, то толчки, происходящие в огромном количестве, усредняются и формируют постоянное давление. Если крупное тело окружено средой со всех сторон, то давление практически уравновешивается, остаётся только подъёмная сила Архимеда — такое тело плавно всплывает или тонет. Если же тело мелкое, как броуновская частица, то становятся заметны флуктуации давления, которые создают заметную случайно изменяющуюся силу, приводящую к колебаниям частицы. Броуновские частицы обычно не тонут и не всплывают, а находятся в среде во взвешенном состоянии.


Описание реализации программы

Программа написана на языке C++, для графического анализа используется библиотека OpenGL - спецификация (документ), описывающий набор функций и их точное поведение. Взаимодействие частиц во время столкновений описывается по 2-му закону Ньютона. В структуре P задаются начальное положение броуновской частицы , а также её скорости по осям x, y и масса. Начальные координаты и проекции скоростей - это случайные величины, координаты распределены равномерно на отрезке [0; 480]. У нормального распределения 2 параметра - математическое ожидание (среднее значение) и дисперсия (рассеяние). Среднее значение проекции скорости равняется 0, дисперсия равна KT/m. Функция rand() возвращает равновероятно целое число в диапазоне [0; RAND_MAX). Функция rand_unif() возвращает случайную величину, равномерно распределённую на промежутке [0; 1). За один раз получается 2 нормально распределённые величины из 2 (поэтому в функции присутствует статическая переменная y, в которой запоминается второе значение, и в следующий раз возвращается оно), принадлежащих стандартному равномерному.Присутствует визуализация.

Результаты работы программы

1) Положение броуновской частицы в момент времени t=0


Посл.PNG



2) Положение броуновской частицы в произвольный момент времени


Last.PNG


Список литературы

  • Роберт Лафоре Объектно-ориентированное программирование в C++, 4-е издание (2004)

Ссылки

Скачать программу с описанием