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

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Ссылки)
 
(не показана 21 промежуточная версия этого же участника)
Строка 1: Строка 1:
     
+
 
''' Аннотация к проекту'''
+
'''''Курсовой проект по информатике'''''
 +
 
 +
'''Исполнитель: [[Лобанов Илья]]
 +
 
 +
'''Группа:''' 13604/1
 +
 
 +
'''Семестр:''' весна 2016
 +
 
 +
==Аннотация к проекту==
 
   
 
   
 
Данная курсовая работа посвящена изучению движения броуновской частицы под воздействием атомов или молекул, из которых состоит газ, непрерывно толкающих данную частицу со всех сторон.  
 
Данная курсовая работа посвящена изучению движения броуновской частицы под воздействием атомов или молекул, из которых состоит газ, непрерывно толкающих данную частицу со всех сторон.  
  
  
Постановка задачи:
+
==Постановка задачи==
 +
 
 +
*Написать программу, моделирующую движение броуновской частицы в газе.
  
•Написать программу, моделирующую движение броуновской частицы в газе.  
+
*Рассмотреть влияние летающих молекул на движение броуновской частицы.
  
 +
==Основные определения и понятия==
  
•Рассмотреть влияние летающих молекул на движение броуновской частицы.
 
  
 +
Броуновское движение происходит из-за того, что все жидкости и газы состоят из атомов или молекул — мельчайших частиц, которые находятся в постоянном хаотическом тепловом движении, и потому непрерывно толкают броуновскую частицу с разных сторон. Было установлено, что крупные частицы с размерами более 5 мкм в броуновском движении практически не участвуют (они неподвижны или седиментируют), более мелкие частицы (менее 3 мкм) двигаются поступательно по весьма сложным траекториям или вращаются. Когда в среду погружено крупное тело, то толчки, происходящие в огромном количестве, усредняются и формируют постоянное давление. Если крупное тело окружено средой со всех сторон, то давление практически уравновешивается, остаётся только подъёмная сила Архимеда — такое тело плавно всплывает или тонет. Если же тело мелкое, как броуновская частица, то становятся заметны флуктуации давления, которые создают заметную случайно изменяющуюся силу, приводящую к колебаниям частицы. Броуновские частицы обычно не тонут и не всплывают, а находятся в среде во взвешенном состоянии.
  
'''Основные определения и понятия'''
 
  
Броуновское движение происходит из-за того, что все жидкости и газы состоят из атомов или молекул — мельчайших частиц, которые находятся в постоянном хаотическом тепловом движении, и потому непрерывно толкают броуновскую частицу с разных сторон. Было установлено, что крупные частицы с размерами более 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, в которой запоминается второе значение, и в следующий раз возвращается оно), принадлежащих стандартному равномерному.Присутствует визуализация.
  
'''Результаты работы программы'''
+
==Результаты работы программы==
  
  
Строка 24: Строка 35:
  
  
Image
+
 
 +
[[File:посл.PNG]]
 +
 
 +
 
  
 
   
 
   
Строка 32: Строка 46:
  
 
[[File:last.PNG]]
 
[[File:last.PNG]]
 +
 +
 +
 +
==Список литературы==
 +
 +
 +
*Роберт Лафоре Объектно-ориентированное программирование в C++, 4-е издание (2004)
 +
 +
* [https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B2%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5#.D0.A1.D1.82.D0.B0.D0.BD.D0.B4.D0.B0.D1.80.D1.82.D0.BD.D0.BE.D0.B5_.D1.80.D0.B0.D0.B2.D0.BD.D0.BE.D0.BC.D0.B5.D1.80.D0.BD.D0.BE.D0.B5_.D1.80.D0.B0.D1.81.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5%20 Непрерывное равномерное распределение]
 +
 +
*[https://ru.wikipedia.org/wiki/%D0%91%D1%80%D0%BE%D1%83%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B5_%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 Броуновское движение]
 +
 +
*http://av-physics.narod.ru/molecule/molecular-movement.htm
 +
 +
==Ссылки==
 +
 +
 +
[[:File:Kursovaya_rabota_Lobanov_Ilya (2).rar|Скачать программу с описанием]]

Текущая версия на 18:55, 17 июня 2016

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

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

Группа: 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)

Ссылки[править]

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