Определение площади фигур с помощью метода Монте-Карло

IX Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Определение площади фигур с помощью метода Монте-Карло

Трухачева Е.С. 1
1МБОУ СШ № 11
Рытова И.А. 1
1МБОУ СШ № 11
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Число π является одним из интереснейших чисел, встречающихся при изучении математики. Оно встречается в разных школьных дисциплинах. С числом π связано много интересных фактов, поэтому оно вызывает интерес к изучению. Число 3,14 лишь одно из приближённых значений чисел π.

Куда бы мы ни обратили свой взор, мы видим проворное и трудолюбивое число  π: оно заключено и в самом простом колесике, и в самой сложной автоматической машине. Именно поэтому я решил познакомиться с проблемой поближе.

Существует много способов вычисления площадей фигур. Точное вычисление по формулам для простейших фигур, приближенное вычисление площадей ограниченных кривыми, вид которых задан функцией и т.д. Метод приближенного вычисления площадей фигур с применением датчика случайных чисел называют методом Монте-Карло.

Метод Монте-Карло это метод статических испытаний. Свое экзотическое название он получил от города Монте-Карло в княжестве Монако. Город наиболее известен благодаря своему казино и пользуется популярностью у представителей высшего общества. Дело в том, что метод требует применения случайных чисел, а одним из простейших приборов, генерирующих случайные числа, может служить рулетка.

Цель работы: создание программ по вычислению числа π, используя метод Метод-Карло.

Достижение поставленной цели предполагает решение следующих задач:

- изучить литературу с целью получения информации о методе Монте-Карло;

- установление связи метода и города в княжестве Монако;

- разработка программ для проведения практического эксперимента по вычислению числа π с применением данного метода.

Объектом исследовательской работы являются программы по вычислению числа π.

Предметом рассмотрения явилось значение числа π в результате работы созданных программ.

Методы исследования. В ходе исследования использовались различные методы и приемы анализа учебной и научно-популярной литературы, ресурсов сети Интернет, практическая работа, эксперимент.

Основная часть

2.1. Суть метода Монте-Карло для нахождения площади фигур

Метод Монте-Карло можно использовать для приближенного вычисления площади различных фигур.

П роведем опыт. Пусть у нас есть фигура на плоскости, площадь которой (S1) нам необходимо найти. Ограничим ее прямоугольником ABCD с площадью S (см. рис. 1).

Теперь начнем опыт – будем бросать на бумагу зерна случайным образом. Когда нам покажется, что зерна почти полностью покрыли бумагу, посчитаем, сколько всего зерен на прямоугольнике (пусть их число NABCD) и сколько из них на фигуре (NF). Ясно, что число зерен, попавших внутрь фигуры, пропорционально ее площади: больше площадь – больше зерен, меньше площадь – меньше зерен. Поэтому, поделив количество зерен, попавших внутрь фигуры, на количество всех зерен в прямоугольнике, мы сможем найти, какую часть площади прямоугольника занимает фигура:

, отсюда

Создадим компьютерную модель для нашего опыта (Приложение 1).

Описание эксперимента. Предположим, нам надо найти площадь фигуры ограниченной сверху кривой y = F(X), а снизу – осью абсцисс. Пусть y = cos(x) (см. рис. 2). Ограничим нашу фигуру прямоугольником ABCD.

В полученной модели задаем количество точек, которые попадут во внутреннюю область нашей фигуры (рис. 3), нажимая на кнопку Посчитать, получаем площадь фигуры.

 

Рис. 3

Проведя несколько опытов в данной модели, полученные результаты зафиксируем в таблицу:

Количество точек

Площадь фигуры

100

2,0734

100

2,0420

100

2,0185

1000

2,0263

1000

2,0452

1000

1,9604

10000

2,0053

10000

1,9833

10000

1,9820

Вывод: из таблицы хорошо видно, что за точность вычислений приходится платить временем работы программы. Разные результаты за пределами точности при одном и том же количестве случайных точек зависит от того, что точки все таки случайные. Чем больше точек будет задействовано в компьютерной модели, тем точнее можно вычислить площадь нашей фигуры.

2.2. Определение числа π методом Монте-Карло

Метод Монте-Карло также можно использовать для нахождения числа π.

Для опыта надо приготовить кусок картона, нарисовать на нем квадрат и вписать в квадрат круг. Если такой чертеж некоторое время поддержать под дождем, то на его поверхности останутся следы капель.

Подсчитаем число следов внутри квадрата и внутри круга. Очевидно, что их отношение будет приблизительно равно отношение площадей этих фигур, так как попадание капель в различные места чертежа равновероятно. Дождь можно заменить таблицей случайных чисел, которая составляется с помощью компьютера в программе Visual Basic (Приложение 2).

Для нахождения числа π, прежде всего, вспомним формулу нахождения площади круга:

А нахождение площади круга методом Монте-Карло выполняем аналогично способу, который был описан ранее и получаем:

Из всего вышеизложенного получаем формулу для вычисления числа , которую использовали для создания компьютерной модели:

Анализ полученных результатов:

r

N

S

1

100

3,36

500

3,128

1000

3,096

5000

3,1496

10000

3,1448

Вывод: точность вычисления числа таким способом невелика: только в двух случаях из пяти найденное значение константы содержит верную цифру в разряде сотых, в остальных случаях достигнута точность только в разряде единиц. Но при увеличении количества генерируемых точек будет увеличиваться точность вычисления числа

Заключение

Число появляется в формулах, используемых во многих сферах. Физика, электротехника, электроника, теория вероятностей, строительство и навигация – это лишь некоторые из них. И кажется, что подобно тому как нет конца знакам числа , так нет конца и возможностям практического применения этого полезного, неуловимого числа .

