Центральная Предельная Теорема и её приложения. Решение Определенного интеграла методом Монте-Карло — страница 8

  • Просмотров 4958
  • Скачиваний 678
  • Размер файла 136
    Кб

[0,1]. Имея случайное вещественное число из интервала [0,1] легко получить случайное число из любого интервала. Например, если z - случайное число из интервала [0,1] , тогда x=a+(b-a)*z - случайное число из интервала [a,b].      Как видно из приведенных выше оценок погрешности формулы (а) точность вычисления интеграла и в методе Монте-Карло определяется числом слагаемых N  в интегральной сумме - чем больше слагаемых, тем точнее

результат. Ниже приведен пример и программа, вычисляющая определенный интеграл методом Монте-Карло.       Метод Монте-Карло легко обобщается на интегралы произвольной кратности. Например, двукратный интеграл может быть вычислен по формуле     где xi, yi  - случайные числа, равномерно распределенные на интервалах [a,b] и [c,d] соответственно. Оценка точности вычисления интеграла по формуле (b) совершенно аналогично

приведенной выше для случая однократного интеграла и поэтому здесь не приводится.                                                  Пример №1: Вычислить определенный интеграл  I = Решение.        = .   Точное значение интеграла I=, ниже приведены результаты программы.     Листинг программы приведен в приложении №1. Программа называется MonteKarlo.            

      Пример №2: Вычислить определенный интеграл  I = Решение.   Точное значение интеграла I=, ниже приведены результаты программы.        Листинг программы приведен в приложении №2. Программа называется MonteKarlo1.             Приложение №1. Программа вычисления одномерного определенного интеграла методом Монте-Карло.   program MonteKarlo; uses crt; Label l1,l2; var j1,j,a,b,c,n1,k,n:integer; I,Y,x:real; Begin randomize; clrscr; writeln('Vvod znachenii'); write('a =

'); Read(a); write('b = '); Read(b); write('n = '); Read(n);      writeln('--------------------------------');      writeln('| k | integral | vsego ispitani|'); for j:=1 to 9 do     begin     I:=0;     for j1:=1 to n do       begin         x:=a+(b-a)*random;         I:=I+x*x+5*x;       end;         I:=I*(b-a)/n;         writeln('--------------------------------');         writeln('| ',j,' | ',i:2:6,' |      ',n,'     |');

        {writeln(' Integral = ',i:6:7,' vsego ispitani = ',n,' popalo pod function = ',n1);} end; writeln('--------------------------------'); readkey; end. Приложение №2. Программа вычисления многомерного определенного интеграла методом Монте-Карло.   program MonteKarlo2; uses crt; Label l1,l2; var j1,j,d,a,b,c,n1,k,n:integer; I,Y,x:real; Begin randomize; clrscr; writeln('Vvod znachenii'); write('a = ');Read(a); write('b = ');Read(b); write('c = ');Read(c); write('d = ');Read(d); write('n = ');Read(n);      writeln('--------------------------------');      writeln('| k | integral | vsego ispitani|'); for j:=1 to 9 do