Scipy Quasi Monte Carlo

Scipy Quasi Monte Carlo
W tym artykule będziemy omawiać kolejny moduł scipy, który jest quasi-monte Carlo. Aby wyjaśnić ten moduł Scipy, po pierwsze, musimy zrozumieć, czym jest quasi-monte Carlo. Quasi-miesięczna metoda Carlo to metoda stosowana do wykonywania integracji i innych problemów matematycznych. Ta metoda wykorzystuje sekwencję niskiej rozbieżności, aby rozwiązać problemy. Ta metoda jest stosowana w matematyce finansowej i jest ostatnio bardzo popularna. Metody te są również stosowane do obliczania całek wielowymiarowych.

Ta metoda składa się z czterech głównych części. Te komponenty są zintegrią, dyskretną rozkładem, podsumowującymi danymi wyjściowymi i kryterium zatrzymania. Do wykonania ta metoda stosuje następującą formułę:

Kolejną rzeczą, o której należy pamiętać, jest to, że ta metoda jest prawie taka sama jak metoda Monte Carlo. Jedyną różnicą jest to, że używa liczby quasirandom, aby uzyskać całkę wejścia. Liczby te są generowane przez sam komputer za pomocą niektórych algorytmów. Te wygenerowane liczby są w jakiś sposób bliskie liczbom pseudorandomów. Metoda Quasi-Monte Carlo jest również znana jako metoda Halton-Hammersley-Wozniakowski i używa języka Wolfram do obsługi. Metoda quasi-miesięczna Carlo ma znacznie szybszy współczynnik konwergencji niż szybkość stymulacji Monte Carlo.e (n-1/2). Ma również szanse na błędy o (n-1). Ta metoda generuje całkowicie określone wyniki.

Te techniki i metody są również bardzo przydatne w rozwiązywaniu problemów z grafiką komputerową matematycznie za pomocą wykresów itp. W innych językach możesz również użyć tych metod, aby spełnić swoje wymagania, ale będziesz musiał napisać cały kod i będziesz musiał wymyślić swoją logikę w zależności od umiejętności matematycznych. Ale w Pythonie ta metoda jest wbudowaną funkcją i jest w formie biblioteki, więc w porównaniu z innymi językami ta funkcja jest znacznie łatwiejsza do wykonania w Python.

Składnia:

Quasi-memonte Carlo nie jest ani funkcją, ani biblioteką. Jest to moduł w SCIPY, który zapewnia funkcje pomocnicze i silniki, które są używane do wykonywania operacji związanych z metodą Quasi-Monte Carlo. Poniżej znajdują się silniki dostarczone przez ten moduł.

Qmcegine: To jest klasa używana do podklasowania. Wymaga dwóch parametrów. Jeden to wymiar „d” przestrzeni parametrów, który jest liczbą całkowitą, a drugie to „ziarno”, które jest opcjonalne.

Sobol: Ten silnik służy do tworzenia sekwencji sobolowej. Zajmuje również wymiar jako parametr i kolejny parametr, który jest logiką i opcjonalną. Pozostałe dwa opcjonalne parametry to bity i nasiona, które są liczbowymi danych danych.

Zatrzymać się: Podobnie jak Sobol, ten silnik również wygenerował sekwencję. Ale zamiast sekwencji sobolowej ta wygenerowana sekwencja Halton. Ma trzy parametry. Wymiar, walka i nasiona.

Latinhypercube: Ten silnik jest używany dla LHS I.E próbki latynoskiej hiper -kostki. Ma pięć parametrów. Trzy to takie same jak inne silniki i.E: wymiar „D”, nasiona i siła. Pozostałe dwa są optymalizowane i wyśrodkowane. Oba są opcjonalnymi parametrami.

Poissondisk: Silnik ten służy do PDS, który jest krótką postacią próbkowania dysku Poissona. Te same parametry to wymiar i nasiona. Trzy parametry są różne, czyli promień, który jest z danych pływakowych, hiperssphere, który jest parametrem opcjonalnym, oraz kandydatów, który ma danych danych liczb całkowitych. Zajmuje liczbę kandydatów jako dane wejściowe, które wykonają próbkę na przyrost lub iterację.

