Моделирование броуновского движения — различия между версиями
Loban9614 (обсуждение | вклад) (→top) |
Loban9614 (обсуждение | вклад) (→Ссылки) |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
'''''Курсовой проект по информатике''''' | '''''Курсовой проект по информатике''''' | ||
Строка 18: | Строка 16: | ||
*Написать программу, моделирующую движение броуновской частицы в газе. | *Написать программу, моделирующую движение броуновской частицы в газе. | ||
− | |||
*Рассмотреть влияние летающих молекул на движение броуновской частицы. | *Рассмотреть влияние летающих молекул на движение броуновской частицы. | ||
Строка 25: | Строка 22: | ||
− | Броуновское движение происходит из-за того, что все жидкости и газы состоят из атомов или молекул — мельчайших частиц, которые находятся в постоянном хаотическом тепловом движении, и потому непрерывно толкают броуновскую частицу с разных сторон. Было установлено, что крупные частицы с размерами более 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, в которой запоминается второе значение, и в следующий раз возвращается оно), принадлежащих стандартному равномерному.Присутствует визуализация. | ||
==Результаты работы программы== | ==Результаты работы программы== | ||
Строка 51: | Строка 52: | ||
− | Роберт Лафоре Объектно-ориентированное программирование в C++, 4-е издание (2004) | + | *Роберт Лафоре Объектно-ориентированное программирование в 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
2) Положение броуновской частицы в произвольный момент времени
Список литературы[править]
- Роберт Лафоре Объектно-ориентированное программирование в C++, 4-е издание (2004)