سؤال

أنا بحاجة إلى إنشاء المعمم جاوس ضجيج المولدات في Matlab.

GGN عشوائية إشارة v من التوزيع التالي:

v ~ GN(mi, alfa, beta) :

p(v; mi, alfa, beta) = (beta/(2*alfa*gamma(1/beta))) * exp(-(abs(v - mi)/alfa).^beta )

حيث p هي probablility احتساب قيمة v.

ملاحظة ، gamma بنيت في Matlab وظيفة أن يحسب قيمة غاما وظيفة.

كنت أحاول إنشاء مولد النحو التالي:

function gn = GN(dim1, dim2, mi, alfa, beta)
gn = zeros(dim1, dim2);
for i=1:dim1
    for j=1:dim2
        v = mi + 10*(alfa^2)* rand(1) - 5*(alfa^2);
        prob = rand(1);
        while(p(v, mi, alfa, beta) < prob)
            v = mi + 10*alfa* rand(1) - 5*alfa;
            prob = rand(1);
        end
        gn(i,j) = v;
    end
end

function pval = p(v, mi, alfa, beta)
pval = (beta/(2*alfa*gamma(1/beta))) * exp(-(abs(v - mi)/alfa).^beta );

ولكن حلقة يبدو أن تكون لانهائية ، هناك شيء خاطئ

نلاحظ أيضا أن:
beta = 2 هذا مولد يجب إرجاع القيم يساوي العادية توزيع جاوس متوسط قيمة mi و الانحراف المعياري alfa^2/2

تحرير حسنا, دوغ أشار لي في الاتجاه الصحيح.نحن بحاجة إلى إنشاء v القيمة أكثر أو أقل من المحتمل أن تكون مختارة (أنا افترض أن 10* الأمراض المنقولة جنسيا هو جيد جدا) ومن ثم التحقق من احتمال الشرط.
من المهم أيضا أن رسم جديدة prob قيمة لكل احتمال تحقق (في حين حلقة).
لذلك المشكلة حل

علما أن هذا المولد يسمح لك لتوليد:
- جاوس الضوضاء beta = 2 - Laplasian (الدافع) الضوضاء beta = 1

هل كانت مفيدة؟

المحلول

حاولت هذا وانها عملت بشكل جيد.علما بأنني مجموعة عشوائية عتبة الأكثر رقم عشوائي من أي وقت مضى ، 0.1 (خيار صحيح من [0 1]).pval يجب أن يكون كبيرا من مشكلة أن تكون مقبولة.

>> GN(2,2,1,1,2)

prob =

    0.1000


pval =

    0.4738


prob =

    0.1000


pval =

    0.2674


prob =

    0.1000


pval =

    0.4885


prob =

    0.1000


pval =

    0.5473


ans =

    0.5821    0.1358
    0.6204    0.8254

يبدو لي أن هذا هو مجرد بجد اليانصيب الفوز عندما عشوائية عتبة من 1.لاحظ عدد ممكن أن يخرج عن pval.

فإنه ليس من حلقة لانهائية فقط أن كنت طالبا MATLAB اختيار أرقام عشوائية حتى الفوز في اليانصيب ، عدة مرات!يبدو قليلا من Bogosort

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top