100806

Моделирование случайных независимых величин

Лабораторная работа

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

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

Русский

2018-04-13

276 KB

0 чел.

Лабораторная работа №2

студента группы ПИ-41

Рамазанова Фарида Эльмаровича

Выполнение:__________     Защита:__________

МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ НЕЗАВИСИМЫХ ВЕЛИЧИН

ЦЕЛЬ РАБОТЫ: уточнение имитационной модели СМО посредством моделирования случайных величин, характеризующих параметры заявок и режимы функционирования устройств их обработки в реальной сложной системе

ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ:

1. В соответствии с условием задания определить параметры законов распределения, которым подчинены случайные величины.

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

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

4. Включить генераторы случайных величин в полученную ранее имитационную модель и произвести моделирование СМО в условиях случайного изменения параметров имитационной модели.

Вариант №17

Ход работы:

1. Функции распределения случайных величин

(1) = 0,16−0,1611−(2−60)2

(2) = 4√232

1−(3−60)2(3) = 3√218

1−(3−60)2(4) = 2√28

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

3. Разработал модуль тестирования и протестировал каждый из генерирующих модулей.

Рисунок 1. Тестирование t1

По заданию:M[t] = 62,5

Рисунок 2. Тестирование t2

По заданию: M[t] = 60

=4

Рисунок 3. Тестирование t3

По заданию: M[t] = 60

=3

Рисунок 4. Тестирование t4

По заданию: M[t] = 60

=2

Модуль тестирования:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.IO;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

namespacetest

{

   public partial classForm1: Form

   {

       intmode = 0;

       intind = -1;

       Random random =newRandom();

       publicForm1()

       {

           InitializeComponent();

           ind = tabControl1.SelectedIndex;

           chart1.Series[0].IsVisibleInLegend =false;

           chart2.Series[0].IsVisibleInLegend =false;

           chart3.Series[0].IsVisibleInLegend =false;

           chart4.Series[0].IsVisibleInLegend =false;

           mode = 1;

           Test(mode, 0.016, 0, 0);

}

public doubleAssignment(intmode,doublel,doublesigma,doublem) {

           if(mode == 1)

           {

               varx = random.NextDouble();

               return(-1 / l * Math.Log(x));

           }

else

{varx = random.NextDouble();varx2 = random.NextDouble();return(sigma * Math.Cos(2*Math.PI*x) * Math.Sqrt(-2*Math.Log(x2)) + m);

} }

       public voidTest(intmode,doublel,doublesigma,doublem)

       {

varM = 25;varN = M * 100;vareV = 0.0;varsD = 0.0;double[] kolmogorL =new double[] { 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3,

1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0 };

           double[] kolmogorP =new double[] { 1.0, 1.0, 1.0, 1.0, 0.997, 0.964, 0.864, 0.711, 0.544, 0.393, 0.27,

0.178, 0.112, 0.068, 0.04, 0.022, 0.012, 0.006, 0.003, 0.002, 0.001 };

           varrandom =newList<double>();

           varreal =newList<double>();

           varstatistP =newList<double>(new double[M]);

           for(vari = 0; i < N; i++)

           {

               varf = Assignment(mode, l, sigma, m);

               random.Add(f);

           }

           varYmax = random.Max();

           varYmin = random.Min();

           vardeltaY = (Ymax - Ymin) / M;

           eV = random.Sum() / N;

           for(vari = 0; i < N; i++)

           {

               sD += Math.Pow(random[i] - eV, 2);

               varindex = (random[i] - Ymin) * (M / (Ymax - Ymin));

               if(index >= 0 && index < M)

                   statistP[(int)index] += 1;

           }

           sD /= N - 1;

           for(vari = 0; i < M; i++)

           {

statistP[i] /= N;

sigma)) * 0.001;

x += deltaY;

staticFunc += statistP[i];

switch(mode)

{

   case1:

       if(x < 0)

           theoreticFunc = 0;

else

           theoreticFunc = 1 - Math.Exp(-l * x);

       break;

   case2:

       varj = Ymin;

       varfunc = 0.0;

       while(j <= x)

       {

func += 1 / (sigma * Math.Sqrt(2 * Math.PI)) * Math.Exp(-Math.Pow(j - m, 2) / (2 * sigma *

j += 0.001; }

       theoreticFunc = func;

break; }

varabs = Math.Abs(staticFunc - theoreticFunc);

if(D < abs)

D = abs;

}

for(vari = 0; i < M; i++)

{

   switch(mode)

   {

       case1:

           chart1.Series[0]["PixelPointWidth"] ="10";

           chart1.Series[0].Points.AddXY(i, statistP[i] / deltaY);

           chart1.Series[0].Points[i].AxisLabel =" ";

           label2.Text = eV.ToString();

           break;

       case2:

           switch(ind)

{case1:

                   chart2.Series[0]["PixelPointWidth"] ="10";

                   chart2.Series[0].Points.AddXY(i, statistP[i] / deltaY);

                   chart2.Series[0].Points[i].AxisLabel =" ";

                   label3.Text = eV.ToString();

                   label5.Text = sD.ToString();

                   break;

               case2:

                   chart3.Series[0]["PixelPointWidth"] ="10";

                   chart3.Series[0].Points.AddXY(i, statistP[i] / deltaY);

                   chart3.Series[0].Points[i].AxisLabel =" ";

                   label9.Text = eV.ToString();

                   label7.Text = sD.ToString();

                   break;

               case3:

                   chart4.Series[0]["PixelPointWidth"] ="10";

                   chart4.Series[0].Points.AddXY(i, statistP[i] / deltaY);

                   chart4.Series[0].Points[i].AxisLabel =" ";

                   label13.Text = eV.ToString();

                   label11.Text = sD.ToString();

break; };

break; }

}

varstaticFunc = 0.0;

vartheoreticFunc = 0.0;

varD = -999999.9;

varx = Ymin;

for(vari = 0; i < M; i++)

{

}varlambd = Math.Round(D * Math.Sqrt(N), 1);varpLambd = kolmogorP[Array.IndexOf(kolmogorL, lambd)];label16.Text = lambd.ToString();label17.Text = pLambd.ToString();/*--------------------------------------------------------------------------------------*/varintervalP = Ymin;varsupX = 0.0;varbetta = 0.0;for(vari = 0; i < M; i++)

5

* sigma)) * 0.001;

case1:

   varfunc1 = 0.0;

   varj1 = intervalP;

   while(j1 <= intervalP + deltaY)

   {

       func1 += l * Math.Exp(-l * j1) * 0.001;

j1 += 0.001; }

res = func1;

   break;

case2:

   varfunc2 = 0.0;

   varj2 = intervalP;

   while(j2 <= intervalP + deltaY)

   {

       func2 += 1 / (sigma * Math.Sqrt(2 * Math.PI)) * Math.Exp(-Math.Pow(j2 - m, 2) / (2 * sigma

j2 += 0.001; }

res = func2;

} }

{

   varres = 0.0;

   switch(mode)

   {

break; }

   supX += Math.Pow(statistP[i] - res, 2) / res;

   intervalP += deltaY;

}

supX *= N;

switch(mode)

{

   case1:

       betta = M - 2;

       break;

   case2:

betta = M - 3;

break; }

label21.Text = supX.ToString();label19.Text = betta.ToString();/*--------------------------------------------------------------------------------------*/vartaus =new int[] { Convert.ToInt32(0.00002 + l + m), Convert.ToInt32(0.002 + l+ m) };varmas =newList<double>();varcm = 0.0;varcs = 0.0;foreach(var tauintaus){

   for(inti = 0; i < N - tau; i++)

   {

       cm += random[i] * random[i + tau];

       vart = 0.0;

       for(intj = 0; j < N - tau; j++)

           t += random[j + tau];

       cs += random[i] * t;

   }

   cm /= (N - tau);

   cm -= Math.Pow(N - tau, 2);

   mas.Add(cm);

}

varp = 0.0;

while(p < 0.9)

{

varcp = (1 - p) * (Math.Sqrt(1 / N) + 0.001);

if(Math.Abs(mas[0]) < cp && Math.Abs(mas[1]) < cp)

   break;

elsep += 0.01;

private voidtabControl1_Click(objectsender, EventArgs e)

{

   ind = tabControl1.SelectedIndex;

   switch(ind)

   {

       case0:

           chart1.Series[0].Points.Clear();

           mode = 1;

           Test(mode, 0.016, 0, 0);

           break;

case1:

} }

} }

   chart2.Series[0].Points.Clear();

   mode = 2;

   Test(mode, 0, 4, 60);

   break;

