Pembuatan bilangan acak parametrik dengan MATLAB

Saya bertanya-tanya apakah mungkin untuk menghasilkan distribusi acak yang merupakan fungsi dari parameter tertentu. Dengan kata lain, dengan menggunakan MATLAB saya mengetik rand(1,5) Saya memiliki distribusi acak seragam dari 5 angka antara 0 dan 1. Apakah hasil ini dapat diperoleh sebagai fungsi dari parameter tertentu? Apakah Anda tahu algoritma apa pun tentang itu? Saya hanya membutuhkannya dalam suatu interval tidak memerlukan representasi 2D.


person Nicholas    schedule 07.06.2013    source sumber
comment
sebagai suatu fungsi ... bagaimana tepatnya? Bisakah Anda memberikan contoh input/output yang Anda harapkan?   -  person Rody Oldenhuis    schedule 07.06.2013
comment
@RodyOldenhuis misalnya seandainya ada fungsi dari parameter tertentu dan juga fungsi dari jumlah total nilai yang saya inginkan di domain [0,1] saya. Jadi f(a,N) yang diberi nilai a memberikan distribusi bilangan acak tertentu: f(1,3) -> 0.256 0.434 0.876. Sebagai gantinya misalnya: f(1.5,3) -> 0.342 0.573 0.972. Saya mencari sesuatu seperti itu jika ada   -  person Nicholas    schedule 07.06.2013


Jawaban (1)


Saya pikir Anda ingin melakukan ini:
http://en.wikipedia.org/wiki/Inverse_transform_sampling

Di MATLAB, caranya cukup mudah, Anda cukup menentukan fungsinya.

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

Contoh ini agak dibuat-buat, karena kita bisa saja menggunakan randn. Namun metode ini berlaku secara umum.
Jika Anda memiliki kotak alat Statistik, dan Anda ingin mengambil sampel dari salah satu distribusi populer, lihatlah generator angka acak yang tersedia untuk Anda, tautan.

person Prashant Kumar    schedule 07.06.2013
comment
Saya dapat melihat n tetapi di mana parameter saya? Saya mencari generasi acak dengan f(a,N). - person Nicholas; 07.06.2013
comment
Jumlah parameter tidak terlalu penting. Setelah angka-angkanya diubah, hanya itu yang Anda butuhkan. Misalnya, pertimbangkan f = @(x) norminv(x,10,5), yang akan berubah menjadi distribusi normal berpusat di 10 dengan sigma 5. - person Prashant Kumar; 07.06.2013
comment
itu menarik, saya bisa menggunakan sigma sebagai parameter. Apakah fungsi Rand selalu memberi saya angka dalam [0,1]? - person Nicholas; 07.06.2013
comment
@Nicholas coba gunakan bantuan melalui:help rand untuk pertanyaan seperti ini. - person Dennis Jaheruddin; 07.06.2013