موضوعات وبسایت : برنامه نویسی
سوالات امتحان آیین نامه رانندگی

دستور rng در متلب

نویسنده : محمد پارسایی | زمان انتشار : 29 شهریور 1400 ساعت 13:10

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



هنگامی که یک نرم افزار را می نویسیم تا با داده ها کار کند ولی هنوز داده های ما در دسترس نیستند، این بسیار کارآمد است که نرم افزار خود را با استفاده از اعداد تصادفی مورد تست و آزمایش قرار دهیم. اعداد تصادفی را همچنین می توان در شبیه سازی ها مورد استفاده قرار داد. در متلب، چندین تابع داخلی وجود دارند که اعداد تصادفی را ایجاد می کنند و در این بخش، تعدادی از آنها را مورد تجزیه و تحلیل قرار خواهیم داد. 

سوالات امتحان آیین نامه رانندگی

توابع تولید کننده ی اعداد تصادفی، در حقیقت، تصادفی نیستند. در اصل کارکرد آنها به این صورت است که ابتدا پروسه با یک عدد شروع می شود که به آن seed گفته می شود. غالباً این seed اولیه، یک مقدار از پیش تعیین شده است یا با استفاده از ساعت داخلی کامپیوتر به دست آمده است. سپس بر اساس این seed، طی یک فرآیند، عدد تصادفی بعدی به دست می آید. حالا اگر از عدد تصادفی قبلی بعنوان seed استفاده شود، یک عدد تصادفی دیگر به وجود می آید و همین طور الی آخر. 

در حقیقت به این اعداد، شبه تصادفی گفته می شود. این اعداد حقیقتاً اعداد تصادفی نیستند زیرا یک فرآیند وجود دارد که با استفاده از آن، در هر زمان، عدد بعدی به دست می آید. 

 از تابع rand برای تولید اعداد حقیقی تصادفی با توزیع یکنواخت استفاده می شود. با فراخوانی این تابع، یک عدد حقیقی تصادفی در بازه ی باز (0,1) تولید می شود. منظور از بازه ی باز این است که اعداد شروع و پایان بازه ی مورد نظر، خود شامل نمی شوند. در ساده ترین حالت استفاده از تابع rand نیازی به اضافه کردن هیچ آرگومانی نیست. در زیر، دو مثال از تابع rand وجود دارند، به آنها توجه کنید:

 هر زمان که متلب شروع به کار می کند، مقدار seed برای تابع rand یکسان است اما مقدار seed اولیه تغییر می کند. تابع rng، درواقع seed اولیه را تعیین می کند. این تابع را به روش های مختلفی همچون زیر می توان فراخوانی نمود:

اگر از مقدار 'shuffle' استفاده کنیم، تابع rng برای تعیین کردن seed، از تاریخ و زمان جاری ساعت داخلی استفاده می کند. بنابراین مقدار seed همواره متفاوت خواهد بود. همچنین می توان برای seed از یک عدد صحیح استفاده نمود. اگر از مقدار 'default' برای تابع rng استفاده کنیم، از همان مقدار پیش فرض seed به هنگام اجرای نرم افزار متلب استفاده می شود. تابع rng همچنین می تواند بدون آرگومان مورد استفاده قرار گیرد. در این صورت، از وضعیت فعلی تولید کننده ی اعداد تصادفی (rng)استفاده می شود:

 هنگامی که نرم افزار متلب شروه به کار می کند، تولید کننده ی اعداد تصادفی(rng) مقدار دهی اولیه می شود. که به این مقدار دهی اولیه، فرآیند سراسری(global stream) اعداد تصادفی گفته می شود. در این فرآیند، تمامی توابع تصادفی مقداردهی می شوند.

چون که تابع rand یک مقدار حقیقی را در بازه ی (0,1) ایجاد می کند، اگر حاصل آن را در یک عدد صحیح N ضرب کنیم، یک عدد حقیقی تصادفی در بازه ی \((0,N)\) برگردانده خواهد شد. بعنوان مثال، اگر حاصل تابع rand را در عدد 10 ضرب کنیم، یک عدد حقیقی در بازه ی باز (0,10) برگردانده خواهد شد. بعبارت دیگر، اگر عبارت 10*rand را در متلب وارد کنید، آنچه حاصل می شود، بین بازه ی باز (0,10) خواهد بود. 

 برای تولید یک عدد حقیقی تصادفی، به طوری که بین متغیرهای high و low باشد، ابتدا متغیرهایی به نام low و high ایجاد کنید. سپس از فرمول \(rand*(high-low)+low\) استفاده کنید. بعنوان مثال دستورات زیر، یک عدد حقیقی تصادفی را در بازه ی باز (3,5) ایجاد خواهند نمود:

همچنین از تابع randn برای تولید اعداد حقیقی تصادفی با توزیع نرمال استفاده می شود.

نوشته شده توسط احسان عباسیبازدید: 10535

آیا این مطلب برای شما مفید بود؟


منبع: beyamooz.com



ارسال نظر

نام


ایمیل


نظر