- •Алгоритм Бюффона для определения числа Пи
- •Связь стохастических процессов и дифференциальных уравнений
- •Рождение метода Монте-Карло в Лос-Аламосе
- •Дальнейшее развитие и современность
- •Интегрирование методом Монте-Карло
- •Обычный алгоритм Монте-Карло интегрирования
- •Геометрический алгоритм Монте-Карло интегрирования
- •Использование выборки по значимости
- •Квантовый метод Монте-Карло
Геометрический алгоритм Монте-Карло интегрирования
Рисунок 3.Численное интегрирование функции методом Монте-Карло
Для определения площади под графиком функции можно использовать следующий стохастический алгоритм:
ограничим функцию прямоугольником (n-мерным параллелепипедом в случае многих измерений), площадь которогоSparможно легко вычислить;
«набросаем» в этот прямоугольник (параллелепипед) некоторое количество точек (Nштук), координаты которых будем выбирать случайным образом;
определим число точек (Kштук), которые попадут под график функции;
площадь области, ограниченной функцией и осями координат, Sдаётся выражением
Для малого числа измерений интегрируемой функции производительность Монте-Карло интегрирования гораздо ниже, чем производительность детерминированных методов. Тем не менее, в некоторых случаях, когда функция задана неявно, а необходимо определить область, заданную в виде сложных неравенств, стохастический метод может оказаться более предпочтительным.
Использование выборки по значимости
При том же количестве случайных точек, точность вычислений можно увеличить, приблизив ограничивающую искомую функцию область к самой функции. Для этого необходимо использовать случайные величины с распределением, форма которого максимально близка к форме интегрируемой функции. На этом основан один из методов улучшения сходимости в вычислениях методом Монте-Карло: выборка по значимости.
Оптимизация
Применение в физике
Компьютерное моделирование играет в современной физике важную роль и метод Монте-Карло является одним из самых распространённых во многих областях от квантовой физики до физики твёрдого тела, физики плазмы и астрофизики.
Алгоритм Метрополиса
Традиционно метод Монте-Карло применялся для определения различных физических параметров систем, находящихся в состоянии термодинамического равновесия. Предположим имеется набор W(S) возможных состояний физической системыS. Для определения среднего значениянекоторой величиныAнеобходимо рассчитать, где суммирование производится по всем состояниямSизW(S),P(S) — вероятность состоянияS.
Динамическая (кинетическая) формулировка
Прямое моделирование методом Монте-Карло
Прямое моделирование методом Монте-Карло какого-либо физического процесса подразумевает моделирование поведения отдельных элементарных частей физической системы. По сути это прямое моделирование близко к решению задачи из первых принципов, однако обычно для ускорения расчётов допускается применение каких-либо физических приближений. Примером могут служить расчёты различных процессов методоммолекулярной динамики: с одной стороны система описывается через поведение её элементарных составных частей, с другой стороны, используемый потенциал взаимодействия зачастую являетсяэмпирическим.
Примеры прямого моделирования методом Монте-Карло:
Моделирование облучения твёрдых тел ионами в приближении бинарных столкновений.
Прямое Монте-Карло моделированиеразреженных газов.
Большинство кинетических Монте-Карло моделей относятся к числу прямых (в частности, исследование молекулярно-пучковой эпитаксии).
Квантовый метод Монте-Карло
Квантовый метод Монте-Карло широко применяется для исследования сложных молекул и твёрдых тел. Это название объединяет несколько разных методов. Первый из них это вариационный метод Монте-Карло, который по сути является численным интегрированием многомерных интегралов, возникающих при решенииуравнения Шрёдингера. Для решения задачи, в которой участвует 1000 электронов, необходимо взятие 3000-мерных интегралов, и при решении таких задач метод Монте-Карло имеет огромное преимущество в производительности по сравнению с другимичисленными методами интегрирования. Другая разновидность метода Монте-Карло — этодиффузионный метод Монте-Карло.
Листинг программы
Program mkar;
uses crt;
var n,a,b:real;
j:integer;
procedure mk(j:integer; n,a,b:real);
var r,y,u,x,h,xx:real; dd:integer; {metod Monte-Karlo}
begin
r:=1; h:=b-a;
x:=(random-0.5)*h;
y:=sin((x*x)/3);
u:=y;
if j=1 then
begin
repeat
x:=x+(random-0.5)*h;
y:=sin((x*x)/3);
begin
if u <= y then
u:=y;
xx:=x;
end;
r:=r+1;
until r>n;
end;
if j=2 then
begin
repeat
x:=x+(random-0.5)*h;
y:=sin((x*x)/3);
begin
if u >= y then
u:=y;
xx:=x;
end;
r:=r+1;
until r>n;
end;
write('y=',u) ;
end;
begin {osnovnay programma}
clrscr;
write('max or min 1/2 =>');readln(j);
writeln('n,a,b ?'); readln(n,a,b); mk(j,n,a,b);
readkey;
writeln;
end.
Краткое описание хода работы программы:
На 1-ом этапе вводим какую нибудь функцию для дальнейшей с нею работы.
На 2-ом этапе мы определяем дальнейшую суть её работы, т.е. что она вобщем должна делать с заданной нашей функцией.
(В данной программе в нахождении максимума или минимума)
3-ий этап у нас заключается в вводе кол-ва испытаний и размера области поиска(h=b-a) .
Причём для достижения оптимума в методе М-К с достаточно большой степенью вероятности, необходимо произвести большое кол-во испытаний.
С увеличением размерности пространства решений, кол-во испытаний увеличивается.
Каждое испытание заключается в генерации случайного вектора опорного решения x и вычисление целевой ф-ции от x.
Преимущество: 1)простота и регулярность в алгоритме.
2)возможность нахождения глобального оптимума.
Недостаток: 1) большое кол-во испытаний
2) отсутствие четких критериев основного алгоритма
Для уменьшения вычислительных затрат в методе М-К используется последовательное уменьшение области поиска.
Таким образом, координата каждой случайной точки вычисляется следующим образом:
Xi:=xi-1+(t-0.5)*h
Где i – номер испытания
H – размер области для поиска
T – случайное число на интервале от 0 до 1, каждый раз генерируема датчиком случайных чисел.
Значение области с течением времени уменьшается.
МАКСИМУМ
МИНИМУМ