Красавин Компютерныы практикум в среде МатЛаб 2015
.pdf
set(gca, 'FontSize', 8) set(gca, 'FontWeight', 'bold')
%заливка положительных областей красным цветом, отрицательных
%- зеленым
colormap(redgreencmap([2]))
set(h, 'LineStyle','none')
grid off
title(['L = ', num2str(L), ', M = ', num2str(M)], 'FontName',...
'Trebuchet MS', 'FontSize', 8, 'FontWeight', 'bold')
end
Рис. 15.5. Сферическая гармоника для |
0 |
181
Рис. 15.6. Сферические гармоники для |
1 |
Рис. 15.7. Сферические гармоники для |
2 |
182
Рис. 15.8. Сферические гармоники для |
3 |
Рис. 15.9. Сферические гармоники для |
4 |
183
16
Случайные распределения
16.1. Метод обратной функции
При решении различных задач возникает потребность получать случайные величины, распределенные по различным законам, при помощи генератора случайных чисел, равномерно распределенных на интервале 0,1 . Существуют два достаточно простых и вместе с тем общих метода получения нужных распределений: метод обратной функции и метод фон Неймана.
Пусть необходимо, чтобы случайная величина , определенная |
||
на интервале |
, |
, принимала значение, меньшееξили равное , с |
вероятностью |
. Тогда функция |
|
ξ
называется функцией распределения случайной величины ξ и всегда монотонно увеличивается от 0 до 1:
|
, если |
; |
|
Плотность распределения |
0; |
случайной величины |
|
1. |
ξ |
||
определяется следующим образом: |
|
||
,
где верхний предел интегрирования меняется в области определения , .
184
0 |
Пусть существует такая обратная функция |
, что если |
||
1 |
, то |
тогда и только тогда, когда |
. |
|
|
|
|||
Следовательно, для нахождения искомого распределения нужно положить
ξ,
где – случайная величина, равномерно распределенная на 0,1 . Действительно,
ξ |
. |
На практике метод обратной функции применяется следующим образом. Пусть нужно получить значения случайной величины ξ, распределенной с плотностью на интервале , . Докажем, что значения ξ можно находить из уравнения
,
где – случайная величина, равномерно распределенная на 0,1 .
Рассмотрим функцию
,
при этом из свойств плотности распределения имеем:
Таким образом, |
функция |
|
монотонно возрастает от 0 до 1, и |
|||
|
0; |
|
1; |
|
0. |
|
любая прямая |
|
, где |
|
, пересекает график функции |
||
в одной |
единственной точке, абсцисса которой, как станет |
|||||
|
0 |
1 |
ξ |
|
||
ясно из дальнейшего, и есть искомое число |
(рис. 16.1). Таким |
|||||
образом, единственность решения доказана. |
|
|||||
|
|
|
|
185 |
|
|
Рис. 16.1. Прямая |
пересекает график функции |
, |
|
||
|
|
в единственной точке |
|
||
Далее |
выберем произвольный интервал |
внутри |
|||
интервала |
|
. Точкам |
этого интервала |
отвечают |
|
ординаты |
кривой, |
. Если |
|
, то |
|
этих событий, |
, и наоборот (рис. 16.2), а значитξ |
, |
вероятности, |
||
равны: |
|
|
|
||
.
Если |
, то |
этих событий, |
, и наоборот, |
Рис. 16.2.а значитξ , вероятности, |
равны |
||
186
Так как равномерно распределено на 0,1 , то
Следовательно, |
. |
|
, |
||
ξ |
||
и означает: величина имеет плотность распределения |
||
чтоТаким образом, для нахожденияξ |
необходимого распределения. |
|
следует искать обратную функцию |
. |
|
Пример 16.1. Пусть необходимо получить величину ξ, равномерно распределенную на интервале , . Нормированная плотность распределения ξ имеет вид
1 .
Тогда, согласно методуобратной функции,
.
Отсюда находим:
ξ,
т.е. в данном случае следует всего лишь сдвинуть отсчет и изменить масштаб исходной случайной величины .
Рассмотрим теперь экспоненциальное распределение. Случайные величины, имеющие экспоненциальное распределение, встречаются, например, в задачах о радиоактивном распаде.
Пусть необходимо получить случайную величину, распределенную на 0,∞ с функцией распределения
187
1
и, соответственно, с плотностью распределения
.
Применяя метод обратной функции, находим
1 |
; |
ln 1 |
. |
Таким образом, случайная величина
ξln 1
будет иметь экспоненциальное распределение. В примере 16.2 приведен код на языке MatLab, реализующий генерацию случайных чисел с экспоненциальным законом распределения.
Рис. 16.3. Гистограмма экспоненциального распределения
Пример 16.2.
function exp_raspr(R)
y = zeros(R,1);
188
x = zeros(R,1);
for i = 1 : R
y(i) = rand; % случайные числа, равномерно распределенные на
(0,1)
x(i) = -log(1-y(i)); % случайные числа, экспоненциально распределенные на (0,∞)
end
D = max(x); delta = D/20;
NN = R * delta;
figure % рис. 16.3
H = hist(x,20)/NN;
bar(H,'g') % построение гистограммы распределения
hold on
x = [0 : 0.05 : 20*delta]; f = exp(-x);
plot(x/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); x\in[0,\infty]','FontSize', 12, 'FontName', 'Trebuchet MS')
16.2. Метод Неймана
Интеграл, который необходимо рассчитать в методе обратной функции, не всегда можно взять аналитически. Дж. фон Нейман предложил следующий способ обойти эту проблему.
Предположим, что случайная величина |
|
определена |
на |
||||||
интервале , |
, и ее плотность распределения ограниченаξ |
: |
|
||||||
Тогда генерируются два случайных. |
числа |
, |
, |
равномерно |
|||||
распределенные на |
|
, и строится точка |
на |
плоскости |
с |
||||
координатами |
, |
где |
|
, |
|
|
. Если эта |
||
0,1 |
|
|
|
||||||
точка лежит ниже, кривой |
, т.е. |
|
|
(точка |
на |
||||
|
|
|
189 |
|
|
|
|
|
|
рис. 16.4), то искомое число |
найдено; |
если же точка лежит |
|
выше кривой (точка на рис.ξ |
16.4), то пара |
, |
отбрасывается и |
выбирается новая пара. |
|
|
|
Рис. 16.4. Метод фон Нейманагенерации случайных чисел
сплотностью распределения
Впримере 16.3 приведен код на языке MatLab, реализующий
генерацию случайных чисел с плотностью распределения на интервале 0,∞ по методу Неймана (рис. 16.5).
Пример 16.3.
function k = Neumann(N)
M = 1; a = 0;
b = 20; % правый предел распределения
x1 = zeros(N,1);
x2 = zeros(N,1); k=0;
x = zeros(N,1);
for i = 1 : N R1 = rand; R2 = rand;
x1(i) = a + R1 * (b - a); x2(i) = R2 * M;
if x2(i) < exp(-x1(i)^2)
k = k + 1; % счетчик чисел, имеющих заданный закон распределения
190
