Метод Монте-Карло и его применение

Задача. Найти оценку интеграла .

Решение. Так как , то примем . Тогда,

полагая число испытаний n=10, имеем оценку

.

Выполнив элементарные преобразования, получим

.

Учитывая, что a=0, b=1, возможные значения разыграем по формуле . Результаты вычислений приведены в таблице 4.

Номер i

1

2

3

4

5

6

7

8

9

10

0,100

0,973

0,253

0,376

0,520

0,135

0,863

0,467

0,354

0,876

0,010

0,947

0,064

0,141

0,270

0,018

0,745

0,218

0,125

0,767

1,010

1,947

1,064

1,141

1,270

1,018

1,745

1,218

1,125

1,767

1,005

1,395

1,032

1,068

1,127

1,009

1,321

1,104

1,061

1,329

2,000

1,843

2,000

1,995

1,984

2,000

1,897

1,990

1,997

1,891

Сложив числа последнего столбца таблицы 4, найдём сумму 19,597, подставив которую в соотношение , получим искомую оценку интеграла

.

Заметим, что точное значение I=1,147.

§6. Программа вычисления определенного интеграла методом Монте-Карло.

Вычислить определенный интеграл по методу “Монте-Карло” по формуле

,

где n – число испытаний ;g(x) – плотность распределения “вспомогательной” случайной величины X, причем , в программе g(x) = 1/(b-a)

Программа написана на языке TURBOPASCAL 7.0

Program pmk;

Uses crt;

Var k,p,s,g,x,Integral : real;

n,i,a,b : integer;

BEGIN

writeln(‘Введите промежуток интегрирования (a;b):’);

readln(a);

readln(b);

writeln(‘Введите количество случайных значений(число испытаний):’);

readln(n);

k:=b-a; {Переменной“k”присвоим значение длины промежутка интегрирования}

writeln(‘k=’,k);

for i:= 1 to n do begin {проведем n испытаний}

g:=random; {g – переменная вещественного типа, случайная величина из промежутка [0;1]}

x:= a + g*(b-a); {По этой формуле получается произвольная величина из [a; b] }

s:=s + (1+x); {s:=s +(x*x)} {Вообще можно подставить любую функцию}

delay(1000); {задержка, чтобы произвольные значения не повторялись}

end; {конец испытаний}

writeln(‘s=’,s); {Сумма функции для n произвольных значений}

Integral:=(1/n)*k*s ;

writeln(‘Интеграл=’,Integral);

readln;

END.

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

; .

Функция

k

N=10

N=100

N=500

N=1000

f(x)=1+x

2

5.737

5.9702

6.02

5.99

f(x)=x*x

3

9.6775

8.528

8.7463

8.937

§7. Вычисление кратных интегралов методом Монте-Карло.

Пусть функция непрерывна в ограниченной замкнутой области S и требуется вычислить m-кратный интеграл

. (1)

Геометрически число I представляет собой (m+1)-мерный объём прямого цилиндроида в пространстве , построенного на основании S и ограниченного сверху данной поверхностью , где .

Преобразуем интеграл (1) так, чтобы новая область интегрирования целиком содержалась внутри единичного m-мерного куба. Пусть область S расположена в m-мерном параллелепипеде

. (2)

Сделаем замену переменных . (3)

Тогда, очевидно, m-мерный параллелепипед (2) преобразуется в m-мерный единичный куб (4)

и, следовательно, новая область интегрирования σ, которая находится по обычным правилам, будет целиком расположена внутри этого куба.

Вычисляя якобиан преобразования, будем иметь:

. Таким образом, , (5)

где . Введя обозначения и , запишем интеграл (5) короче в следующем виде: . (5/)

Страница:  1  2  3  4  5  6 


Другие рефераты на тему «Математика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы