monte carlo metodu



əjdaha lazımdı   izlə   lələ   mən   googllalink

    1. müəyyən inteqralların rəqəmsal hesablanması metodlarından biridir. "statistika var olan yeganə tanrıdır", ifadəsini təsdiqləyən riyazi möcüzələrdəndir. metod lazım olan cavabı statistik yolla hesablayır ki, nəticədə "what the fuck did just happen?!" sualını özünüzə verməli olursunuz. Metodun alqoritmi təxminən belədir:
    1. üzərində inteqral hesablanacaq bölgənin həcmini tap.
    2. inteqral hesablanacaq olan bölgə içində təsadüfi koordinat seç.
    3. inteqralını hesablayacağın funksiyanın bu koordinatdakı dəyərini hesabla.
    4. ikinci və üçüncü bəndləri N dəfə təkrarla, hesabladığın funksiyanın dəyərlərini topla və cəmi N-ə böl.
    5. Nəticəni üzərində inteqral hesablanacaq olan bölgənin həcminə vur.

    Göründüyü kimi yuxarıda inteqralın tərifindən heç danışmadıq. Sadəcə təsadüfi koordinatlar üçün funksiyanın dəyərini hesablayıb topladıq. Bir riyaziyyatçı babayiğit olaydı da mənə ispat edərdi, nəyə görə bu yolla aldığımız ədəd məhz funksiyanın həmin bölgədə üzərindən inteqralına bərabərdir(edit: babayiğitdən ispat gəldi. aşağıda qeyd olunub). Bundan başqa təbiidir ki, nə qədər çox təkrar etsəniz, yəni N nə qədər böyük olsa, o qədər dəqiq nəticə əldə edirsiniz.

    aramızdakı bekar proqramçı yazarlar üçün kiçik və əyləncəli tapşırıq.
    -dairənin sahəsinin hesablanması:
    Bir dairə iki ölçülü obyektdir. onu riyazi şəkildə f(x, y) funksiyası ilə təyin etmək olar. dairənin sahəsini isə bu funksiyanın dairə üzərindən inteqralını almaqla hesablamaq olar. əvvəlcədən deyim dairənin sahəsi pi vurulsun radiusun kvadratıdır. Bu problem monte carlo metodu ilə çox asanlıqla hesablana bilər və wikipedia-da nümunəylə rastlaşa bilərsiniz. kömək etməyə məmnun olaram.

    nümunə üçün deyim ki, dairənin sahəsinin analitik üsulla hesablamaq heç də primitiv deyil. monte carlo metodu sizi analitik riyaziyyatın çətinliklərindən xilas edəcək.

    edit: #249171 nömrəli entrydə, yuxarıda tələb olunan isbat gəldi:
    f(x) funksiyasının ox oxu ilə əmələ gətirdiyi hissəyə r deyək. indisə təsadüfi hadisəni məsələnin həll metoduna daxil edək, çünki başda demişdik ki, təsadüfi hadisəyə əsaslanırıqsa, metodumuz monte carlo metodu olacaq. bu hadisə də olsun ki, əgər bu çəkdiyimiz düzbucaqlı daxilində təsadüfi nöqtələr seçsək, onlardan neçəsi axtardığımız r sahəsi daxilinə düşər. bu sualın cavabı bizə həndəsi ehtimaldan məlumdur. hər hansı nöqtənin r hissəsinə düşmə ehtimalı r-in sahəsinin (yəni axtardığımız inteqralın) düzbucaqlının sahəsinə nisbətinə bərabərdir.
    müəllifə təbrik və təşəkkürümü çatdırıram, afərin!
    2. #249161 entrynin axırlarını oxuyandan sonra kiçik bir araşdırma elədim, texniki olaraq necə olacağı haqqında öyrəndiklərimi qeyd edirəm. -*
    bilirik ki, pi = çevrənin uzunluğu / diametri.
    real həyatda ixtiyari çevrənin uzunluğunu rahat ölçə bilirik amma yuxarıda da deyildiyi kimi 2D-də bu biraz çətinləşir. çünki 2d-də çevrəni sonsuz nöqtələrin birləşməsi deyil, discrete piksellər formalaşdırır. əyri xəttin * uzunluğunu 2d-də ölçmək üçün təqribi dəyərlərdən istifadə olunur.
    monte carlo metodu burda köməyə gəlir.
    1. çevrəmizi kvadratın içərisində düşünək və xəyali olaraq dörd eyni kiçik kvadratlara ayıraq. belə link kiçik kvadratların tərəfləri radiusa bərabər olacaqdır. biz hələki sadəcə bir kiçik kvadratdan istifadə edəcəyik, alınan nəticəni 4ə vurub bütün kiçik kvadratlar üçün hesablamış olacağıq. *

    2. kiçik kvadratımızın içində təsadüfi koordinatlara nöqtələr atırıq, bəzi nöqtələr çevrənin daxilində olarkən, bəziləri çevrə ilə böyük kvadratın küncü arasına düşəcəkdir. kompyuter bunu hardan biləcək deyə soruşacaqsınızsa: əgər çevrənin mərkəzi ilə nöqtənin düşdüyü yerin koordinatları arasındakı məsafə radiusdan kiçikdirsə deməli nöqtə çevrənin içərisində, yox əgər böyükdürsə çevrənin xaricindədir. nəticədə pi = (çevrənin içərisinə düşən nöqtələrin sayı)/(bütün nöqtələrin sayı) x 4 olacaq.

    --spoiler--

    iki nöqtə arasındakı məsafəni ölçmək üçün :
    1.nöqtə - A(x0, y0)
    2.nöqtə - B(x1, y1)
    AB məsafəsi = kök altında (x1-x0)x(x1-x0)+(y1-y0)x(y1-y0)

    --spoiler--

    javascript nümunəsi üçün bu link sayt izlənə bilər.
    kodun müəllifi Karlina Beringer-dir.
    3. hər hansı bir məsələnin həlli üçün ədədi üsullardan istifadə etdikdə (yəni o tip məsələlərin həlli üçün proqram qurmaq istədikdə) təsadüfi hadisələrin nəticələrinə əsaslanırıqsa, bu metod monte carlo metodu adlanır. tətbiq olunma oblastı çox genişdir əslində. onlardan sadəcə biri müəyyən inteqralın hesablanmasıdır.

    onun da çoxölçülü funksiyalara tətbiqini anlamaq üçün ilk əvvəl ən sadə hala baxmaq lazımdır. yəni birölçülü funksiya olan hala. deyək ki, a-dan b-yə f(x) funksiyasının inteqralını hesablamaq istəyirik. aydındır ki, kompyuter bu inteqralı bildiyimiz analitik metodla həll edə bilməyəcək (daha doğrusu biz o metodu proqramlaşdıra bilmirik). a dan b-yə eni (b-a), uzunluğu h olan düzbucaqlı quraq və bu h f(x)-in bu hissədəki maksimum qiymətinə ya bərabər, ya da ondan böyük olmalıdır. məqsədimiz a-dan b-yə f(x)-in inteqralını hesablamaq idi. aydındır ki, bu inteqralı hesablamaq funksiyanın OX oxu ilə əmələ gətirdiyi hissənin sahəsini hesablamağa ekvivalentdir. f(x) funksiyasının ox oxu ilə əmələ gətirdiyi hissəyə r deyək. indisə təsadüfi hadisəni məsələnin həll metoduna daxil edək, çünki başda demişdik ki, təsadüfi hadisəyə əsaslanırıqsa, metodumuz monte carlo metodu olacaq. bu hadisə də olsun ki, əgər bu çəkdiyimiz düzbucaqlı daxilində təsadüfi nöqtələr seçsək, onlardan neçəsi axtardığımız r sahəsi daxilinə düşər. bu sualın cavabı bizə həndəsi ehtimaldan məlumdur. Hər hansı nöqtənin r hissəsinə düşmə ehtimalı r-in sahəsinin (yəni axtardığımız inteqralın) düzbucaqlının sahəsinə nisbətinə bərabərdir. lakin bizə R-in sahəsi məlum deyil, onu axtarırıq. əgər yuxarıda dediyim ehtimalı bilsək, onu düzbucaqlının sahəsinə vurmaqla bizim inteqralı tapmış olarıq və bu ehtimal kompyuter çəkilən düzbucaqlı daxilində təsadüfi olaraq N nöqtə seçdikdən və onlardan neçəsinin R hissəsinə düşdüyünü müəyyən etdikdən sonra həmin ədədi N -ə bölməklə tapılır. beləcə ehtimal var, düzbucaqlının sahəsi də. hasili tapıb müəyyən inteqralın qiymətini təqribən almış oluruq. yuxarıdakı entridə deyilən həcmin tapılması və riyazi gözləmənin hesablanması isə funksiyanın ölçüsündən asılı olaraq ortaya çıxır. məsələn, bizim baxdığımız halda sahə lazım idi, çünki 2 ölçüdə idi axtardığımız sahə.


sən də yaz!