В ходе проведения практического исследования я пришел к следующим выводам: полученное на практике число приближается к 3,14. Точность вычисления числа таким способом невелика: только в двух случаях из пяти найденное значение константы содержит верную цифру в разряде сотых, в остальных случаях достигнута точность только в разряде единиц.

Метод Монте-Карло позволяет более точно вычислять площадь фигур, только в тех случаях, когда будет задействовано большое количество точек.

Точное значение числа в современном мире представляет собой не только собственную научную ценность, но и используется для очень точных вычислений (например, строительства гигантских мостов), а также оценки быстродействия и мощности современных компьютеров.

Проведенный эксперимент показывает, что мною была достигнута цель, поставленная в начале работы.

Литература

Жуков А.В. Вездесущее число «Пи». – М.: Едиториал УРСС, 2004.

Угринович Н.Д. Исследование информационных моделей. – М.: Бином. Лаборатория знаний, 2006.

Энциклопедия для детей. Т11. Математика – М.: Аванта+, 1998.

Интернет-ресурсы:

http://habrahabr.ru/post/128454/

http://festival.1september.ru/articles/104286/

http://ru.wikipedia.org/wiki/Монте-Карло_(метод)

http://schoolkam.narod.ru/info/monte.htm

http://festival.1september.ru/articles/619885/

Приложения

Приложение 1

const A = -Pi/2.0; B = pi/2.0; n = 1000;
var
Form1: TForm1;
N_total:longint;
implementation
{$R *.dfm}
Function FUNC(x:real):real;
begin
Func:=Cos(x);
end;
Procedure Graphic( var right, down: integer;
var X_min, X_max, Y_min, Y_max, Kx, Ky: real);
type arr=array[1..n] of real;
var
 
X, Y: arr; dx: real;
i: integer;
begin
dx:=(B-A)/(n-1);
for i:=1 to n do begin X[i]:=A+dx*(i-1);
Y[i]:=FUNC(X[i]);
end;

{Нахождение максимального и минимального значений функции и аргумента}

X_max:=B; X_min:=A;
Y_max:=Y[1]; Y_min:=Y[1];
for i:=2 to n do begin
if Y_max < Y[i] then Y_max:=Y[i];
if Y_min > Y[i] then Y_min:=Y[i];
end;

{Нахождениекоэффициентовсжатия}

Kx:=right/(X_max-X_min);
Ky:=down/(Y_max-Y_min);
{
Устранениеискаженияграфика}
if Kx < Ky then begin
Ky:=Kx;
down:=round((Y_max-Y_min)*Ky);
end
else begin
Kx:=Ky;
right:=round((X_max-X_min)*Kx);
end; end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var N_total, N_fig, i:longint;
S_total,S_fig,X,Y:real;
Xg, Yg: integer;
X_min, X_max, Y_min, Y_max, Kx, Ky : real;
Right, Down: integer;
S:string;
begin
randomize;
With Image1, Canvas do
begin
FillRect(ClientRect);
Right := Width;
Down := Height;
Graphic(Right, Down, X_min, X_max, Y_min, Y_max, Kx, Ky);
Width := Right ;
Height := Down ;
{
Рисованиеосей}
Xg:=round(-X_min*Kx);
Yg:=Down-round(-Y_min*Ky);
{
Ось Y}
MoveTo(Xg,Down);
LineTo(Xg, 0);
moveto(Xg, 0);
lineto(Xg+4, 10);
moveto(Xg, 0);
lineto(Xg-4, 10);
{
ОсьХ}
MoveTo(0, Yg-1);
lineTo( Right, Yg-1);
moveto(Right, Yg);
lineto(Right-10, Yg+5);
moveto(Right, Yg);
lineto(Right-10, Yg-5);
N_fig:=0;
N_total:=StrToInt(Edit1.Text);
{
Розыгрышкоординатточек}
for i:=1 to N_total do
begin
X:=random*(B-A)+A;
Y:=random*(Y_max-Y_min)+Y_min;
if Y <= FUNC(X)then
begin
Xg:=round((X-X_min)*Kx);
Yg:=Down-round((Y-Y_min)*Ky);
Pixels[Xg, Yg]:=clBlack;
Application.ProcessMessages;
N_fig:=N_fig+1;
end; end; end;
S_fig:=(Y_max-Y_min)*(B-A)*N_fig/N_total;
Str(S_fig:10:4,S);
Panel1.Caption:='
Площадьфигуры = '+S;
end;
end.

Приложение 2

Dim Graph1 As Graphics

Dim Pen1 As New Pen(Color.Black, 1)

Dim I, N, M, X, Y, R As Long

Private Sub Button1_Click(…)

Graph1 = Me.PictureBox1.CreateGraphics()

Graph1.Clear(Color.White)

'Ввод данных

N = Val(TextBox1.Text)

R = Val(TextBox2.Text)

'Сдвиг по осям X и Y

Graph1.TranslateTransform(100, 100)

'Рисование круга и квадрата

Graph1.DrawEllipse(Pen2, -R, -R, 2 * R, 2 * R)

Graph1.DrawRectangle(Pen2, -R, -R, 2 * R, 2 * R)

For I = 1 To N

'Генерация случайных координат точек и их рисование в графическом поле

X = Int(Rnd() * 2 * R) - R

Y = Int(Rnd() * 2 * R) - R

Graph1.DrawEllipse(Pen1, X, Y, 1, 1)

'Подсчет точек, попавших внутрь круга

If X ^ 2 + Y ^ 2 <= R ^ 2 Then M = M + 1

Next I

'Вывод площади круга и числа Pi

Label1.Text = 4 * (M / N) * (R ^ 2)

Label2.Text = 4 * (M / N)

End Sub

Просмотров работы: 477