Вычисление интегралов методом Монте-Карло

Вычисление определенного интеграла методом тАЬМонте-КарлотАЭ

                                                  b

Определенный интеграл I = ∫ f(x)dx по методу тАЬМонте-КарлотАЭ

                                      n          a

по формуле I = (1/n)* ∑ (f(xi))/(g(xi)) ,где n тАУ число испытаний ;g(x) тАУ плотность

                                     i=1                                                                                                                 b

распределения тАЬвспомогательнойтАЭ случайной величины X, причем ∫ g(x)dx = 1 ,

                                                                                                                   a

В программе g(x) = 1/(b-a) .

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

Program pmk;

Uses crt;

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

       n,i,a,b : integer;

BEGIN

randomize;

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(10000); {задержка,чтобы произвольные значения не повторялись}

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

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

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

writeln(тАШИнтеграл=тАЩ,Integral);

readln;

END.

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

3                                   3

∫(x+1)dx = 6  ;  ∫ (x*x)dx = 9; (По методу Ньютона-Лейбница).   

1

Функция

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

Вместе с этим смотрят:

Вычисление корней нелинейного уравнения
Вычисление кратных интегралов
Вычисление кратных интегралов методом ячеек с автоматическим выбором шага
Вычисление определенного интеграла