CSL-CROOK - Funkcje próbkowania z rozkładu
Każda z czterech funkcji opisanych w niniejszym rozdziale dostarcza wartość otrzymaną przez pobranie próbki z populacji o określonym rozkładzie prawdopodobieństwa. Rozróżniamy następujące funkcje:
- rozkład prostokątny
- rozkład normalny
- rozkład wykładniczy z wykładnikiem ujemnym;
- rozkład Poissona;
- rozkłady dostarczane jako dane wejściowe przez programistę;
Ogólna postać występowania tych funkcji w programie:
- <zmienna> = <nazw funkcji>
Wartość dostarczana przez funkcję jest przyporządkowywana zmiennej po lewej stronie znaku równości.
Liczby losowe
Wszystkie pięć procedur próbkowania wykorzystuje procedurę generującą strumień liczb pseudolosowych. Każda z funkcji próbkowania ma jako jeden ze swych parametrów zmienną generacyjną określoną przez programistę. W każdym przypadku, w którym występuje funkcja próbkowania bieżąca wartość zmiennej generacyjnej jest poddawana działaniu procedury wyboru liczb losowych w celu wyznaczenia następnej wartości w sekwencji liczb losowych oraz nowej wartości generacyjnej. Na początku programu przed częścią powtarzaną w trakcie obliczeń, dla każdej występującej w programie zmiennej generacyjnej programista musi ustalić wartość początkową. Te wartości początkowe muszą być liczbami nieparzystymi, najlepiej jeżeli są to liczby pierwsze. Dla zapewnienia statystycznej niezależności występujących w programie ciągów liczb losowych, wartości początkowe poszczególnych zmiennych generacyjnych winny być różne. Jeżeli w programie nie porządkuje się żadnej wartości początkowej dla zmiennej generacyjnej, zostanie jej przyporządkowana wartość standardowa określona przez program liczb losowych - taka sama dla wszystkich ciągów.
RANDOM - rozkład prostokątny
Instrukcja ta ma następującą postać:
- <zmienna> = RANDOM (<zmigen>,<zakres>)
Zmienna i zmigen zostały opisane wyżej a zakres może być wyrażeniem posiadającym wartość całkowitą. Wartość ta jest próbkowana z populacji o rozkładzie prostokątnym a wynik jest liczbą zawartą w przedziale od 1 do zakresu.
DEVIATE - rozkład normalny
Instrukcja ta ma następującą postać:
- <zmienna> = DEVIATE (<zmigen>,<odchylenie>,<średnia>)
Zmienna i zmigen są opisane wyżej, natomiast odchylenie i średnia mogą być dowolnymi wyrażeniami posiadającymi wartości całkowite. Wartość jest pobrana z populacji o rozkładzie normalnym, którego wartość średnia jest bieżącą wartością średniej i którego odchylenie standardowe jest bieżącą wartością odchylenia.
NEGEXP - rozkład wykładniczy
Postać instrukcji:
- <zmienna> = NEGEXP (<zmigen>,<średnia>)
Zmienna i zmigen są opisane wyżej, natomiast średnia jest dowolnym wyrażeniem przyjmującym wartość całkowitą. Wartość ta jest próbką z populacji o rozkładzie wykładniczym z wykładnikiem ujemnym, którego wartość średnia jest bieżącą wartością średnią. Ej.
POISSON - rozkład Poissona
Postać instrukcji:
- <zmienna> = POISSON (<zmigen>,<średnia>)
Zmienna i zmigen są opisane wyżej, natomiast średnia może być dowolnym wyrażeniem dającym wynik całkowity. Wartość jest wartością próbki z populacji o rozkładzie Poissona, którego średnia może być dowolnym wyrażeniem dającym wynik REAL.
SAMPLE - próbkuj
Instrukcja ma nast0epującą postać:
- <zmienna> = SAMPLE (<nazwa>,<rozkł1> [,<zmigen1>,<rozkł2>,...])
Nazwa jest nazwą zmiennej, natomiast <rozkł1, rozkł2, ... > są nazwami rozkładów dostarczanych jako dane wejściowe, natomiast zmigen1, zmigen2, ... Są zmiennymi generacyjnymi opisanymi wyżej. Wartość określona przez <nazwę> wskazuje pozycję na liście parametrów jaką zajmuje nazwa rozkładu w populacji generalnej, z której ma być pobrana próbka generacyjna, która ma być użyta do procedury próbkowania. Tak więc, jeżeli nazwa przyjmuje wartość=3, wówczas następuje próbkowanie z rozkładu <rozkł3> przy użyciu zmiennej generacyjnej <zmigen3>, gdzie <rozkł3>, <zmigen3> są trzecią parą nazw na liście.
DIST - rozkład
Postać instrukcji:
- DIST <tabnamwe1>,<tabname2>,<tabname3>,....
Nazwy <tabname1>, ... Są nazwami tablic zawierających dane rozkładu. Instrukcja DIST powoduje przekształcenie empirycznych gęstości prawdopodobieństwa zapamiętanych w specyfikowanych tablicach na dystrybuanty empiryczne dla umożliwienia pobrania próbek. Po dokonaniu tego, oryginalne wartości N(I) wczytane do tablic nie są już dalej dostępne dla programisty.
Źródło: Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2), Janusz Gocałek, Jacek Klauziński, Poznań, 1985