MultinomialQMC: Ten silnik jest ogólnym quasi-miesięcznym próbkiem Carlo używanym do rozkładu wielomianowego. Ma ten sam parametr, który jest ziarnem. Ma w sumie cztery argumenty. PVALS, który jest argumentem podobnym do tablicy, ntrials, który ma danych liczb całkowitych i silnik, który jest próbnikiem silnika dla Quasi Monte Carlo. Domyślnie wymaga Sobol jako wartości.

MultivariateNormalQMC: Służy to do pobierania próbek normy wielowymiarowej. Ma sześć parametrów, a jeden z nich jest taki sam. Te sześć argumentów to wredne, COV, Cov_root, Inv_Transform, silnik i nasiona.

Silniki te mają swoje funkcje do wykonywania operacji. Oprócz silników ten moduł zapewnia również funkcje pomocnicze, które są rozproszone, aktualiza.

Przykład nr 01:

Aby szczegółowo zrozumieć ten moduł, podamy przykład dotyczące jednego z algorytmów tej metody za pomocą Scipy.QMC w języku Python. Obliczymy wartość całkowitej integrandu Keistera [18]. Aby to zrobić, najpierw zaimportowaliśmy puste z Scipy. Następnie zaimportowaliśmy kilka innych bibliotek za pomocą funkcji matematycznych, ponieważ będziemy potrzebować tych funkcji do naszych obliczeń. W tym przykładzie wykorzystaliśmy silnik Sobol QMC, który omówiliśmy wcześniej w naszym artykule. Przekazaliśmy te wartości do naszych funkcji i w końcu wydrukowaliśmy nasze wyjście. Teraz wykonamy nasz kod, aby zobaczyć wynik.

Importuj QMCPY jako QMCPY
od Scipy
Import PI, COS, SQRT, Linalg
D = 2
DNB2 = QP.DigitalNetB2 (d)
gauss_sobol = qp.Gaussian (DNB2, średnia = 0, kowariancja = 1/2)
k = QP.CustomFun (
true_measure = gauss_sobol,
G = Lambda X: PI ** (d/2)*cos (lialg.norma (x, oś = 1)))
QMC_SOBOL_ALGORITHM = QP.Cubqmcsobolg (k, ABS_TOL = 1E-3)
Rozwiązanie, dane = = QMC_SOBOL_ALGORIMM.zintegrować()
Drukuj (dane)

Po wykonaniu naszego kodu system dał nam następujące dane wyjściowe. W MATLAB lub innych cyfrowych narzędziach przetwarzania obrazu, to wyjście zostanie wyświetlone w postaci reprezentacji graficznej. Ale tutaj mamy dane wyjściowe w formacie konsoli, abyśmy mogli po prostu zobaczyć wartości zwrócone z naszego kodu i potwierdzić matematycznie metodę QMC do naszych wartości wejściowych.

Wniosek

W tym przewodniku nie rozmawialiśmy o żadnej konkretnej bibliotece, klasie ani funkcji w Scipy. Omówiliśmy metodę matematyczną, jaką jest quasi-miesięczna Carlo, która jest wykorzystywana do obliczania problemów finansowych w matematyce. Najpierw wyjaśniliśmy, co robi metoda QMC i jakie są jej zastosowania w dziedzinie matematyki i grafiki. Próbowaliśmy również wyjaśnić, w jaki sposób ta metoda jest wykonywana. Czasami trudno jest programistowi wykonywać złożoną matematykę w swoim kodzie, ponieważ te dwa są różnymi dziedzinami. SCIPY zapewnia nam moduł QMC, który ma prawie wszystkie funkcje i silniki, które można użyć do wykonywania matematyki QMC w naszym kodzie bez wysiłku wykonywania matematyki w naszym kodzie. Za pomocą modułu QMC możemy po prostu użyć jego silników i funkcji we właściwej części naszego kodu do wykonania metody quasi-monte Carlo. Mamy nadzieję, że ten przewodnik pomoże Ci uzyskać znajomość metody QMC i tego, jak można go łatwo użyć w Python za pomocą Scipy.Moduł QMC.