case2:

   chart3.Series[0].Points.Clear();

   mode = 2;

   Test(mode, 0, 3, 60);

   break;

case3:

   chart4.Series[0].Points.Clear();

   mode = 2;

Test(mode, 0, 2, 60);

   break;

4. Произвел моделирование СМО в условиях случайного изменения параметров имитационной модели.

Рисунок 5. Протокол моделирования

Сравнил результаты моделирования:

Рисунок 6. Результаты из работы №1

Рисунок 7. Результаты из работы №2


 

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

55358. Наше здоров’я – в наших руках 710 KB
  Очікувані результати: учні навчаться збирати та аналізувати інформацію планувати свій час створювати буклети презентацію проекту набудуть навичок давати творчу оцінку результатам проектної діяльності та власним досягненням.
55359. Посвящается самому дорогому человеку 115.5 KB
  Потому что они ваши дети а вы их любимые дорогие единственные и неповторимые мамы. Но сегодня ваши дети приготовили для вас особые подарки ваши девчонки и мальчишки будут дарить вам дорогие мамы свое творчество.
55361. Медіа-клуб 111 KB
  Мета проекту: формувати комунікативні та соціальні компетентності учнів виховувати активну життєву позицію школярів; допомагати у набутті молодим поколінням соціального досвіду...
55362. Народна казка як скарбниця духовних надбань людства у процесі адаптації п’ятикласників до навчання в середній школі 142.5 KB
  Гідним прикладом для згуртування нового учнівського колективу є дії, вчинки, кращі риси ментальності українського характеру – доброта, милосердя, взаєморозуміння, взаємодопомога – героїв народних казок, творів, які вивчаються саме в цей важливий адаптивний період.
55363. Наша школа + енергозбереження 67 KB
  Актуальність даного проекту полягає в тому що проблема сьогодення енергетика й енергозбереження є актуальною не лише для нашої школи а й для нашої країни загалом. В цьому переконалися наші учні приймаючи вже кілька років участь в Міжнародному конкурсі Енергія і середовище мета якого знайти нові шляхи енергозбереження в нашій країні.
55364. Володимир Сосюра – співець землі донецької 100 KB
  Мета проекту: дослідити, вивчити й узагальнити факти з життя В.Сосюри; ознайомитись із творчим доробком поета, тематикою його творів; на основі цих досліджень розробити урок літератури рідного краю
55366. Та сторона мила, де мати народила 35 KB
  Мета проекту: - виховати почуття поваги до звичаїв та обрядів; - відчуття належності до України; - сформувати у школярів гуманістичні громадянські орієнтири.