КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Программа вычисления определенного интеграла методом Монте-Карло.Вычислить определенный интеграл по методу “Монте-Карло” по формуле , где n – число испытаний ;g(x) – плотность распределения “вспомогательной” случайной величины X, причем , в программе 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 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(1000); {задержка, чтобы произвольные значения не повторялись} end; {конец испытаний} writeln(‘s=’,s); {Сумма функции для n произвольных значений} Integral:=(1/n)*k*s ; writeln(‘Интеграл=’,Integral); readln; END. Требуется ввести промежуток интегрирования и количество испытаний, интегрируемая функция уже задана в программе (но ее можно поменять). ; .
|