Политех в Сети

Сайт для Учебы

Основы статистического моделирования

Рейтинг пользователей: / 0
ХудшийЛучший 

Цель: Используя численные методы статистического моделирования смоделировать поставленную вероятностную задачу. Вывести графически нужную зависимость (<Δx> от t), совершенствовать умения в этой области.

Условие задачи:

Анализ условия, решение в общем виде:

Зная среднее количество шажков n0, мы можем смоделировать нужную нам случайную величину n (количество шажков) подчиняющуюся распределению Пуассона. То есть, мы узнаем сколько шажков совершит молекула за первую единицу времени, затем умножим эту величину на длину шажка и получим расстояние пройденное молекулой за первую единицу времени. Аналогично можно сделать для последующих отрезков времени. Задача в основном решена (в общем виде), теперь нам останется выразить (посчитать) и вывести на график то, что от нас требуют в конкретном задании – зависимость среднего смещения частицы от времени (мы получим Размерность (единицы длины)/(единицы времени)).

Выбор численного метода решения и анализ его сходимости, обоснование выбора метода:

В решении заданной задачи для моделирования случайной величины подчиняющейся распределению Пуассона мы будем использовать функцию „random”. Так как данная функция выдаёт случайные величины равновероятно, можно считать, что в нашем решении погрешности практически нет. Небольшие отклонения от действительности могут иметь место из-за погрешности компьютера (вычислительные погрешности), но в данной задаче эти погрешности играют довольно малую роль (особенно при больших промежутках времени), потому что они, в основном, будут отклонять истинные значения как в положительную, так и в отрицательную сторону и вследствие того, что мы ищем среднее смещение, они будут уничтожаться (не полностью). Моделирование данной задачи можно считать очень точным.

Алгоритм решения уравнения

Описание алгоритма: Зная среднее количество шажков n0, моделируем нужную нам случайную величину n (количество шажков) подчиняющуюся распределению Пуассона. Умножаем эту величину на длину шажка и получаем расстояние пройденное молекулой за первую единицу времени, заносим это расстояние в масив (сохраняем в массиве). Аналогично делаем для последующих отрезков времени. Затем сложив данное значение длинны со веми предыдущими и разделив на количество отрезков времени мы получили среднее смещение частицы за данное время. Отправляем данное время и среднее смещение частицы в график. Повторяем это для каждого следующего отрезка времени.

Программныйкод Delphi:

Procedure TForm1.Button1Click(Sender: TObject);

Var

xi:array[0..100000]of real;

n0,x, dx, n,sumx:real;

t0,t:integer;

i:integer;

z, p,a:real;

k:integer;

Begin

dx:=StrToFloat(Edit1.Text);

n0:=StrToFloat(Edit2.Text);

t:=StrToInt(Edit3.Text);

sumx:=0;

x:=0;

Series1.Clear;

randomize;

for t0:=0 to t do

begin

p:=exp(-n0);

a:=p;

k:=0;

z:=random;

while z>a do

begin

k:=k+1;

p:=p*n0/k;

a:=a+p;

end;

n:=k;{k-«Пуассоновская» случайная величина}

x:=x+(n*dx);

xi[t0]:=x;

for i:=0 to t0 do

begin

sumx:=sumx+xi[i];

end;

Series1.AddXY(t0,(sumx/(t0+1)));

end;

End;

End.

Полученные результаты:

Полученный график функции (в Delphi) Для длины шажка молекулы=1 и среднему кол-ву шажков=2:

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