590

Імітаційне моделювання. Функція генератор випадкових (псевдо) чисел

Отчет о прохождении практики

Математика и математический анализ

Написати функцію генератор випадкових(псевдо) чисел. Дослідити поведінку ЛК на зміну параметрів. Побудувати графік. Реалізована функція xn+1=(axn+c) mod m. З вхідними параметрами. За допомогою функції і оримали масив 1000 значень. ПСЧ отримались в проміжку від 1 до 29.

Украинкский

2012-11-28

66.5 KB

4 чел.

PAGE  2

МІНІСТЕРСТВО ОСВІТИ І НАУКИ МОЛОДІ ТА СПОРТУ

КРИВОРІЗЬКИЙ ПЕДАГОГІЧНИЙ ІНСТИТУТ ДВНЗ КНУ

Кафедра інформатики і

прикладної математики

ЗВІТ

Імітаційне моделювання

Виконав:

студент 4-го курсу

групи  І-08

Крепчук О.О.

Керівник:

Євтєєв В.М.




м. Кривий Ріг

2012 р.

Завдання: Написати  функцію «генератор випадкових(псевдо) чисел». Дослідити поведінку ЛК на зміну параметрів. Побудувати графік.

Додаток функції майн.

n=1000;

x = randint(n,1);

  x(1)=100;

m=29;

  y=zeros(m,1);  

  a=1;

  c=20;

  for i=2:n

     x=LK(m,a,c,x,i);

  end;

  y=podshet(x,y,m,n);

  showplot(y);

Параметри ЛК

М = 29, краще брати м в яких нод = 1 і самому м.

С - повинно бути менше за м.

А – повинно бути більше нуля і менше М.

Додаток функції генератора.

 function x=LK(m,a,c,x,i)

x(i)=mod((a*x(i-1)+c),m);

end

Все як в лекціях. Реалізована функція xn+1=(axn+c) mod m. З вхідними параметрами. 

За допомогою функції і оримали масив 1000 значень. ПСЧ отримались в проміжку від 1 до 29 тобто до М.

Рис1. Вивід масиву наших ЛК чисел з нашими параметрами.

Інші параметри М=23, кількість в масиві 10000. а=1,с=21,першочергове значення 90.

Рис.2. Інші параметри.

І так з рис.2. видно, що генерує по рівномірному закону розподілу.

Додаток Експ закон.

function k = Expon( x,n )

for i=1:n

   k(i)=(-log(1-x(i))/2);

end;

end

Передаємо наш масив функції експ і вона реалізує закон Експ. З тими самими параметрами.

Додаток Ерленга закон.

%распределение Эрланга +

for i=1:10000

   sum=0;

   for y=1:l-1

       n=rand(1);

       sum=sum+(((lam*n)^y)/prod(1:y))*exp(-lam*n);

   end;

   a(i)=1-sum;

end;

Рис.3.

Додаток Норм. закон.

%нормальное распределение +

for i=1:10000

   a(i)=from+(to-from)*randn(1);

end;

Рис.4.

Висновок: Параметр м впливає на проміжок генерації. М також повинно мати нод 1 і саме себе. Розглянуті 4 закони розподілу. Проаналізовані параметри які входять в ЛК. М,а,с, і початковий параметр х0.

Припускали, що m>2, 1<а<m ( а=0 або а=1 брати безглуздо, а всі інші по модулю m еквівалентні числам з діапазону 0а<m), 0c<m і 0x0<m. Нам буде зручно виділити три випадки:

 xn+1=(a xn+c) mod m,  c0

(2)

xn+1=a xn mod m,  m – составе число.

(3)

xn+1=a xn mod m,  mпросте число.

(4)

Генератори (3), (4) є окремим випадком (2) і визначаються трійкою параметрів {m, a, x0}, причому насправді у випадку (4) вибір x0 байдужий, при 1 x0<m виходить один і той же генератор.

М повинно бути простим, тому що ми потрапимо на період. Тобто буде повторюватися наші ПСЧ.


 

А также другие работы, которые могут Вас заинтересовать

68953. Конструктори похідних класів 44 KB
  У звязку із наслідуванням виникають два питання, що стосуються конструкторів і деструкцій. По-перше, коли викликаються конструктори і деструкції базового і похідного класів? По-друге, як передаються параметри конструкторів базового класу? Відповіді на ці питання містяться в наступному розділі.
68954. Передача параметрів конструктору базового класу 47.5 KB
  Якщо конструктор похідного класу повинен отримувати декілька параметрів слід просто використовувати стандартну синтаксичну форму конструктора з параметрами. Проте виникає питання яким чином передаються аргументи конструктору базового класу
68955. Віртуальні деструктори 26.5 KB
  Явний опис деструкторів у програмах потрібний лише тоді, коли обєкт створюється у динамічній памяті. При використанні віртуальних деструкторів досить очевидними є переваги поліморфізму. Зазвичай, вони застосовуються тоді, коли при знищенні обєктів необхідно видалити обєкти похідного класу...
68956. Шаблони. Функція з двома узагальненими параметрами 54.5 KB
  За допомогою шаблонів можна створювати узагальнені функції і класи які працюють з типом даних заданим як параметр. Узагальнені функції Узагальнена функція визначає універсальну сукупність операцій застосовних до різних типів даних. За допомогою узагальненої функції можна визначити природу...
68957. Перевантаження шаблонної функції та їх специфікацій 34 KB
  Перевантаження шаблонної функції Використання стандартних параметрів шаблонної функції Обмеження на узагальнені функції Перевантаження шаблонної функції Для того, щоб перенавантажувати специфікацію узагальненої функції, досить створити ще одну версію шаблону, що відрізняється від останніх...
68958. Узагальнені класи. Приклад використання двох узагальнених типів даних 62 KB
  Окрім узагальнених функцій можна визначити узагальнені класи. При цьому створюється клас, в якому визначені всі алгоритми, проте фактичний тип даних задається як параметр при створенні обєкту. Узагальнені класи виявляються корисними, якщо логіка класу не залежить від типу даних.
68959. Обробка виняткових ситуацій 57 KB
  Механізм обробки виняткових ситуацій в мові C++ заснований на трьох ключових словах: try, catch і throw. Фрагменти програми, що підлягають контролю, містять блок try. Якщо в ході виконання програми в блоці try виникає виняткова ситуація (тобто помилка), вона генерується...
68960. Генерація виняткових ситуації 56 KB
  Якщо виникає необхідність повторно порушити виняткову ситуацію усередині її обробника, можна виконати оператора throw, не указуючи тип виняткової ситуації. В цьому випадку операторові try/catch передається поточна виняткова ситуація. Таким чином для однієї і тієї ж виняткової ситуації...
68961. Перехоплення класів виняткових ситуацій 34.5 KB
  Виняткова ситуація може мати будь-який тип, зокрема бути об’єктом класу, визначеного користувачем. У практичних застосуваннях виняткові ситуації, визначені користувачем, зустрічаються частіше, ніж вбудовані. Можливо, це відбувається тому, що програмісти прагнуть якомога точніше визначати класи виняткових...