Skip to content

Instantly share code, notes, and snippets.

@buger
Created November 7, 2011 16:49
Show Gist options
  • Save buger/1345486 to your computer and use it in GitHub Desktop.
Save buger/1345486 to your computer and use it in GitHub Desktop.
Монтекарло методом площадей
function q2 =pl(a,b,N)
// Высота графика
G=4;
q2 = zeros(1,10);
for i=1:10
// Количество точек попавших под график
k = 0;
// Генерируем много случайных точек
x = unifrnd(a,b,1,N);
y = unifrnd(0,G,1,N);
for j=1:N
// Проверяем что наша точка под графиком
if func1(x(j))>=y(j)
// Увеличиваем счетчик точек, находящихся под графиком
k = k+1;
end
end
// G.*(b-a) это площадь всего прямоугольника высота * ширину
// k./N - соотношение точек которые попали под график ко всем точкам
// Например если наша площадь 100. Мы сгенерировали 1000 точек и только 300 точек попало под график, значит примерная площадь занимаемая графиком 100 * 300/100 = 100 * 0.3 = 30
q2(i)=G.*(b-a).*k./N;
end
disp(['Для N=' num2str(N) ': интервал [' num2str(min(q2)) ',' num2str(max(q2)) ']'])
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment