Разработка компьютерной программы моделирования дисперсных систем
Изучение дисперсных систем и создание программы, реализующей метод Монте-Карло и моделирующей распределение частиц в определенной области. Исследование методов линейных итераций и вязкой суспензии. Характеристики распределения порошков по размерам.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 05.12.2014 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Оглавление
Введение
1. Теоретическая часть
1.1 Законы распределения
1.2 Характеристики распределения порошков по размерам
1.3 Алгоритм метода Моте-Карло
1.4 Метод линейных итераций
1.5 Алгоритм метода вязкой суспензии
2. Практическая часть
2.1 Разработка программы
2.2 Первая вкладка
2.3 Вторая вкладка
Выводы
Список литературы
Введение
Дисперсные системы - это системы, состоящие из двух или более фаз, которые имеют четкую границу раздела и не вступают в химическое взаимодействие друг с другом [1].
1 фаза - называется дисперсной фазой, частицы.
2 фаза - среда, в которой размещены частицы первой фазы (непрерывная). Называется дисперсионной фазой.
Дисперсные системы могут иметь и более сложное строение, например, представлять собой двухфазное образование, каждая из фаз которого, будучи непрерывной, проникает в объем другой фазы. К таким системам относятся твердые тела, пронизанные разветвленной системой каналов-пор, заполненных газом или жидкостью, некоторые микрогетерогенные полимерные композиции и другие. Нередки случаи, когда дисперсионная среда "вырождается" до тончайших слоев (пленок), разделяющих частицы дисперсной фазы [1].
Для исследования дисперсных систем удобно использовать компьютерное моделирование, оно позволяет рассчитать параметры таких систем, а также визуально отобразить полученные данные.
1. Теоретическая часть
1.1 Законы распределения
Гамма распределение - это двухпараметрическое семейство абсолютно непрерывных распределений. Если параметр принимает целое значение, то такое гамма-распределение также называется распределением Эрланга.
Пусть распределение случайной величины задаётся плотностью вероятности, имеющей вид:
где - гамма-функция Эйлера.
Тогда говорят, что случайная величина имеет гамма-распределение с параметрами и . Пишут [2].
Математическое ожидание -
Дисперсия -
Экспоненциальное или показательное распределение -- абсолютно непрерывное распределение, моделирующее время между двумя последовательными свершениями одного и того же события
Случайная величина имеет экспоненциальное распределение с параметром , если её плотность имеет вид[2]
.
Математическое ожидание -
Дисперсия -
Усеченное нормальное распределение.
Нормальное распределение, также называемое распределением Гаусса -- распределение вероятностей, которое в одномерном случае задается функцией плотности вероятности, совпадающей с функцией Гаусса:
Математическое ожидание - .
Дисперсия - .
Нормальное распределение зависит от двух параметров -- смещения и масштаба, то есть является с математической точки зрения не одним распределением, а целым их семейством. Значения параметров соответствуют значениям среднего (математического ожидания) и разброса (стандартного отклонения).
Стандартным нормальным распределением называется нормальное распределение с математическим ожиданием 0 и стандартным отклонением 1.[2]
Логнормальное распределение в теории вероятностей -- это двухпараметрическое семейство абсолютно непрерывных распределений. Если случайная величина имеет логнормальное распределение, то её логарифм имеет нормальное распределение [2].
Математическое ожидание -
Дисперсия -
1.2 Характеристики распределения порошков по размерам
Допустим, в порошке содержится N частиц, их диаметры Di. i=1,2,…,N.
- плотность распределения частиц по размерам.
f(D) - математическая плотность распределения частиц по размерам.
f(D)dD - относительное число частиц, которые имеют размер [D,D+dD].
- относительное число частиц, у которых величина меньше, чем заданное число D[1].
1.3 Алгоритм метода Монте-Карло
1) С помощью генератора случайных чисел задается случайное число R?[0,1].
2) Записывается уравнение F(D)=R, где F(D) - заданная функция распределения по размерам. Уравнение решается, находится значение D.
3) Пункты 1 и 2 повторяются для каждой частицы. В результате получается набор N частиц, имеющих заданное распределение f(D).
В случаях, когда F(D) имеет простое аналитическое выражение (экспоненциальная функция), то уравнение F(D)=R может быть решено аналитически и используется зависимость D(R).
1.4 Метод линейных итераций
Метод трапеций -- метод численного интегрирования функции одной переменной, заключающийся в замене на каждом элементарном отрезке подынтегральной функции на многочлен первой степени, то есть линейную функцию.
1. Генерируется число R и в массиве находится ячейка F=R. Если такой ячейки нет, то находятся значения двух ячеек, между которыми находится R. С помощью метода линейной интерполяции находится значение D равное соответствующему R[1].
1.5 Алгоритм метода вязкой суспензии
Для заданной объемной концентрации частиц ц и заданной плотности распределения f(D) происходит генерирование частиц. Определяется суммарный объем частиц:
V= ц*Lx*Ly.
В цикле i=1,..,N методом Монте-Карло генерируются частицы.
Для вновь генерированной степени определяем их объем и объем уже существующих частиц .
Если , процесс продолжается; если , процесс прекращается. В результате имеем набор частиц, имеющих заданный закон распределения по размерам и заданную объемную концентрацию ц.
1. Все связанные частицы размещаются в заданном объеме LxLyLz с помощью метода Монте-Карло, т.е. для каждой созданной частицы создаются координаты:
Эти координаты частиц используются в качестве начальных условий для метода вязкой суспензии [1].
2. Решается система дифференциальных уравнений:
- некий параметр, меняющийся от 0 до 1.
Организуется цикл и вычисляется для i=1,..,N.
После этого во втором цикле происходит корректировка:
3. Расчет заканчивается, когда в системе не останется ни одной пары пересекающихся частиц, то есть, когда все
Существуют граничные условия: границы расчетной области - твердая непроницаемая поверхность. Это означает, что частицы не могут выходить за пределы области, а могут только соприкасаться с ней.
2. Практическая часть
2.1 Разработка программы
В качестве языка программирования был выбран язык C#. C# -- объектно-ориентированный язык программирования. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы [2].
Лучшей средой разработки для данного языка является Microsoft Visual Studio 2013. Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).исходного кода (как например, Subversion и Visual SourceSafe) [2].
Программа состоит из 3 вкладок: «Состав порошковой смеси», «Распределение частиц» и «Справка».
Рисунок 1. Вкладки приложения
дисперсный программа итерация суспензия
Каждая вкладка представляет собой окно с полями для ввода и отображением информации - результатов работы программы.
Рисунок 2. Поле первой вкладки «Состав порошковой смеси»
Начальные условия:
Ш N - число частиц;
Ш M - число отрезков;
Ш L - число отрезков для метода трапеций;
Ш Dmax - максимальный размер частиц(мат.ожидание);
Ш Dcp - средний размер частиц;
Ш Dis - дисперсия;
Поле для выбора вида распределения:
Ш Логнормальное распределение;
Ш Экспоненциальное распределение;
Ш Гамма распределение;
Ш Усечено нормальное распределение;
Рисунок 3. Поле второй вкладки «Распределение частиц»
Размер области:
Ш Lx,Ly - размеры области для генерации частиц;
Ш - концентрация частиц;
Ш а - скорость размещения;
Значения параметров:
Ш Dcp - средний размер частиц(мат.ожидание);
Ш - дисперсия;
Ш Dmax - максимальный размер частиц;
Ш - шаг по времени;
Ш - число отрезков;
Ш L - число отрезков для метода трапеций;
Ш Количество созданных частиц;
Ш Количество тактов;
Рисунок 4. Поле третьей вкладки «Справка»
2.2 Первая вкладка
Первая вкладка - «Состав порошковой смеси». Здесь содержатся поля для ввода начальных условий, выбор распределения, по которому будет производиться расчет, график данного распределения и данные, полученные в результате генерации. Выбор распределения осуществляется с помощью компонента ComboBox, в котором содержатся названия распределений. Для каждого распределения необходимо задать начальные условия.
Рисунок 5. Первая вкладка «Состав порошковой смеси»
После ввода начальных условий необходимо нажать кнопку «Построить гистограмму» для построения графика и вывода на экран.
Программа создает L диаметров D, высчитывает соответствующие им значения F. Значения F нормируются, т.е. каждое значение делится на последний элемент массива. Далее с помощью генератора случайных чисел генерируется число от 0 до 1 и сравнивается со значениями F. Берутся значения двух ближайших точек к данному случайному числу, и с помощью метода линейной интерполяции высчитывается диаметр частицы.
После этого строится график плотности распределения. Для вывода графика распределений используется модуль ZedGraph - компонент для рисования графиков под.NET Framework. Преимуществом данного модуля является возможность изменения масштаба графика одной кнопкой. Так же, в ZedGraph можно строить различные графики на одной панели (в данном случае нам необходимы гистограмма и кривая) [2]. Гистограмма показывает плотность созданных частиц, согласно указанному закону, а кривая - теоретически определенная плотность распределения.
Для построения гистограммы использовался следующий алгоритм:
1. Пользователь задает число М - число отрезков для построения гистограммы;
2. Рассчитывается шаг a,a1 для построения диаграммы;
3. Диаметр частицы, полученный методом Монте-Карло делится на шаг a,a1;
4. От полученного значения берется целая часть встроенным методом Math.Truncate(x). Составляем массив, смотрим, в какую ячейку попала частица, и увеличиваем счетчик на единицу в этой ячейке;
5. Шаги 4-5 повторяются N раз;
6. По полученным данным строится гистограмма.
2.3 Вторая вкладка
Вторая вкладка «Распределение частиц» см. рисунок 3.
В качестве начальных условий здесь указываются:
После ввода всех условий, необходимо нажать кнопку «Создать частицы», тогда программа создаст случайным образом частицы, которые будут отражены в элементе panel.
Частицы на панели отрисовываются с помощью встроенного метода DrawEllipse, принадлежащего библиотеке System.Drawing.Graphics. Диаметр частиц и их положение определяются с помощью генератора случайных чисел.
Рисунок 6. Создание частиц
При нажатии на кнопку «Разместить» с помощью метода вязкой суспензии частицы распределяются и занимают все доступное пространство.
Рисунок 7. Размещение частиц
В качестве результатов исследования выводятся количество созданных частиц и число тактов, за которое частицы были распределены в пространстве.
Целью исследования является, анализ скорости заполнения пространства частицами при различных значениях плотности «ц» и коэффициента «а» для усечено нормального распределения.
Для этого были проведены исследования в диапазоне параметров;
При больших значениях ц и малых значениях а количество тактов очень большое. Для плотности ц = 0,8 число тактов очень велико даже при а близком к 1.
Я получила такие данные:
Таблица 1. Анализ скорости заполнения пространства частицами
a/фи |
0,5 |
0,6 |
0,7 |
0,8 |
|
0,1 |
73 |
108 |
380 |
650 |
|
0,2 |
70 |
100 |
300 |
600 |
|
0,3 |
46 |
73 |
280 |
560 |
|
0,4 |
39 |
61 |
245 |
497 |
|
0,5 |
31 |
59 |
200 |
398 |
|
0,6 |
29 |
48 |
195 |
330 |
|
0,7 |
21 |
39 |
187 |
299 |
|
0,8 |
19 |
30 |
173 |
255 |
|
0,9 |
12 |
26 |
161 |
227 |
|
1 |
9 |
21 |
149 |
194 |
Исходя из этих данных, были построены следующие зависимости:
При = 0,5
Рисунок 8. Зависимость скорость от «фи = 0,5»
При = 0,6
Рисунок 9. Зависимость скорости от «ф=0,6»
При =0,7
Рисунок 10. Зависимость скорости от «фи=0,7»
Выводы
В ходе контрольной работы был исследован метод вязкой суспензии для моделирования структуры дисперсных систем. Также был изучен метод Монте-Карло для моделирования частиц, используя различные распределения:
· Усеченной нормальное распределение;
· Гамма распределение;
· Экспоненциальное распределение;
· Логнормальное распределение.
Была создана компьютерная программа, реализующая следующие функции:
· Моделирование частиц в соответствии с заданными распределениями методом Монте-Карло.
· Моделирование размещения частиц в области с заданными размерами с помощью метода вязкой суспензии в соответствии с заданными распределениями методом Монте-Карло.
В ходе разработки программы были изучены и освоены некоторые функции языка C# и среды разработки Microsoft Visual Studio 2013:
Ш Компонент ZedGraph для построения графиков функций;
Было проведено исследование скорости размещения частиц в пространстве, в зависимости от плотности распределения, и значений параметров. Полученные результаты показали, что с возрастанием плотности «ц» и уменьшением параметра скорости «a» скорость размещения частиц в пространстве уменьшается. Для уменьшения времени расчетов при заданной плотности, параметр a должен быть равен 1.
Список литературы
1. Рашковский С.А. Курс лекций по предмету «Математическое моделирование сложных молекулярных структур». 2014 г.
2. Википедия -- свободная энциклопедия
3. Шпаргалка по ZedGraph.
Размещено на Allbest.ru
Подобные документы
Методы решения систем линейных алгебраических уравнений. Метод простых итераций и метод Зейделя. разработка программы для решения СЛАУ с произвольным количеством уравнений. Реализация методов Зейделя и простых итераций для получения вектора решений СЛАУ.
курсовая работа [25,0 K], добавлен 20.11.2008Изучение основных этапов проектирования программных систем, создание прикладной программы, которая выполняет решение систем линейных алгебраических уравнений методом Гаусса. Вычисление определителя и обращение матриц. Листинг разработанной программы.
курсовая работа [563,3 K], добавлен 12.07.2012Стадии процесса моделирования. Функция распределения непрерывной случайной величины. Методы моделирования (обратной функции, суперпозиции, исключения). Нормальные случайные величины. Метод Монте-Карло, точки равновесия. Моделирование динамических систем.
курсовая работа [1,2 M], добавлен 06.08.2013Характеристика основных методов для решения различных задач с помощью случайных последовательностей. Реализация и проверка эффективности метода Монте-Карло при его применении на различных примерах. Алгоритм метода имитации. Издержки неопределенности.
курсовая работа [98,9 K], добавлен 04.05.2014Описание математических методов решения систем линейных уравнений. Метод Гаусса, матричный метод. Вычисление определителей второго и третьего порядка. Язык программирования Паскаль. Структура программы, описание переменных, основные конструкции языка.
курсовая работа [137,3 K], добавлен 20.07.2010Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.
дипломная работа [144,8 K], добавлен 25.04.2012Изучение методов решения нелинейных уравнений таких как: метод Ньютона, модифицированный метод Ньютона, метод Хорд, метод простых Итераций. Реализация программы для персонального компьютера, которая находит решение нелинейного уравнения разными способами.
практическая работа [321,9 K], добавлен 24.06.2012Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.
курсовая работа [325,5 K], добавлен 27.10.2013Область применения данной программы. Распределение ставок средствами визуального программирования. Сообщения оператору. Текст программы. Графическое отображение передвижения наездников на экране. Возможность случайного распределения номеров наездников.
курсовая работа [57,0 K], добавлен 20.11.2013Управление процессами операционных систем. Разработка программы, моделирующей обслуживание множества вычислительных процессов в системе с 4 очередями, определяемыми значениями приоритетов. Выполнение инструкций компьютерной программы на процессоре.
контрольная работа [302,7 K], добавлен 06.08.2013