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


 

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

15791. Понятие статистической сводки и группировки 16.36 KB
  Понятие статистической сводки и группировки. Виды группировок Группировка метод позволяющий распределить совокупность на группы по признакам сходства или различия. Например группировка предприятий города по формам собственности. С помощью метода группировок реш...
15793. Правила построения статистических таблиц 25.5 KB
  Правила построения статистических таблиц. Статистические таблицы необходимо строить по определенным правилам. Таблица должна быть компактной и содержать только те исходные данные которые непосредственно отражают исследуемое социальноэкономическое явление и
15794. Правило сложений дисперсий 73.74 KB
  Правило сложений дисперсий. Показатели вариации могут быть использованы не только в анализе изменчивости изучаемого признака но и для оценки степени воздействия одного признака на вариацию другого признака т.е. в анализе взаимосвязей между показателями. При проведе...
15795. Предмет метод и теоретические основы статистики 14.61 KB
  Предмет метод и теоретические основы статистики Предметом статистики является количественная сторона массовых общественных явлений в неразрывной связи с их качественной стороной которая отображается посредством объективных статистических показателей то есть осо
15796. Свойства средней арифмитической 49.34 KB
  Наиболее распространенным видом средних величин является средняя арифметическая. Простая средняя арифметическая: где xi значение варьирующего признака; n число единиц совокупности. База для вычисления этой средней первичные записи результатов наблю
15797. Сопоставимость уровней и смыкания рядов динамики 15.16 KB
  Сопоставимость уровней и смыкания рядов динамики Анализировать ряды динамики нельзя если приводятся несопоставимые данные. Несопоставимость статистических данных во времени может быть вызвана следующими причинами: инфляционным процессом; территориальные изменени...
15798. Способы установления величины интервала в количественной группировке 19.73 KB
  Группировочным называется признак по которому осуществляется разбиение единиц совокупности на отдельные группы. Его часто называют основанием группировки. В основание группировки могут быть положены как количественные так и качественные признаки. При построении гр
15799. Среднее квадратическое отклонение для альтернативного признака 69.32 KB
  Среднее квадратическое отклонение для альтернативного признака Среднее квадратичное отклонение определяется как обобщающая характеристика размеров вариации признака в совокупности. Оно равно квадратному корню из среднего квадрата отклонений отдельных значений пр