تولید یک میلیون عدد تصادفی با استفاده از روش باکس – مولر
مساله: با استفاده از روش باکس – مولر، یک میلیون عدد تصادفی تولید کنید، به طوریکه پهنای توزیع گاوسی مربوط به این اعداد، پنج و قله ی این توزیع روی عدد منهای دو قرار بگیرد.
خب در این قسمت برای شما روش حل این مساله را با استفاده از روش باکس – مولر آماده کردیم که شما می توانید آنرا تهیه و سپس کد آنرا دانلود کنید و سپس تغییرات لازم را بر اساس نیازتان در زبان برنامه نویسی فرترن انجام دهید. شما به راحتی میتوانید تعداد اعداد تصادفی را به همراه قله ها و … را تغییر دهید و بر اساس مساله مورد نظرتان سفارشی کنید. ولی قبل از اینکه پیش نمایش خروجی فایل را خدمتتان نمایش دهیم لازم میدونم کمی در مورد روش باکس مولر توضیحاتی را ارائه کنم:
روش باکس مولر چیست؟ چگونه میتوان با فرترن یا زبان های برنامه نویسی دیگر مانند متلب آنرا شبیه سازی کرد؟ نحوه تولید اعداد تصادفی با استفاده از روش باکس-مولر چگونه است؟
یکی از معروفترین روش های برای تولید دلخواه اعداد تصادفی در یک تابع توزیع فراوانی مشخص در فیزیک محاسباتی، استفاده از از روش باکس-مولر می باشد. لازم به ذکر است برای این منظور تابع اولیه بایستی معکوس پذیر باشد و در غیر اینصورت باید از روش حذفی برای این کار استفاده شود. فرض کنید یک تابع توزیع داریم و بخواهیم در بازه مشخصی مثلا a و b به میزان مشخصی اعداد تصادفی درست کنیم. حال با استفاده از روش باکس مولر تابع مذکور را نرمالایز ( بهنجار کردن یعنی اینکه از تابع توزیع بین بازه ذکر شده انتگرال گرفته و برابر با یک قرار میدهیم.) و سپس ضریبی که این تابع را بهنجار می کند را بدست آورده و ضربدر تابع اصلی میکنیم.
سپس بعد از آنکه تابع توزیع را نرمالایز کردیم، تابع توزیع معکوس را محاسبه میکنیم که از از آن برای تولید تابع توزیع فراوانی استفاده می شود. یعنی اینکه ما یک عددی را به صورت تصادفی در بازه بین صفر و یک تولید میکنیم و سپس در تابع معکوس قرار داده و مقدار یونیک متناظر با آن را حساب میکنیم. سپس بازه مشخص شده اولیه را کوچکتر میکنیم ( یعنی به مقدارهای کوچکتر تقسیم میکنیم مثلا تقسیم بر صد یا دویست میکنیم) و سپس اعداد تصادفی تولید شده در هر بازه را شمرده و آنرا printf یا چاپ میکنیم که با رسم این فایل خروجی تابع توزیع تولید شده نمایش داده می شود.
شما در این محصول که در اختیار شما قرار دارد کد مربوط به مساله بالا که با رنگ سبز نوشته شده است را با استفاده از زبان برنامه نویسی فرترن تهیه خواهید کرد که برای اطمینان از اینکه محصول خریداری شده توسط شما کاملا درست می باشد، خروجی پاسخ را نیز در پایین می توانید ملاحظه بفرمایید.
محبوبه امیری –
آیا می توان قله رو به مقدار دیگری تغییر داد؟
Mehrsa –
با سلام خدمت محبوبه عزیز و تشکر از حضورتون در سایت اینفایل.
پرسش شما توسط فروشنده به زودی پاسخ داده خواهد شد.
با تشکر
امیر محمد رمضانی –
بله شما کافی است که مقدار قله را از منفی 2 به مقدار دلخواهتون تغییر بدهید. اگر فایل کد رو باز کنین، کاملا اعداد مشخص هستند و همچنین من با زبان فینگلیش کد ها و قسمت هاشو توضیح دادم.