Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1.doc
Скачиваний:
0
Добавлен:
25.08.2019
Размер:
358.4 Кб
Скачать

6. Текст программы

#include<iostream.h>

#include<stdio.h>

#include<math.h>

#include<conio.h>

#include <stdlib.h>

#include <fstream.h>

#include <time.h>

//плотность распределения Эрланга lambda=3,k=10

double erl(double x)

{

return 0.1627*pow(x,9)*exp(-3*x);

}

//получение равномерно распределенных величин:[0;1]

double get_ravn() {

return (rand() % 100) * 0.01;

}

void main()

{

int i,j,N;

double r,min,max,u,l,h,m,D,hi;

double n[10000];

int k=10;

N=1000;

ofstream fout("13.txt",ios::in);

srand(time(0));

m=0;

/*Получение случайных величин

с законом распределения Эрланга

по методу суперпозиций*/

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

{n[i]=0;

for(j=0;j<k;j++)

{

n[i]=-(log(get_ravn()+0.001))/3;

}

fout<<"n["<<i+1<<"]="<<n[i]<<endl;

m=m+n[i];

}

fout.close();

m=m*0.001;//эмпирическое математическое ожидание

cout<<"m="<<m<<endl;

D=0;

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

D=pow((n[i]-m),2);

D=D*powf((N-1),-1);//эмпирическая дисперсия

cout<<"D="<<D<<endl;

//Определение доверительных интервалов

max=n[0];

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

if (n[i]>max) max=n[i];

min=0;

cout<<endl;

cout<<"Interval:"<<endl;

cout<<"["<<min<<";"<<max<<"]"<<endl;

h=(max-min)/10;

cout<<endl;

cout<<"Shag:"<<endl;

cout<<"h="<<h<<endl;

cout<<endl;

cout<<"Doveritelnie intervali:"<<endl;

for (i=0;i<10;i++)

cout<<i+1<<" ["<<(min+i*h)<<";"<<(min+(i+1)*h)<<"]"<<endl;

cout<<endl;

//Эмпирические частоты

l=min;u=min+h;

int v[10];

for (i=0;i<10;i++)

{

r=0;

for (j=0;j<N;j++)

if ((n[j]>=l)&&(n[j]<=u)) r++;

v[i]=r;

l=u;u=u+h;

cout<<"v["<<i+1<<"]="<<v[i]<<endl;

}

cout<<endl;

//Теоретические частоты

l=min;

double vteor[10];

for (i=0;i<10;i++)

{

vteor[i]=erl(l+0.5*h)*N*h;

if (vteor[i]<1) vteor[i]=1;

cout<<"vteor["<<i+1<<"]="<<vteor[i]<<endl;

l=l+h;

}

//Критерий Пирсона

hi=0;

for (i=0;i<10;i++)

hi+=pow(vteor[i],-1)*(vteor[i]-v[i])*(vteor[i]-v[i]);

cout<<"hi="<<hi<<endl;

getch();

}

7. Вывод

В данной лабораторной работе были рассмотрены методы моделирования на ЭВМ случайных дискретных и непрерывных величин, имеющих соответствующие законы распределения. Была реализована программа получения псевдослучайных чисел, имеющих распределение Эрланга (λ=3, k=10). Проверка качества полученных величин с помощью критерия Пирсона показала, что полученное эмпирическое распределение является правильным, т.к. =11.2211 находится в доверительном интервале .

16

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]