Моделирование случайных процессов.

Понятие "случайный" - одно из самых фундаментальных как в математике, таки в повседневной жизни. Моделирование случайных процессов - мощнейшее направление в современном математическом моделировании.

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

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

Рассмотрим генерацию чисел равновероятно распределенных на некотором отрезке. Большинство программ – генераторов случайных чисел – выдают последовательность, в которой предыдущее число используется для нахождения последующего. Первое из них – начальное значение. Все генераторы случайных чисел дают последовательности, повторяющиеся после некоторого количества членов, называемого периодом, что связано с конечной длиной машинного слова. Самый простой и наиболее распространенный метод – метод вычетов, или линейный конгруэнтный метод, в котором очередное случайное число хn определяется «отображением»

Xn=(axn-1+c)mod m,

где a,c,m,- натуральные числа, mod функция деления по модулю. Наибольший возможный период датчика равен m однако, он зависит от a и c. Ясно, что чем больше период, тем лучше; однако реально наибольшее m ограничено разрядной сеткой ЭВМ. В любом случае используемая в конкретной задаче выборка случайных чисел должна быть короче периода, иначе задача будет решена неверно. Обычно генераторы выдают отношение xn/m, которое всегда меньше 1, т.е. генерируют последовательность псевдослучайных чисел на отрезке [0, 1].

Вопрос о случайности конечной последовательности чисел гораздо сложнее, чем выглядит на первый взгляд. Так последовательно генерируемые псевдослучайные числа могут появляться не идеально равномерно, а проявлять тенденцию к образованию групп. Один из тестов на равномерность состоит в делении отрезка [0, 1] на М равных частей – «корзин», и помещения каждого нового числа в соответствующую «корзину». В итоге получается гистограмма, в которой высота каждого столбика пропорциональна количеству попавших в «корзину» случайных чисел. (см.рис)

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

program qqwqw;
  uses crt,graph;
  var mode,driver,x,y :integer;
        p,q:real;

begin
 randomize;
 DetectGraph(driver,mode);
 InitGraph(driver,mode,'');
 x:=Getmaxx div 2;
 y:=Getmaxy div 2;
 repeat
   p:=random;
   q:=random;
   if p>0.5 then x:=x+6 else x:=x-6;
   if q>0.5 then y:=y+6 else y:=y-6;
   setcolor(10);
   circle(x,y,10);
   delay(10000);
   setcolor(0);
   circle(x,y,10);
 until keypressed;
 closegraph;
 readln;
end.

***Эта страница не закончена***

 

 
Hosted by uCoz