КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Способ №1Стр 1 из 3Следующая ⇒ Лекция. Метод Монте-Карло
Дан прямоугольник высотой H и длиной b– a такой, что функция f(x) целиком лежит внутри данного прямоугольника. Сгенерируем N пар случайных чисел, равномерно распределенных в данном прямоугольнике:
Оценка величины интеграла может быть получена из формулы: Где N – полное количество точек A – площадь прямоугольника. Пример программной реализации Способа №1 program monte_karlo; uses crt; const n = 1000; var i:integer; xMin, xMax, yMin, yMax, xR, yR, fR, ns, integral: real; function myFun(x:real):real; begin myFun:=sin(x) end;
Begin clrscr;
write('Введите xMin ');readln(xMin); write(' Введите xMax ');readln(xMax); write(' Введите yMin ');readln(yMin); write(' Введите yMax ');readln(yMax); ns:=0; for i:=1 to N do begin xR:= xMin+(xMax-xMin)*random(); yR:= yMin+(yMax-yMin)*random(); fR:= myFun(xR); if yR<fR then ns:=ns+1; end; integral:= (xMax-xMin)*(yMax-yMin)*ns/n; writeln('Интеграл =',integral);
writeln('Конец расчетов'); readln End.
|