Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГЗ.docx
Скачиваний:
41
Добавлен:
11.03.2015
Размер:
151.75 Кб
Скачать

Геометрический алгоритм Монте-Карло интегрирования

Рисунок 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, каждый раз генерируема датчиком случайных чисел.

Значение области с течением времени уменьшается.

МАКСИМУМ

МИНИМУМ

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]