| Metoda | Deklaracja metody | Przykład wywołania | Opis działania |
|---|---|---|---|
| Deklaracja obiektu symulacje | simulation() | simulation s | Tworzony jest pusty obiekt symulacje. |
| Deklaracja obiektu z parametrami histogramu | simulation(double hist_min,double hist_max,int his_num=20) | simulation s(-4.0,4.0,50) | Tworzony jest pusty obiekt symulacje. Zdefiniowane zostają parametry histogramu: minimalna wartość (hist_min), maksymalna wartość (hist_max) i liczba przedziałów (hist_num). Domyślnie jest 20 przedziałów histogramu. |
| Resetowanie symulacji | void reset() | s.reset() | Resetowanie symulacji. Obiekt symulacji jest przywracany do stanu początkowego, gdy liczba obserwacji wynosi 0. |
| Dodawanie obserwacji | void add(double e) | s.add(normal_sample(0.0,1.0,seed)) | Do symulacji dodawana jest jedna obserwacja. W podanym przykładzie jest to liczba z rozkładu normalnego N(0,1). Funkcje losujące liczby z różnych rozkładów są dostępne w biblitece prob.hpp. Punkt startowy generatora losowego (tzw. ziarno) można zadeklarować tak: int seed[1]={10}; lub int seed[1]={time(0)}; W pierwszym przypadku ziarno jest deterministyczne (równe 10), w drugim przypadku zależy od czasu uruchomienia programu. |
| Wczytanie obiektu | void load(Text name) | s.load("symul.dat") | Obiekt symulacje jest wczytywany z pliku o podanej nazwie. |
| Zapisanie obiektu | void save(Text name) | s.save("symul.dat") | Obiekt symulacje jest zapisywany do pliku o podanej nazwie. |
| Kumulowanie symulacji | void operator +=(const simulation &s) | s+=s2; | Symulacje z dwóch obiektów są sumowane w pierwszym z nich. W podanym przykładzie do obiektu 's' są dodawane wszystkie symulacje zgromadzone w obiekcie 's2'. |
| Liczba symulacji | long length() | s.length() | Zwracana jest liczna wykonanych symulacji. |
| Najmniejsza wartość | double min() | s.min() | Zwracana jest wartość najmniejsza. |
| Największa wartość | double max() | s.max() | Zwracana jest wartość największa. |
| Zakres | double range() | s.range() | Zwracany jest zakres wartości (tj. maksimum - minimum). |
| Suma | double sum() | s.sum() | Zwracana jest suma wartości. |
| Średnia arytmetyczna | double mean() | s.mean() | Zwracana jest średnia arytmetyczna. |
| Średnia geometryczna | double gmean() | s.gmean() | Zwracana jest średnia geometryczna wartości dodatnich. |
| Średnia harmoniczna | double hmean() | s.hmean() | Zwracana jest średnia harmoniczna wartości różnych od 0. |
| Dominanta | double mode() | s.mode() | Zwracana jest wartość najczęstsza. |
| Wariancja | double var() | s.var() | Zwracana jest variancja rozkładu. |
| Odchylenie standardowe | double stdev() | s.stdev() | Zwracane jest odchylenie standardowe. |
| Skośność | double skewness() | s.skewness() | Zwracana jest skośność. |
| Kurtoza | double kurtosis() | s.kurtosis() | Zwracana jest kurtoza. |
| Histogram | matrix hist() | s.hist() | Zwracana jest macierz z histogramem rozkładu. |
| Deklaracja obiektu kwantyle | quantiles(double p=0.5) | quantiles q(0.3) | Deklarowana jest obiekt kwantyle. Obliczany będzie kwantyl 'p' (domyślnie kwantyl 0.5, czyli mediana). W podanym przykładzie obiekt będzie obliczał kwantyl 0.3. |
| Resetowanie obiektu | void reset(double p) | q.reset(0.4) | Resetowanie symulacji służących do wyliczenia kwantyla. Obiekt 'kwantyle' jest przywracany do stanu początkowego, gdy liczba obserwacji wynosi 0. Wymagane jest podanie, jaki kwantyl będzie następnie obliczany (parametr 'p'). |
| Dodawanie obserwacji | void add(double e) | q.add(normal_sample(0.0,1.0,seed)) | Do symulacji dodawana jest jedna obserwacja. W podanym przykładzie jest to liczba z rozkładu normalnego N(0,1). Więcej informacji patrz: funkcja add w obiekcie „simulation”. |
| Wynik | double result() | q.result() | Obliczany jest kwantyl rozkładu. |
| Dystrybuanta | double cdf(double x) | q.cdf(0.0) | Obliczana jest wartość dystrybuanty w zadanym punkcie położonym w pobliżu wyznaczonego kwantyla. Obiekt kwantyle nie gromadzi wszystkich obserwacji, a tylko te w pobliżu szukanego wyniku. Jeżeli wartość x będzie odległa od wyniku, to pojawi się komunikat ostrzegawczy, że wartości dystrybuanty nie można wyznaczyć. Ta funkcja może służyć np. do sprawdzenia, czy wynik otrzymany funkcją result() jest prawidłowy: int seed[1]={1}; quantiles q(0.5); for (long n=1; n<=1000000; n++) q.add(normal_sample(0.0,1.0,seed)); double mediana=q.result(); cout<<"mediana="< Oczekiwany wynik działania programu przy dużej liczbie symulacji to: mediana=0.0 cdf(mediana)=0.5 Funkcja jest wykorzystywana przez obiekt „quantiles2”, kumulujący obiekty „quantiles” (patrz poniżej). |
| Wczytanie obiektu | void load(Text name) | q.load("kwantyl1.dat") | Obiekt kwantyle jest wczytywany z pliku o podanej nazwie. |
| Zapisanie obiektu | void save(Text name) | q.save("kwantyl1.dat") | Obiekt kwantyle jest zapisywany do pliku o podanej nazwie. |
| Deklaracja obiektu sumującego zestawy symulacji | quantiles2(int max_size=10) | quantiles2 qq(2) | Tworzony jest obiekt, w którym można zsumować, wiele obiektów kwantylowych (typu quantiles). Parametr max_size określa, ile maksymalnie obiektów będzie zsumowanych. |
| Resetowanie obiektu | void reset(int max_size=10) | qq.reset() | Resetowanie obiektu. Obiekt 'kwantyle2' jest przywracany do stanu początkowego, gdy nie zawiera, żadnych danych. Można zmienić maksymalną liczbę obiektów składowych (parametr 'max_size'). |
| Kumulowanie symulacji | void operator +=(const quantiles &q) | qq+=q | Symulacje z obiektów „kwantyle” są sumowane w obiekcie „kwantyle2”. W podanym przykładzie do obiektu 'qq' są dodawane wszystkie symulacje zgromadzone w obiekcie 'q'. |
| Wynik | double result() | qq.result() | Obliczany jest kwantyl rozkładu. |
| Dystrybuanta | double cdf(double x) | qq.cdf() | Obliczana jest wartość dystrybuanty w zadanym punkcie położonym w pobliżu wyznaczonego kwantyla. Jeżeli wartość x będzie odległa od wyniku, to pojawi się komunikat ostrzegawczy, że wartości dystrybuanty nie można wyznaczyć. |
| Liczba wszystkich symulacji | long simulations_all() | qq.simulation_all() | Liczba wszystkich symulacji w kumulowanych obiektach kwantylowych. |
| Liczba użytych symulacji | long simulations_used() | qq.simulation_used() | Liczba symulacji w kumulowanych obiektach kwantylowych użytych do obliczania wyników (najczęściej równa liczbie wszystkich symulacji). |
