۲

توزیع و چگالی نرمال، عدد تصادفی نرمال، معکوس نرمال

گمزبوک در این نوشتار قصد دارد به تابع نرمال بپردازد. قطعاً به هنگام استفاده از توزیع نرمال در مدل های خود با این سوال مواجه شده اید که آیا گمز داده ای تصادفی نرمال برای من تولید میکند؟ آیا میتوانم از تابع توزیع و تابع چگالی نرمال استفاده کنم؟ آیا تابع توزیع تجمی در گمز وجود دارد؟ …
پاسخ این سوالات در این تاپیک ارائه می شود. همانطور که می دانید گمز از منابع زیادی برای محاسبات خود استفاده می کند. یکی از این منابع stochastic library نام دارد که در آن توابع و فرمول های ریاضی فراوانی ذخیره شده است و شما با فراخوانی آنها می توانید از هر تابع دلخواهی که نیاز دارید استفاده کنید.
رویه به این شکل است ابتدا مرجع (stochlib) را فراخوانی میکنید، سپس از توابع آن استفاده می کنید.
نحوه فراخوانی این مرجع به شکل زیر است:

$funclibin stolib stodclib

function dnorm /stolib.Dnormal /;
function pdfnorm /stolib.pdfnormal /;
function cdfnorm /stolib.cdfnormal /;
function icdfnorm /stolib.icdfnormal /;

همانطور که مشاهده می شود ما تعدادی توابع با نام هایی نظیر dnorm,pdfnorm و… فراخوانی کردیم. از این لحظه به بعد کد ما کاملا آماده تولید و استفاده از دستورات و محاسبات مربوط به توزیع نرمال می باشد. در ادامه پس از معرفی هر دستور، مثال جامعی ارائه می دهیم.

معرفی دستورات
dnorm: توسط این دستور می توان اعداد تصادفی نرمال تولید کرد.

dNorm(MEAN,STD_DEV)

که در کد بالا MEAN میانگین و STD_DEV انحراف استاندارد توزیع می باشد.
pdfNorm: توسط این تابع می توان مقدار تابع چگالی یک متغیر تصادفی را محاسبه کرد. به عنوان مثال در کد زیر می توان با قرار دادن یک عدد به جای x مقدار تابع چگالی مربوط به آن را محاسبه کرد.

pdfNorm(x,MEAN,STD_DEV)

cdfNorm: توسط این دستور می توان تابع توزیع تجمعی مربوط به توزیع نرمال را بدست آورد.

cdfNorm(x,MEAN,STD_DEV)

icdfNormal: مقدار تابع معکوس نرمال توسط این دستور محاسبه می شود.

icdfNormal(x,MEAN,STD_DEV)

به مثال زیر دقت کنید. در این مثال ما قصد داریم برای پارامتر a اعداد تصادفی با توزیع نرمال، برای پارامتر b مقدار تابع چگالی مربوط به یک ععد خواص از توزیع نرمال، برای عدد c مقدار احتمال تجمعی در توزیع نرمال و برای پارامتر e معکوس تابع توزیع نرمال را محاسبه کنیم.

sets i/1*20/;

$funclibin stolib stodclib

function dnorm /stolib.Dnormal /;
function pdfnorm /stolib.pdfnormal /;
function cdfnorm /stolib.cdfnormal /;
function icdfnorm /stolib.icdfnormal /;

parameter a(i),b,c,d,e;
a(i)=dnorm(5,10);
b=pdfnorm(3,3,4);
c=cdfnorm(10,3,5);
d=icdfNorm(.25,10,10);
e=icdfNorm(.25,0,1);

display a,b,c,d,e;

و در پایان چند نکته:
۱- بدون فراخوانی مرجع تصادفی یا stochastic library قادر به استفاده از توابع نیست.
۲- هر تابعی که استفاده می کنید را تست کنید و باید خروجی مرتبط با آن منطبق با مفاهیم توزیع نرمال باشد. مثلا ما انتظار داریم برای پارامتر c عددی نزدیک به یک به دست بیاید. اگر عددی خلاف آن محاسبه شد پس ما در محاسبات و دستورات اشتباهی مرتکب شده ایم.
۳- در تمامی توزیع های فوق، در صورتی که به جای میانگین عدد ۰ و به جای انحراف استاندارد عدد ۱ را قرار دهیم، خودبه خود از توزیع نرمال استاندارد استفاده کرده ایم.

ایمیل: Support@gamsbook.ir
شماره تماس: ۳۳۲۵-۴۰۵–۰۹۱۹

 

2 دیدگاه در “توزیع و چگالی نرمال، عدد تصادفی نرمال، معکوس نرمال

  1. با سلام و وقت بخیر
    در مورد مثالی که بیان کردید سوالی داشتم:
    با توجه تعریف تعداد i که ۲۰ است پس انتظار داریم بیاید و برای a(i) تعداد بیست عدد را گزارش کند
    نحوه انتخاب این اعداد چگونه است؟
    آیا اتفاقی از توزیع بیان شده داده بر میدارد؟
    یا اینکه مثلا می آید و به تعداد پیش فرض نمونه میگیرد و امید ریاضی آن را هر بار گزارش میکند؟
    با سپاس

    • سلام
      ببینید دقیقا همون انتظاری که تو آمار داریم از اعداد تصادفی هست. یه توزیع با یه میانگین و واریانس تحویل میگیره. طبق اون عدد تصادفی تولید میکنه. حالا اگه شما مثلا ۱۰۰ تا تولید کنین، اگه رسمش کنین این داده ها رو، میبینین که توزیعش نرماله
      این پست رو هم بخونین
      تولید عدد تصادفی در گمز

پاسخ دهید

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