روش حذفی برای توزیع فراوانی

برنامه فرترن روش حذفی برای توزیع فراوانی در این پست آماده شده است. روش حذفی برای تولید اعداد تصادفی مطابق با یک تابع توزیع استفاده میشود و توزیع فراوانی به دست می آید.

روش حذفی برای توزیع فراوانی وقتی مورد استفاده قرار میگیرد که تابع توزیع ما معکوس پذیر نباشد. در شکل زیر نحوه اجرای روش حذفی برای توزیع فراوانی توضیح داده شده است.

روش حذفی برای توزیع فراوانی

همانطور که در شکل مشاهده میکنید در الگوریتم برنامه روش حذفی برای توزیع فراوانی ما یک تابع توزیع به صورت p(x  داریم ما برای این تابع توزیع یک تابع توزیع مشخص f(x را در نظر میگیریم که این تابع توزیع پیشنهادی ما معکوس پذیر بوده و تابع توزیع اصلی p در زیر تابع ما قرار داشته باشد(مطابق با شکل).

در ادامه انتگرال تابع f را در بازه مورد نظر خود که میخواهیم توزیع فراوانی را برای این بازه تولید نماییم محاسبه میکنیم. در ادامه ما یک عدد رندم از انتگرال تابع خود روی محور y تولید میکنیم (با استفاده از برنامه ran.f90) که از روی این عدد و قطع نمودار انتگرال  مقدار x0 را در شکل به دست می آوریم. سپس یک عدد رندم دوم روی محور y  ها بین 0و f(x0 تولید میکنیم اگر عدد رندم دوم تولید شده در زیر تابع p اولیه قرار گرفت ما x0 رندم اولیه تولید شده را قبول میکنیم ولی اگر بین تابع f و p قرار بگیرد عدد تولید شده را رد میکنیم و الگوریتم دوباره از اول اجرا میشود تا به تعدادی که ما از ابتدا برنامه مشخص کردیم عدد رندم تولید شود سپس تعداد اعداد رندم تولید شده در بازه های کوچکی که روی محور ایکس ها مشخص میکنیم شمارش شده و تابع توزیع فراوانی در یک فایل به صورت خروجی چاپ خواهد شد که میتوانید با نرم افزارهای رسم نمودار مانند origin رسم کنید.

در اینجا ما کد و برنامه فرترن مربوط به این روش را برای یک تابع توزیع اختیاری که شما میتوانید در قسمت فانکشن تعریف نمایید قرار داده ایم در کد زیر از تابع توزیع زیر برای تولید اعداد رندم در بازه 0<y<5 استفاده شده است

p(x)=x*exp(-x^2)

در این برنامه فرترن فاصله بین 0 تا 5 به 100 بازه تقسیم شده و در برنامه 100000 عدد رندم تولید میشود. و در خروجی برنامه تعداد اعداد رندم تولید شده در هر بازه نمایش داده میشود و همچنین در یک فایل output چاپ میشود.

همچنین ببینید

تقسیم هزار ریالی

در این برنامه فرترن تمام حالتهای تقسیم یک هزار ریالی به 1000،500،200،100،50،20 و 10 ریالی ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *