Цель:
Написать программу вычисления приближенных значений интеграла заданной функции методом Монте-Карло.
Написать алгоритм вычисления приближенных значений интеграла заданной функции методом Монте-Карло.
function TMeths.Monte_Carlo():real;
var
i,j:integer;
sumI:array of real;
sumA,x,S,sumAI:real;
begin
sumA:=0;
определяем количество испытаний, которые будем проводить
SetLength(sumI,k);
for j:=0 to K-1 do
begin
sumI[j]:=0;
После этого считаем значение интеграла к-раз по формуле (1)
for i:= 1 to n do
begin
x:= a + (b - a) * Random; //
sumI[j] := sumI[j] + Funct(x);
end;
sumI[j] := sumI[j] / n * (b - a);// (1)
sumA:=sumA+sumI[j];
end;
//вычисление эмпирического среднего по выборке с общим числом к
Am:=1/k*sumA; //
sumAI:=0;
for j:=0 to k-1 do
begin
sumAI:=sumAI+sqr((sumI[j]-Am));
end;
//вычисление среднего квадратичного отклонения и погрешности, которая нужна для вычисления доверительного интервала
S:=sqrt(1/(k-1)*sumAI);
E:=1.96*S/sqrt(n);
Result:=Am;
end;
В архиве сама программа.


Численное интегрирование методом Монте-Карло (0.34 MB)

