Далее приведены тексты двух программ, в которых рассматривается проведение статистических экспериментов.
Программа 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(); } |