В этом примере показано, как создавать случайные числа с помощью метода инверсии равномерного распределения. Это полезно для распределений, когда можно вычислить обратную кумулятивную функцию распределения, но нет поддержки для выборки из распределения непосредственно.
Использовать rand генерировать 1000 случайных чисел из равномерного распределения на интервале (0,1).
rng('default') % For reproducibility u = rand(1000,1);
Метод инверсии основан на принципе, что непрерывные кумулятивные функции распределения (cdfs) равномерно распределяются по открытому интервалу (0,1). Если - однородное случайное число на (0,1), то (u) генерирует случайное число x из любого непрерывного распределения с указанным cdfF.
Используйте функцию обратного кумулятивного распределения для генерации случайных чисел из распределения Вейбулла с параметрами A = 1 и B = 1 которые соответствуют вероятностям в u. Постройте график результатов.
x = wblinv(u,1,1); histogram(x,20);

Гистограмма показывает, что случайные числа, сгенерированные с помощью обратной cdf-функции Вейбулла wblinv имеют распределение Вейбулла.
Одинаковые значения в u может генерировать случайные числа из любого распределения, например стандартного нормального, следуя той же процедуре, используя обратный cdf желаемого распределения.
figure x_norm = norminv(u,1,1); histogram(x_norm,20)

Гистограмма показывает, что при использовании стандартного нормального обратного cdf norminv, случайные числа, сгенерированные из u теперь имеют стандартное нормальное распределение.
hist | norminv | rand | wblinv