Генерация параметрических случайных чисел с помощью MATLAB

Мне было интересно, можно ли сгенерировать случайное распределение, которое является функцией определенного параметра. Другими словами, используя MATLAB I типа rand(1,5), я имею равномерно случайное распределение 5 чисел между 0 и 1. Можно ли получить этот результат как функцию определенного параметра? Вы знаете какой-нибудь алгоритм по этому поводу? Мне просто нужно, чтобы в интервале не нужно было 2D-представление.


person Nicholas    schedule 07.06.2013    source источник
comment
как функция... как именно? Можете ли вы привести пример ожидаемого ввода/вывода?   -  person Rody Oldenhuis    schedule 07.06.2013
comment
@RodyOldenhuis, например, предположим, что существует функция определенного параметра, а также функция общего количества значений, которые мне нужны в моем домене [0,1]. Таким образом, f(a,N) при заданном значении a дает определенное распределение случайных чисел: f(1,3) -> 0.256 0.434 0.876. Вместо этого, например: f(1.5,3) -> 0.342 0.573 0.972. Я ищу что-то подобное, если оно существует   -  person Nicholas    schedule 07.06.2013


Ответы (1)


Я думаю, вы хотите сделать это:
http://en.wikipedia.org/wiki/Inverse_transform_sampling< /а>

В MATLAB это довольно просто, вы просто указываете функцию.

n = 10000;         % number of random draws
r = rand(n, 1);    % generate uniform random numbers

f = @norminv;      % specify transforming function
tr = f(r);         % transformed numbers, now normally distributed
hist(tr, 30)       % plot histogram

Этот пример немного надуманный, так как мы могли просто использовать randn. Но в целом этот метод работает.
Если у вас есть набор инструментов статистики и вы хотите сделать выборку из одного из популярных дистрибутивов, взгляните на доступные вам генераторы случайных чисел,
ссылка.

person Prashant Kumar    schedule 07.06.2013
comment
Я вижу n, но где мой параметр? Я ищу случайную генерацию с f(a,N). - person Nicholas; 07.06.2013
comment
Количество параметров не имеет большого значения. После преобразования чисел это все, что вам нужно. Например, рассмотрим f = @(x) norminv(x,10,5), которое преобразуется в нормальное распределение с центром в 10 и сигмой 5. - person Prashant Kumar; 07.06.2013
comment
это интересно, я мог бы использовать sigma в качестве параметра. Всегда ли функция rand дает мне числа в [0,1]? - person Nicholas; 07.06.2013
comment
@Nicholas попробуйте использовать справку через: help rand для таких вопросов. - person Dennis Jaheruddin; 07.06.2013