Peducate.ir

Peducate.ir

با هم بیاموزیم
Peducate.ir

Peducate.ir

با هم بیاموزیم

تولید اعداد تصادفی با توزیع نرمال بین بازه تعریف شده

تولید اعداد تصادفی با توزیع نرمال بین بازه تعریف شده

در نرم افزار متلب (Matlab)، می خواهیم N عدد تصادفی به گونه ای تعریف کنیم که اعداد تولید شده در بازه [a,b] قرار داشته باشند و از توزیع نرمال پیروی کنند. کد زیر این کار را انجام می دهد:  

clear;clc;

N=100;

a=2;

b=8;

y=zeros(1,N);

t=1;

while t<=N

temp=randn(1,1);

if temp<=b && temp >=a

    y(t)=temp;

    t=t+1;

    end

end

در خط اول تمام حافظه متلب (Matlab) با دستور clear و محیط خط فرمان با دستور clc پاک می شود.

در خط دوم تعداد اعداد مورد نیاز کاربر یعنی N تعریف می شود.

در خط سوم و چهارم، بازه اعداد تولیدی که باید در آن قرار داشته باشند مشخص می شود (حد پایین a و حد بالای b بازه اعداد تعریفی).

در خط پنجم با دستور zeros یک بردار با طولی برابر تعداد اعداد تولیدی تعریف می شود که تمام درایه های این بردار صفر هستند. در حقیقت در اینجا با دستور zeros مقدار اولیه ای برای بردار نهایی که قرار است اعداد را در خود نگه دارد، در نظر گرفته شده است.

در خط ششم، مقدار اولیه شمارنده حلقه (loop) برای مراحل بعد مشخص شده است.

در خط هفتم، با دستور while حلقه ای تعریف می شود به طوری که تا زمانی شمارنده حلقه t برابر تعداد اعداد دلخواه مورد نظر کاربر یعنی N نشود دستور در حلقه اجرا می شود.

در خط هشتم با دستور randn یک عدد تصادفی با توزیع نرمال ایجاد می گردد.

در خط نهم، شرط اینکه عدد تصادفی تولیدی در بازه تعریف شده کاربر قرار داشته باشد بررسی می شود. این کار توسط دستور if و عملگر منطقی And یا && انجام می گیرد.

در خط دهم، اگر عدد تولیدی در بازه مورد نظر باشد در بردار نهایی y قرار می گیرد.

در خط یازدهم، به مقدار شمارنده حلقه while یعنی t یکی اضافه می گردد.

خط دوازدهم و سیزدهم پایان حلقه while و شرط if را نشان می دهد.

باید توجه داشت که برنامه فوق را می توان به صورت ساده تر نیز نوشت.

نظرات 1 + ارسال نظر
S جمعه 12 خرداد 1396 ساعت 04:26 ب.ظ

ولی من نفهمیدم دستورrandnچطوره برای تولید اعداددتصادفی توی یه بازه معین

با سلام
دستور randn تنها برای تولید اعداد تصادفی با توزیع نرمال بکار می رود و ربطی به بازه ندارد بلکه حلقه while اعداد را در بازه مورد نظر کاربر محدود می کند.

ایمیل شما بعد از ثبت نمایش داده نخواهد شد