10.7. НЕРАВНОМЕРНЫЕ РАСПРЕДЕЛЕНИЯ ВЕРОЯТНОСТЕЙ

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

Необходимо ввести понятие плотности вероятности р(х), при этом p(x)dx — вероятность  того,   что  случайное   число   принадлежит отрезку

[х, х + dx]. Плотность вероятности нормируется так, чтобы

Примем, что г—случайное число, равномерно распределенное на единичном интервале [0, 1] с плотностью вероятности

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

Функция Р(х) интерпретируется как интегральная функция распределения, которая равна вероятности получения случайного числа, меньшего илн равного х. Геометрическая интерпретация: Р(х) представляет собой часть площади под кривой плотности вероятности р(х) слева от х. Требуемое соотношение между величинами х н г легче сформулировать, чем вывести. Ниже мы покажем, что обращение выражения

приводит к искомому соотношению

Чтобы разобраться в формулах (10.30) и (10.31), заметим, что поскольку переменная г равномерно распределена на единичном отрезке, то функция Р(х), связанная с г соотношением (10.30), также распределена   равномерно.   Вероятность  того,   что   Р(х)   принадлежит отрезку

[Р(х), Р(х) + dP(x)], равна dP(x), н она же, согласно (10.30), равна dr. Соотношение между dP(x) и dx можно найти, дифференцируя равенство (10.29):

Отсюда, используя (10.28), имеем для 0 s г £ 1

Из выражения (10.33) видим, что переменная х распределена с требуемой плотностью вероятности р(х).

Последовательность шагов, соответствующая методу обратного преобразования, следующая: генерируется случайное число г и решается (10.31) с получением соответствующего значения х. В качестве примера воспользуемся (10.31) для получения случайных чисел, равномерно распределенных на отрезке [а, 6]. Требуемая плотность вероятности р(х) равна

Функцию интегрального распределения вероятности Р(х) на отрезке а £ х £ Ь можно найти, подставив (10.34) в (10.29) и вычислив интеграл. В результате получим

Если подставить выражение (10.35) для Р(х) в (10.30), то найдем искомое соотношение

Переменная х, определяемая формулой (10.36), распределена с плотностью вероятности (10.34). Соотношение (10.36) было использовано в подпрограмме random2 нз разд. 10.4.

Приведем пример использования метода обратного преобразования для функции распределения

Если подставить (10.37) в (10.29) и выполнить интегрирование, то получим Р(х) = 1 - е~ах. В этом случае решение уравнения (10.30) дает х = -а-,1п(1 - г). Поскольку 1 - г распределена так же, как н г, мы можем написать

Переменная х, полученная из (10.38), распределена с плотностью вероятности р(х) по закону (10.37). Заметим, что на большинстве компьютеров вычисление натурального логарифма, входящего в (10.38), будет протекать с использованием разложения в степенной ряд для каждого значения г. Поэтому метод обратного преобразования может оказаться не самым эффективным.

Для применения метода обратного преобразования должны выполняться два условия. Вид функции Р(х) должен быть таким, чтобы интеграл (10.29) вычислялся аналитически или численно и чтобы было возможно разрешить соотношение Р(х) = г относительно х. К сожалению, гауссово, или нормальное, распределение

является примером распределения, для которого невозможно получить Р(х) аналитически. Однако мы можем сгенерировать двумерное гауссово распределение p(x,y)dxdy:

воспользовавшись методом Бокса—Мюллера. Перейдем к полярным координатам

о

положим р = т /2 и запишем вероятность в виде

Анализ  выражения  (10.42)   показывает,   что  если   генерировать  р рас-

пределенным по экспоненциальному закону (10.37), а в генерировать равномерно распределенным на отрезке [0, 2тг], то переменные

будут распределены по закону (10.39) с нулевым средним и с = 1. Другие процедуры получения гауссова распределения мы рассмотрим в задаче 11.12 и приложении 10В.

ЗАДАЧА 10.9. Неравномерные плотности вероятности

а.         Напишите программу, которая позволит убедиться в том, что по-следовательность случайных чисел {хп}, формируемая по формуле(10.38), распределена по экспоненциальному закону (10.37).

б.         Постройте генератор случайных чисел, распределенных с плот-ностью вероятности

в.         Убедитесь в том, что переменные х и у в (10.43) распределеныв соответствии с гауссовым законом. Чему равны среднее значениеи стандартное отклонение х и у?

"г. Как можно с помощью выражений (10.43) получить распределение Гаусса с произвольными средним и дисперсией?