Слайд 2Пример использования
метода Монте-Карло при составлении информационной модели
F – плоская фигура с
произвольной границей
S – площадь фигуры F (S - ?)
Будем считать, что F полностью расположена внутри единичного квадрата
Выберем в квадрате N случайных точек
N1 – количество точек, попавших в фигуру F
S=lim (N1/N)
N→∞
Слайд 3Особенности метода Монте-Карло
1). Простая структура вычислительного алгоритма
составляется алгоритм для выполнения
одного случайного действия и повторяется N раз, причем каждый опыт не зависит от остальных
2). Ошибки пропорциональны √(D/N)
D – некоторая постоянная
N – число испытаий
Слайд 4Задачи, которые решаются методом Монте-Карло
Во-первых
метод позволяет моделировать любой процесс, на
протекание которого влияют случайные факторы
Во-вторых
Для многих математических задач, не связанных с какими-либо случайностями можно искусственно придумать вероятностную модель, решающую эти задачи
Метод нахождения площади будет справедлив, если СЛУЧАЙНЫЕ точки бкдкт располагаться РАВНОМЕРНО по всему квадрату
Слайд 5(1 этап) Постановка задачи
Задача: Дана геометрическая фигура неправильной формы. Вычислите ее площадь.
Фигура задана своей границей. Результатом решения является площадь S этой фигуры.
Слайд 6(2 этап) Анализ объекта моделирования и построение информационной модели
! Рассмотрим
в качестве примера математическую модель нахождеия площади круга радиуса r. Действовать будем по принципу первого примера. !
Слайд 7(2 этап) Анализ объекта моделирования и построение информационной модели
Шаг 1.
Примем a=r, где а – половина длины стороны квадрата, тогда S1 (площадь квадрата) вычисляется по формуле
S1=2*a*2*a
Слайд 8(2 этап) Анализ объекта моделирования и построение информационной модели
Шаг 2.
Случайным образом выбираем точку, принадлежащую квад-рату (задаем ее координаты, т.е х и у)
Точка принадлежит квадрату, если
-a<=x<=a and –a<=y<=a
Or
-r<=x<=r and –r<=y<=r
Слайд 9(2 этап) Анализ объекта моделирования и построение информационной модели
Шаг 3.
Точка принадлежит кругу, если справедливо неравен-ство:
x^2+y^2<=r^2
Or
x^2+y^2<=a^2
Слайд 10(3-4 этапы) Алгоритмизация решения задачи и создание компьютерной модели
Исполнитель Basic – система
Шаг
1. Ввод данных:
Число точек n
Радиус круга r
……………………………………………………………………….
PRINT”Введите число бросаемых точек”
INPUT n PRINT”Введите радиус круга”
INPUT r
………………………………………………………………………
Слайд 11(3-4 этапы) Алгоритмизация решения задачи и создание компьютерной модели
Шаг 2. Запрограммируем создание
последовательности случайных чисел и выбор числа из этой последовательности.
…………………………………………………………………………………
Randomize timer ‘создание последовательности
‘ случайных чисел
Let x = (a-(-a))*rnd+(-a)
‘выбор следующего случ. числа из диапазона от –а до а ‘и присваи-вание его значения переменной х
Let y = (a-(-a))*rnd+(-a)
‘выбор следующего случ. числа из диапазона от –а до а ‘и присваи-вание его значения переменной х
…………………………………………………………………………………
Т.е. точка (х;у) принадлежит квадрату со стороной 2а
Слайд 12(3-4 этапы) Алгоритмизация решения задачи и создание компьютерной модели
Шаг 3. Совокупность
команд, определяющих, принадлежит ли точка М(х;у) фигуре, площадь которой ужо найти, оформим в виде подпрграммы-функции Belong%
FUNCTION Belong%(x AS DOUBLE,
y ASDOYBLE,a AS DOUBLE)
LET Belong%=0
IF x*x+y*y<=a*a THEN
Belong%=1
END IF
END FUNCTION
Слайд 13(3-4 этапы) Алгоритмизация решения задачи и создание компьютерной модели
Шаг 4. Формирование
случайным образом координат х и у, а так же вызов функции Belong% происходит в основной программе в цикле по i on 1 до n(количество точек). Если функция принимает значение 1 то переменная-счетчик m (в начале программы обнулен) увеличивается на 1
……………………………………………………………………………………..
FOR i= 1 to n
LET x=2*a*rnd-a
LET y=2*a*rnd-a
IF Belong%((x),(y),(a))=1 then
LET m=m+1
END IF
NEXT i
……………………………………………………………………………………………….
Слайд 14(3-4 этапы) Алгоритмизация решения задачи и создание компьютерной модели
Шаг 5. Подсчет
результата, т.е S = (m/n)*S1. Как видно из формулы, для получения S необходимо знать чему равна S1 (площадь квадрата со стороной а=r). Как упоминалось выше, S1=a*2*a*2. Далее – вывод результатов.
……………………………………………………………
LET S1=2*a*2*a
LET S=(m/n)*S1
PRINT “n=“;n;”S=“;S
……………………………………………………………
Слайд 15(3-4 этапы) Алгоритмизация решения задачи и создание компьютерной модели
Комментарии:
I В
данной задаче так же возможно провести подсчет времени, втечение которого выполнились все действия программы. Это осуществляется ледующим образом:
1) После запуска RANDOMIZE TIMER перемнной time1 присваивается значение timer
2) После окончания работы цикла по I от 1 до n перемнной time2 присваивается значение timer
3) Находится разница: Время счета time2-time1
II Программу можно дополнить имитацией бросания точек в квадрат
Слайд 16(6-7 этапы) Вычислительный эксперимент. Анализ результатов эксперимента
Для проведения эксперимента возьмем радиус
круга r=1. В этом случае площадь круга равна числу пи
Результаты эксперимента: