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

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

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