Гудков (1197963), страница 4
Текст из файла (страница 4)
Т. 55. В. 2. С. 250 – 270.16 Гнеденко Б.В., Колмогоров А.Н. Предельные распределения для суммнезависимых случайных величин. Москва, Ленинград: Государств. изд-вотехнико-теоретич. литературы, 1949.33ПРИЛОЖЕНИЕПрограммный код C#//Подключение необходимых библиотекu s i n g System ;u s i n g System .
D i a g n o s t i c s ;namespace maxEss{c l a s s Program{// Константа Pic o n s t double PI = 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3D;//N − размерность сеткиconst int N = 100;//Функция A( c , f i )s t a t i c double A( double c , double phi ){double a = Math . S q r t (1 − Math . Pow( c , 2) ) ∗Math . Cos ( phi ) / c ;return a ;}//Функция B( c , f i )s t a t i c double B( double c , double phi )34{double b = Math .
S q r t (1 − Math . Pow( c , 2) ) ∗Math . Sin ( phi ) / c ;return b ;}//Функция K1s t a t i c double K1( double A, double B){double k1 = A ∗ B ∗ (1 − A − B − A ∗ B) ;r e t u r n k1 ;}//Функция K0s t a t i c double K0( double A, double B){double k0 = 1 + A ∗ A + B ∗ B + A ∗ B ∗ (1 + A +B) ;r e t u r n k0 ;}//Функция Gs t a t i c double G( double t , double A, double B){double g = ( ( t + 3) ∗ (A ∗ B ∗ t + 1) ) / ( t ∗ ( t ∗35K1(A, B) + K0(A, B) ) ) ;return g ;}//Функция вывода массива данных на экранs t a t i c v o i d showArr ( double [ , ] a r r ){f o r ( i n t i = 0 ; i < a r r .
GetLength ( 0 ) ; i ++){f o r ( i n t j = 0 ; j < a r r . GetLength ( 1 ) ; j ++){Console . Write ( " {0:#0.0000}\ t " , a r r [ i , j ] ) ;}Console . WriteLine ( ) ;}}//Функция поиска максимума в наборе данныхs t a t i c double Max( double [ , ] a r r ){double max = a r r [ 0 , 0 ] ;f o r ( i n t i = 0 ; i < a r r . GetLength ( 0 ) ; i ++){f o r ( i n t j = 0 ; j < a r r .
GetLength ( 1 ) ; j ++){i f ( a r r [ i , j ] > max)36{max = a r r [ i , j ] ;}}}r e t u r n max ;}//Функция поиска минимума в наборе данныхs t a t i c double Min ( double [ , ] a r r ){double max = a r r [ 0 , 0 ] ;f o r ( i n t i = 0 ; i < a r r . GetLength ( 0 ) ; i ++){f o r ( i n t j = 0 ; j < a r r . GetLength ( 1 ) ; j ++){i f ( a r r [ i , j ] < max){max = a r r [ i , j ] ;}}}r e t u r n max ;}37// Главная функция программыs t a t i c v o i d Main ( ){// Объявление переменных и массивовs t r i n g s = "" ;double Ess ;double c ;double phi ;double t ;double [ ] arrC = new double [N ] ;double [ ] arrPHI = new double [N ] ;double [ , ] arrA = new double [ N,N ] ;double [ , ] arrB = new double [ N,N ] ;//Вывод на экран начальных данных :// размерность сетки , c , f iConsole .
WriteLine ( "N: {0} " ,N) ;Console . WriteLine ( "0 <C < 1\ n0 < PHI <{0:#0.#####}\n" , PI /4) ;//Шаг h_c для сdouble h_c = 1 / ( 1 . 0 ∗N + 1) ;//Шаг h_phi для phidouble h_phi = PI / ( 4 . 0 ∗N + 1) ;//Шаг h_t для t38double h_t = 1 . 0 /N;//Вывод экран значений hConsole . WriteLine ( "Width o f C:{0}\ nWidth o fPHI : {1}\n" , h_c , h_phi ) ;//Начало отсчета времены выполнения программыStopwatch stopWatch = new Stopwatch ( ) ;stopWatch . S t a r t ( ) ;// Сетка C и PHIc = h_c ;phi = h_phi ;f o r ( i n t i = 0 ; i < N; i ++){arrC [ i ] = c ;arrPHI [ i ] = phi ;c += h_c ;phi += h_phi ;}// Получение значений функций A и Bc = h_c ;f o r ( i n t i = 0 ; i < N; i ++){phi = h_phi ;f o r ( i n t j = 0 ; j < N; j ++)39{arrA [ i , j ] = A( c , phi ) ;arrB [ i , j ] = B( c , phi ) ;i f ( j == I && i == J ){s = " c : " + c + " phi : " + phi + "\ r \n" ;}phi += h_phi ;}c += h_c ;}//Шаг tint n = 0;double [ , ] arrMax = new double [ N, N ] ;// Вычисление max на всех промежутках от 1/A до 1/Bf o r ( i n t i = 0 ; i < N; i ++){f o r ( i n t j = 0 ; j < N; j ++){t = 1 / arrA [ i , j ] ;i f ( j == I && i == J ){s += "A: " + arrA [ i , j ] + " B : " + arrB [ i , j ]+ "\ r \n" ;}40w h i l e ( t <= 1/ arrB [ i , j ] ){Ess = (1 + G( t , arrA [ i , j ] , arrB [ i ,j ] ) ) /(3∗Math .
S q r t (2∗ PI ) ) ;i f ( j == I && i == J ){s += t + " " + Ess + "\ r \n" ;}i f ( Ess > arrMax [ i , j ] ){arrMax [ i , j ] = Ess ;}t += h_t ;n++;}}}// Вычисление константы Эссеенаdouble CE = ( Math . S q r t ( 1 0 ) +3) /(6∗Math . S q r t (2∗ PI ) ) ;//Вывод на экран количества итераций циклаConsole . WriteLine ( "Count i t e r a t i o n s : {0}\n" , n ) ;//Вывод на экран полученных результатов ://максимум функции Эссеена ,// значение верхней границы константы Берри−Эссеена ,41// погрешность вычисленийConsole .
WriteLine ( "Maximum : {0}\n" +"CE:{2:#0.###############}\n" +" Error :{1:#0.###############}\n" ,Max( arrMax ) , CE − Max( arrMax ) , CE) ;// Окончание отсчета времени выполненияstopWatch . Stop ( ) ;//Вывод на экран количества затраченного времениConsole . WriteLine ( "Runtime : " + stopWatch . Elapsed ) ;Console . ReadKey ( ) ;}}}42.