реферат, рефераты скачать
 

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


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

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

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 + |2 |5.737 |5.9702 |6.02 |5.99 |

|x | | | | | |

| | | | | | |

| | | | | | |

| | | | | | |

|f(x)=x * |3 |9.6775 |8.528 |8.7463 |8.937 |

|x | | | | | |


ИНТЕРЕСНОЕ



© 2009 Все права защищены.