گمزبوک در این نوشتار قصد دارد به تابع نرمال بپردازد. قطعاً به هنگام استفاده از توزیع نرمال در مدل های خود با این سوال مواجه شده اید که آیا گمز داده ای تصادفی نرمال برای من تولید میکند؟ آیا میتوانم از تابع توزیع و تابع چگالی نرمال استفاده کنم؟ آیا تابع توزیع تجمی در گمز وجود دارد؟ …
پاسخ این سوالات در این تاپیک ارائه می شود. همانطور که می دانید گمز از منابع زیادی برای محاسبات خود استفاده می کند. یکی از این منابع 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;

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

ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405–0919