access_time1398/01/24
visibility 1.11k بازدید
سلام از سری آموزش متلب با آموزش تولید اعداد تصادفی در متلب با شما هستیم
در بسیاری از پردازش های فیزیکی و کاربردهای مهندسی تولید اعداد تصادفی نقش فراوانی در حل مسائل ایفا می کند. در نرم افزار MATLAB از دو دستور rand و randn جهت تخصیص اعداد تصادفی به متغیرها استفاده می شود.
دستور rand یک توزیع یکنواخت از اعداد در بازهی [1 , 0] تولید می کند. با استفاده از این دستورات می توان یک اسکالر، یک بردار یا یک ماتریس تصادفی مانند جدول زیر تولید کرد.
مثال | توضیحات | دستور |
---|---|---|
rand ans = 0.8147 | این دستور، تنها یک عدد تصادفی بین صفر ویک تولید می کند. | rand |
(rand(1,3 =ans 0.9058 0.1270 0.9134 | این دستور یک بردار سطري n عضوی از اعداد تصادفی در بازه ی [0, 1] تولید می کند. | (rand(1,n |
(rand(2 =ans 0.6324 0.2785 | این دستور یک ماتریس n*n با اعداد تصادفی در بازه ی [1 , 0] تولید می کند. | (rand(n |
(rand(2,3 =ans 0.9575 0.1576 0.9572 | این دستور یک ماتریس m*n با اعداد تصادفی در بازه ی [1 , 0] تولید می کند. | (rand(m,n |
(randperm(3 =an 2 3 1 | این دستور یک بردار سطری n عضوی و به صورت جایگشت اعداد بین 1 تا n تولید می کند (اعداد بین 1 تا n به صورت تصادفی جایگشت می شوند). | (randperm(n |
دستور تصادفی randn در متلب
با استفاده از این دستور، نرم افزار MATLAB مقادیر گوسی، با میانگین صفر و واریانس ( در صورتی که توزیع نرمال تعیین شده باشد تولید می کند. در MATLAB از دستورات زیر جهت تولید مقادیر گوسی استفاده می شود:
- ( Randn( n :این دستور یک ماتریس n*n شامل اعداد تصادفی گوسی (نرمال) تولید می کند کهمیانگین آن صفر و انحراف معیار آن یک است
- ( Randn( n , m: این دستور یک ماتریس m*n شامل اعداد تصادفی گوسی (نرمال) تولید می کند کهمیانگین آن صفر و انحراف معیار آن یک است.
اگر تمایل داشته باشیم که یک عدد تصادفی گوسی با میانگین و انحراف معیار متفاوت تولید کنیم برای این کار می توانیم به صورت زیر عمل کنیم. این دستور مجموعه ای از اعداد تصادفی با میانگین او انحراف معیار ۲ تولیدمی کند:
>>r=1+2.*randn(5,1) r= -2.9218 0.6046 -1.4157 6.8160 2.6504 |
مثال 1 :فرض می کنیم برداری بانام a موجود است، قرار است n عضو را به صورت تصادفی از این بردار انتخاب کنیم. برای این کار روش های گوناگونی ممکن است ارائه گردد که در ادامه به معرفی یک روش می پردازیم.
حل:
(طول بازه ی B = ceil ( rand ( 1 , n ) * a
(d=a (b
به عنوان مثال اگر بردار a یک بردار ۵۰۰۰ عضوی باشد و بخواهیم ۳۲ عنصر را به صورت تصادفی از آن انتخاب کنیم به صورت زیر عمل می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | a=100*rand(1,5000); >>b=ceil(rand(1,32)*5000); >>d=a(b) d= Columns1through8 58.9104 81.2944 58.0634 30.8915 88.0604 62.6954 50.2662 33.0669 Columns9through16 65.9617 58.2382 23.6022 0.8248 17.3069 60.3902 84.3616 27.2725 Columns17through24 79.6915 25.4169 96.1285 10.1762 39.3613 99.5324 16.5891 77.7265 Columns25through32 95.5726 56.9829 67.3995 29.2279 5.8007 61.0371 4.1336 90.1803 |
مثال 2 : در مثال زیر اعداد تصادفی بین دو عدد (۱۰ تا ۲۰) را محاسبه خواهیم نمود.
حل:
a=10:20; b=randperm(10); a=a(b) a= 13 18 15 17 10 14 12 16 19 11 |
مثال 3 : ماتریسی ۱۰ در ۱۰ ایجاد کنید که مقادیر داخل آن فقط اعداد تصادفی 1 و 1- باشد.
حل:
برای حل این مثال از دو حلقه ی for به صورت تودرتو استفاده شده است.
forn=1:10 form=10:-1:1 w(n,m)=(-1).^(fix(10*rand)); end end |
پیشنهاد مطالعه: چندجمله ای ها در متلب (قسمت هفتم)
برای رفتن به لیست آموزش های متلب روی دکمه زیر کلیک کنید
به این آموزش امتیاز بدهید
اشتراک گذاری:
درباره فرهاد حمیدی
مدیرسایت فراکد،دانشجوی رشته ی مهندسی مکانیک،علاقه مند به برنامه نویسی و طراحی صنعتی که دوست دارم تجربیاتم رو با دیگران به اشتراک بگذارم.