Автор работы: Пользователь скрыл имя, 14 Августа 2014 в 06:57, контрольная работа
Метод Монте-Карло – метод решения различных задач с помощью последовательностей случайных чисел. Чаще всего его применяют при приближенном вычислении площадей геометрических фигур, объемов тел с точностью, достаточной для практики, при вычислении значения числа ПИ, при решении систем уравнений.
Метод Монте-Карло заключается в следующем. Предположим у нас есть геометрическая фигура сложной формы, площадь которой необходимо вычислить.
Введение...……………………………………………………………………1
Инструмент исследования…………………………………………………1
Описание задачи…………………………………………………………....1
Учебные задачи……………………………………………………………..1
Цели моделирования……………………………………………………….1
Содержательная часть пояснительной записки………………………...2
Математическая модель…………………………………………………....2
Завершение идеализации модели…………………………………….........2
Компьютерная модель……………………………………………………...3
Компьютерный эксперимент № 1………………………………………....6
Анализ результатов исследования
Проверка результатов на соответствие целям
Компьютерный эксперимент № 2……………………………………........7
Анализ результатов исследования
Проверка результатов на соответствие целям
Заключение…………………………………………………………………...8
Список литературы и других информационных источников……
Федеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И
“Вычисление площади геометрической фигуры методом Монте-Карло”
Тема проекта: ”Построение математической модели вычисления площади фигуры, ограниченной линиями y=x*x/4, y=x, x=2 методом Монте-Карло и с помощью интеграла”
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
ЗАДАНИЕ
“Вычисление площади геометрической фигуры методом Монте-Карло”
учащейся 11 “В” класса школы № 25 Бредихиной Ирине Михайловне
Тема проекта: ”Построение математической модели вычисления площади фигуры, ограниченной линиями y=x*x/4, y=x, x=2 методом Монте-Карло и с помощью интеграла”
Сроки сдачи проекта:
Аннотация
Модель, построенная в среде визуального программирования Delphi, позволяет вычислить площадь фигуры, ограниченной линиями y = x*x / 4 , y = x , x = 2 методом Монте-Карло и с помощью интеграла, а также сравнивать результаты, полученные выше описанными способами (определить погрешность в вычислении площади фигуры методом Монте-Карло). Данная модель может оказаться полезной для тех, кто желает вычислить площадь сложной геометрической фигуры с точностью, достаточной для практики (то есть в тех случаях, когда нет строго определенных формул и способов для нахождения площадей фигур, например, как в представленном случае). Также пользоваться этой моделью могут те люди, которые просто хотят изучить численный метод Монте-Карло, напрямую связанный с генерированием последовательностей случайных чисел, проследить каким образом генерация и число испытаний влияют на результаты вычислений.
Содержание
Введение...…………………………………………………
Инструмент исследования………………………………………………
Описание
задачи…………………………………………………………..
Учебные
задачи…………………………………………………………….
Цели
моделирования……………………………………………
Содержательная часть пояснительной записки………………………...2
Математическая модель…………………………………………………....2
Завершение
идеализации модели………………………………
Компьютерная модель……………………………………………………...3
Компьютерный эксперимент № 1………………………………………....6
Анализ результатов исследования
Проверка результатов на соответствие целям
Компьютерный эксперимент № 2……………………………………........7
Анализ результатов исследования
Проверка результатов на соответствие целям
Заключение……………………………………………………
Список литературы и других информационных источников…………9
Приложения……………………………………………………
Среда визуального программирования Delphi.
(вычисление площади сложной геометрической фигуры)
Вычислить методом Монте-Карло площадь геометрической фигуры, ограниченной линиями y = x*x / 4 , y = x , x = 2, вписанной в квадрат со стороной 2 (следует из построения чертежа), причем координаты левого нижнего угла квадрата совпадают с началом координат (т.е. его координаты (0;0)).
Цели моделирования
Учебные задачи
Математическая модель
Последовательность чисел, значения которых определяются в зависимости от случая, называются последовательностью случайных чисел.
Последовательности случайных чисел моделируются в различных программных продуктах. Так, в Excel случайное число в диапазоне от 0 до 1 генерируется функцией СЛЧИС ( ), а в Delphi – функцией Random.
Метод Монте-Карло – метод решения различных задач с помощью последовательностей случайных чисел. Чаще всего его применяют при приближенном вычислении площадей геометрических фигур, объемов тел с точностью, достаточной для практики, при вычислении значения числа ПИ, при решении систем уравнений.
Метод Монте-Карло заключается в следующем. Предположим у нас есть геометрическая фигура сложной формы, площадь которой необходимо вычислить. Пусть площадь нашей фигуры S1. Впишем эту фигуру в простую геометрическую фигуру, площадь которой вычисляется легко, например, в прямоугольник или квадрат. В нашем случае это будет квадрат, площадь которого S2.
Представим, что площадь квадрата и нашей фигуры покрываются слоем снега, как во время снегопада. В этом случае число снежинок М, которые упали в контур фигуры S1, и число снежинок N, которые упали в контур квадрата, пропорциональны (считаем, что толщина снежного покрова одинакова). Тогда можно записать пропорцию: S1 / S2 = M / N. из этой формулы легко получить S1 = S2*M / N. Если количество “снежинок “ M и N заменить точками, полученными с помощью генератора случайных чисел, то можно решать различные задачи с помощью метода Монте-Карло.
Завершение идеализации модели
Изобразим условия задачи графически. На рисунке 1 показана геометрическая фигура, ограниченная линиями и квадрат, в котором лежит эта фигура. Таким образом, условия задачи похожи на задачу из лабораторной работы № 10; только место круга по условию задачи известно, что геометрическая фигура получена пересечением графиков следующих функций: y = x*x / 4 , y = x , x = 2. Кроме того, как видно из построения (из чертежа), фигура помещена в квадрат со стороной 2 и с началом координат в левом нижнем углу. Таким образом, площадь квадрата (S2) будет равна 4. А площадь сложной геометрической фигуры S1 будет определяться по формуле (по методу Монте-Карло): S1 = S2*M / N = 4*M / N.
M - число точек, случайным образом попавших в закрашенную фигуру.
N - число точек, случайным образом попавших в квадрат (число испытаний).
Случайный выбор точек должен производиться так, чтобы точка попала в квадрат (следует из выше описанной формулы), т.е. координаты точки (x,y) должны удовлетворять условию: 0<x<2; 0<y<2.
Иначе площадь геометрической фигуры можно найти через интеграл:
S = ƒ (x-x*x/4) dx =x*x/2/ - x*x*x/12/=4/3=1.33
(Площадь рассматриваемой геометрической фигуры, найденная через интеграл, будет обозначаться просто S).
Компьютерная модель
Чтобы построить компьютерную модель, реализующую поставленную задачу, используем подобную компьютерную модель из лабораторной работы № 10 (внесём изменения в интерфейс модели: удалим метку и текстовое поле “радиус”, добавим метку “Площадь фигуры, вычисленная с помощью интеграла, S=1,33” и “S1-S=” (с помощью последней метки будем сравнивать S и S1, т.е. будем определять абсолютную погрешность вычисления площади фигуры вероятностным методом); изменим код программы в строке, где подсчитывается, сколько точек попало в закрашенную фигуру (смотреть комментарии в программе)).
Так как данная модель создавалась в среде визуального программирования Delphi, то и решение задачи производилось на языке Паскаль.
Первоначально необходимо было составить блок-схему вычисления площади геометрической фигуры методом Монте-Карло (рисунок 2, см. Приложение А).
Затем был создан интерфейс компьютерной модели, которая вычисляет площадь геометрической фигуры методом Монте-Карло и отображает случайное распределение точек в квадрате и в самой фигуре (примерный вид интерфейса показан на рисунке 3 (см. Приложение Б), используемые компоненты описаны в таблице 1).
Название компонента |
Характерные свойства |
LabelN |
Caption = "Всего точек в квадрате, N=” |
LabelS1 |
Caption = "Площадь фигуры, S1= " |
Labelintegral |
Caption = "Площадь фигуры,
вычисленная с помощью |
LabelRaznost |
Caption = "S1-S=" |
Edit1 |
Text = 10000 |
Button1 |
Caption = “Вычислить” |
Табл.1
Ну и, наконец, был введён код программы, реализующей решение поставленной задачи:
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
Type
TForm1 = class (TForm)
LabelN: TLabel;
Button1: TButton;
Edit2: TEdit;
Image1: TImage;
LabelS1: TLabel;
Labelintegral: TLabel;
LabelRaznost: TLabel;
procedure Button1Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
N: integer; // количество точек в квадрате
M: integer; // счетчик количества точек, попавших в круг
implementation
{$R *.dfm}
// кнопка Вычислить
procedure TForm1.Button1Click (Sender: TObject);
var
X, Y: real;
i: integer;
begin
// задаем начальные данные
N:= StrToInt(Edit2.Text);
M:= 0;
// генерируем случайным образом точки и отображаем их
Randomize;
For i: =1 to N do
begin
X: = Random (100)/100;
Y: = Random (100)/100;
// считаем, сколько точек попало в фигуру
if ((x<2) and (x>0)) AND ((y>x*x/4) and (y<x))
then M := M+1;
end;
LabelS1.Caption := 'Площадь фигуры, S1 = '+ FloatToStr(4*M/N);
LabelRaznost.Caption := 'S1-S=' + FloatToStr(abs(1.33- 4*M/N));
end;
end.
Компьютерный эксперимент № 1
(Как точность вычисления площади фигуры зависит от числа испытаний N).
Вычислим площадь фигуры при N = 100, N = 1000,
N = 10000, N = 100000,
N |
S1 |
S1 - S |
100 |
1,52 |
0,19 |
1000 |
1,568 |
0,238 |
10000 |
1,6412 |
0,3112 |
100000 |
1,63164 |
0,30164 |
1000000 |
1,63338 |
0,30338 |