Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Красавин Компютерныы практикум в среде МатЛаб 2015

.pdf
Скачиваний:
218
Добавлен:
12.11.2022
Размер:
9.22 Mб
Скачать

x(k) = x1(i); % массив чисел, имеющих заданный закон распределения

end

end

x(k+1:end) = []; % незаполненные элементы массива x удаляются

D = max(x); delta = D/20;

figure % рис. 16.5 H = hist(x,20);

bar(H) % построение гистограммы распределения

hold on

xr = [0 : 0.05 : 20*delta];

f = H(1) * exp(-xr.^2); % нормировка функции на первый столбец гистограммы

plot(xr/delta,f,'r','LineWidth',3) % построение огибающей функции set(gca, 'LineWidth',1)

set(gca, 'FontName', 'Trebuchet MS') set(gca, 'FontSize', 8)

set(gca, 'FontWeight', 'bold')

title('\xi: p(x)=exp(-x^2); x\in[0,\infty]','FontSize', 12, 'FontName', 'Trebuchet MS')

Рис. 16.5. Гистограмма случайных чисел, распределенных с плотностью на интервале

191

Задания

16.1. Методом обратной функции сгенерировать случайные

числа,

распределенные

на

отрезке

 

с плотностью:

а)

α

;

б)

β

 

 

гистограммы распределе-

ний.

 

 

.

Построить

0,3

 

16.2. Методом Неймана сгенерировать случайные числа,

распределенные с плотностью

 

 

на отрезке

0,3

.

Построить гистограммы распределений.

 

 

192

17

Расчет интегралов методом Монте-Карло

Рассмотрим функцию

, заданную на интервале

,

. Пусть

необходимо вычислить интеграл

 

.

Для расчета выберем произвольную плотность распределения

,

определенную на том же интервале, причем

 

1.

Определим случайную величину

 

 

 

 

 

 

 

 

 

η

 

ξ

,

 

 

 

 

 

 

где

ξ

– случайная величина, распределеннаяξ

с плотностью

на

 

. Тогда математическое ожидание

η

будет равно искомому

интегралу, :

η

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим

независимых

случайных

величин

 

и

применим к их сумме центральную предельную

теорему, тогда

 

 

η ,η ,…,η

 

193

1

η

3

η

0.997.

 

Таким образом, если выбрано

случайных значений ξ ,ξ ,…,ξ

,

то при достаточно большом

 

 

1

 

ξ

,

 

 

 

 

 

 

ξ

 

 

и погрешность расчета не превосходит 3

η/

, где

 

η

η

 

 

1

 

ξ

.

 

 

 

 

 

ξ

Следует отметить, что сходимость результата к точному значению следует также из закона больших чисел, согласно

которому для любого ε

0

 

 

 

lim

1

η

ε

1.

Более того, справедлив усиленный закон больших чисел:

lim

1

η

1.

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

Воспользуемся известным неравенством Коши–Буняковского в интегральном виде:

194

|

|

.

Положим

; ,

тогда

|

|

 

 

 

.

 

 

Отсюда находим оценку снизу для дисперсии:

η

|

|

.

Выберем распределение

|

|;

|

|

.

Из распределения следует, что

1

|

|

|

|

.

Подставив это выражение в выражение для дисперсии, имеем

η

|

|

.

195

Таким образом, выбор

функции

|

в качестве

функции распределения

приводит к наименьшей|

ошибке, т.е.

низшей границе неравенства для дисперсии. Такой расчет

интеграла с наиболее близкой к

плотностью распределения

называется существенной выборкой.

 

Для иллюстрации эффективности такого выбора рассмотрим интеграл

/

sin 1.

Используем для расчета интеграла различные нормированные функции распределения, также определенные на интервале 0,π/2

(рис. 17.1):

2

;

8

.

π

π

Рис. 17.1. Подынтегральная функция и различные плотности распределения для расчета интеграла методом Монте-Карло

196

Методом обратной функции найдем случайные числа, распределенные на интервале 0,π/2 с плотностями и соответственно:

ξ

π

;

 

2

 

 

 

π

 

 

 

 

 

 

 

ξ

2

,

где – случайное число, равномерно распределенное на интервале

0,1 .

Соответственно, для оценки

интеграла

после

итераций

получаем:

 

 

 

 

π

 

sinξ

;

 

2

 

 

π

 

sinξ .

 

8

 

ξ

 

 

На рис. 17.2 показан процесс сходимости расчетного значения интеграла к точному значению в зависимости от числа сгенерированных случайных точек.

Видно, что значения

быстрее сходятся к точному ответу

при выборе функции распределения

.

Это объясняется тем,

что распределение

близко к подынтегральной функции

 

(см. рис. 17.1), поэтому дисперсия значений

при выборе этого

распределения будет меньше, чем при выборе распределения

.

Эффективность метода Монте-Карло растет с размерностью рассчитываемого интеграла. Расчет двумерных и трехмерных интегралов методом Монте-Карло более эффективен, чем расчет при помощи разностных схем. Метод Монте-Карло с успехом используется для различных физических и математических задач и процессов: для моделирования систем массового обслуживания,

197

информационных потоков, процессов протекания, процессов распространения нейтронов в средах и т.д.

Рис. 17.2. Выбор функции распределения сильно влияет на скорость сходимости расчета интеграла методом Монте-Карло

В примере 17.1 приведен код, реализующий приближение интеграла с распределениями и .

Пример 17.1. function IntMonte(N)

R = rand(1,N);

I1 = zeros(1,N);

I2 = zeros(1,N);

for i = 1 : N

I1(i) = pi/2/i*sum(sin(pi/2*R(1:i)));

I2(i) = pi/4/i*sum(sin(pi*sqrt(R(1:i))/2)./sqrt(R(1:i))); end

198

figure plot(I1,'b','LineWidth',2) hold on plot(I2,'r','LineWidth',2) set(gca, 'LineWidth',1)

set(gca, 'FontName', 'Trebuchet MS') set(gca, 'FontSize', 8)

set(gca, 'FontWeight', 'bold')

leg = legend('p(x)=2/\pi', 'p(x)=8x/\pi^2', 'Location', 'SouthEast');

set(leg, 'Box', 'off', 'FontName', 'Trebuchet MS', 'FontAngle', 'italic', 'FontSize', 10, 'FontWeight', 'bold')

Задания

17.1. Оптимизировать код из примера 17.1, использовав

рекуррентные соотношения для

.

 

 

 

 

 

17.2. Аппроксимировать интеграл

при помощи

случайных

чисел, распределенных с плотностью

 

 

 

 

 

 

β√ .

Сравнить

скорость сходимости с первыми двумя случаями.

17.3. Аппроксимировать интеграл

,

использовав распределения

const;

.

Сравнить скорость сходимости интеграла к точному значению.

199

18

Алгоритм Метрополиса

18.1. Марковская цепь. Понятие эргодичности

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

 

 

, ,…, ,…

подразумеваются все

последовательность состояний, где под

степени

свободы

рассматриваемой

системы

(например,

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

Обозначим через

 

 

, ,…,

 

 

 

при условии

вероятность

появления

нового

состояния

 

реализации

предыдущих

состояний

,

,…,

(условная

200

 

 

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