рефераты бесплатно
Рефераты бесплатно, курсовые, дипломы, научные работы, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения,рефераты литература, рефераты биология, рефераты медицина, рефераты право, большая бибилиотека рефератов, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент и многое другое.
ENG
РУС
 
рефераты бесплатно
ВХОДрефераты бесплатно             Регистрация

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

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

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

                                                  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


 




© 2010.