ПРОВЕДЕНИЕ СТАТИСТИЧЕСКИХ ЭКСПЕРИМЕНТОВ
Методические указания к лабораторной работе №4 по дисциплине
"Моделирование информационных процессов и систем"

[Титульная страница | Оглавление | Предыдущая страница | Следующая страница ]


7. ОБРАЗЦЫ ПРОГРАММ.

Далее приведены тексты двух программ, в которых рассматривается проведение статистических экспериментов.

Программа 1(исходный файл lect4_1.cpp , выполняемый файл lect4_1.exe)

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

#define N 500
#include "model.h"
#include <math.h>
float e[500]; 
float m_rek[500];
float m_ist[500]; 
void main(void)
{  int a0;   int i;
  Init_graph();
     for(;;)
     {  input_int("press Enter for continue,  (9-exit) ",&a0);
	if( a0 = 9 ) break;
	     for(i=1; i < N ; i++)  m_ist[i] = exp( -0.5*0.5/2.0 )/ sqrt ( 2*PI );
	     for(i=1; i < N ; i++)
		{ e[i] = gauss(0, 1);  if( e[i] <= 0.5) e[i] = 0 ; }
	      m_rek[1] = e[1] ;
	      for( i=2 ; i < N ; i++ )
		m_rek[i] = ( i -1.0)/i *m_rek[i-1] + 1.0/i *e[i];
       graf_2(" matematem srednee ",m_rek,m_ist,1,N-1);
       }
       Close_graph();
}

Программа 2 (исходный файл lect4_2.cpp , выполняемый файл lect4_2.exe)

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

#define N 500
#include "model.h"
#include <math.h>
float e[500];
float d_rek[500]; 
float d_ist[500]; 
float m_rek[500];
void main(void)
{  int a0;   int i;
    Init_graph();
     for(;;)
     {  input_int(" press Enter if 9  - exit ",&a0);
	if(a0 = 9) break;
		 for(i=0 ; i < N ; i++)    d_ist[i] = ( PI -2.0 )/ PI;
	            for(i=0 ; i < N ; i++)
		{ 
		    e[i] = gauss(0, 1);
		    if(e[i] < 0) e[i] = -e[i];
		}
	d_rek[1] = 0;
	m_rek[1] = e[0];
	for(i=2; i < N; i++)
	m_rek[i] = (i -1.0)/i *m_rek[i-1] + 1.0/i *e[i];
     for(i=2; i < N; i++)
     d_rek[i]=(i-1.)/i*d_rek[i-1]+1./i*(e[i]-m_rek[i] )*(e[i]-m_rek[i] );

     graf_2(" dispersia ",d_rek,d_ist,1,N-1);   }
     Close_graph();
}

	

[Титульная страница | Оглавление | Предыдущая страница | Следующая страница ]