Scipy Quasi Monte Carlo

Scipy Quasi Monte Carlo
In diesem Artikel werden wir ein anderes Scipy-Modul diskutieren, das Quasi-monte Carlo ist. Um dieses Skipymodul zu erklären, müssen wir zunächst verstehen, was Quasi-monte Carlo ist. Quasi-monte-Carlo-Methode ist eine Methode, die zur Durchführung von Integrationen und anderen mathematischen Problemen verwendet wird. Diese Methode verwendet eine niedrige Diskrepanzsequenz, um die Probleme zu lösen. Diese Methode wird in der finanziellen Mathematik verwendet und wird in letzter Zeit sehr im Volksmund verwendet. Diese Methoden werden auch verwendet, um multivariante Integrale zu berechnen.

Diese Methode besteht aus vier Hauptteilen. Diese Komponenten sind ein Integrand, eine diskrete Verteilung, zusammenfassende Ausgangsdaten und ein Stoppkriterium. Die folgende Formel wird von dieser Methode zur Durchführung verwendet:

Eine andere Sache, die Sie beachten sollten, ist, dass diese Methode fast die gleiche ist wie die Monte -Carlo -Methode. Der einzige Unterschied besteht darin, dass die Quasirandom -Nummer verwendet wird, um das Integral der Eingabe zu erhalten. Diese Zahlen werden vom Computer selbst mit einigen Algorithmen generiert. Diese generierten Zahlen liegen irgendwie nahe an Pseudorandom -Zahlen. Die Quasi-Monte-Carlo-Methode ist auch als Halton-Hammersley-Wozniakowski-Methode bekannt und verwendet die Wolfram-Sprache, um zu arbeiten. Die Quasi-Monte-Carlo-Methode hat eine viel schnellere Konvergenzrate als die Monte-Carlo-Stimulationsrate i.e o (n-1/2). Es hat auch Fehlerchancen von O (n)-1). Diese Methode erzeugt vollständig bestimmte Ergebnisse.

Diese Techniken und Methoden sind auch sehr nützlich bei der Lösung von Computergrafikproblemen mathematisch mithilfe von Diagrammen usw. In anderen Sprachen können Sie diese Methoden auch anwenden, um Ihre Anforderungen zu erfüllen, müssen jedoch den gesamten Code schreiben und müssen Ihre Logik je nach mathematischer Fähigkeiten ausmachen. In Python ist diese Methode jedoch eine integrierte Funktion und erfolgt in Form der Bibliothek. Im Vergleich zu anderen Sprachen ist diese Funktion in Python viel einfacher zu erfüllen.

Syntax:

Quasi-monte Carlo ist weder eine Funktion noch eine Bibliothek. Es handelt sich um ein Modul in Scipy, das Helferfunktionen und Motoren bietet, die zur Durchführung von Operationen im Zusammenhang mit der Quasi-Monte-Carlo-Methode verwendet werden. Im Folgenden sind die von diesem Modul bereitgestellten Motoren aufgeführt.

Qmcengine: Dies ist eine Klasse, die zur Unterklasse verwendet wird. Es dauert zwei Parameter. Einer ist Dimension „D“ des Parameterraums, der eine Ganzzahl und der andere ist „Saatgut“, der optional ist.

Sobol: Diese Motor wird zur Erstellung von Sobol -Sequenzen verwendet. Es nimmt auch die Dimension als Parameter und ein weiterer Parameter -Scramble, der ein boolescher und optional ist. Die beiden anderen optionalen Parameter sind Bits und Seeds, die ganzzahlige Datentypen sind.

Warte: Genau wie Sobol erzeugte dieser Motor auch eine Sequenz. Aber anstelle von Sobol -Sequenzen erzeugte diese Haltonsequenz. Es hat drei Parameter. Dimension, Scramble und Samen.

Latinhypercube: Dieser Motor wird für LHS I verwendet.E lateinische Hyper -Würfel -Probenahme. Es hat fünf Parameter. Drei sind die gleichen wie andere Motoren i.E: Dimension „D“, Samen und Stärke. Die anderen beiden sind Optimierung und zentriert. Beide sind optionale Parameter.

Poissondisk: Dieser Motor wird für PDs verwendet. Die gleichen Parameter sind Dimension und Samen. Drei Parameter sind unterschiedlich, das ist der Radius, der einen float -Datenatypen, eine Hypersphäre ist, die ein optionaler Parameter ist, und Kandidaten mit einem ganzzahligen Datentyp. Die Anzahl der Kandidaten als Eingabe, die eine Probe pro Inkrement oder Iteration durchführen wird.

Multinomialqmc: Dieser Motor ist ein generischer Quasi-Monte-Carlo-Probenehmer, der für die multinomiale Verteilung verwendet wird. Es hat einen gleichen Parameter, der ein Samen ist. Es hat insgesamt vier Argumente. Pvals, ein Array-ähnliches Argument, ntrials mit einem ganzzahligen Datentyp und Motor, der ein Motorprobenehmer für Quasi Monte Carlo ist. Standardmäßig nimmt es Sobol als Wert an.

MultivariAlimeMalqmc: Dies wird zur Probenahme von multivariatem Normalen verwendet. Es hat sechs Parameter und einer von ihnen ist der gleiche. Diese sechs Argumente sind Mittelwert, COV, COV_ROOT, Inv_Transform, Motor und Saatgut.

Diese Motoren haben ihre Funktionen, um Operationen auszuführen. Abgesehen von den Motoren bietet dieses Modul auch Helferfunktionen, die dispergierend, update_disperancy und scale sind.

Beispiel # 01:

Damit Sie dieses Modul im Detail verstehen, geben wir ein Beispiel für einen der Algorithmen dieser Methode mithilfe von Scipy.QMC in der Python -Sprache. Wir werden den Wert des dimensionalen Keister -Integrands berechnen [18]. Dazu haben wir zum ersten Mal leer aus Scipy importiert. Danach haben wir ein paar weitere Bibliotheken mit mathematischen Funktionen importiert, da wir diese Funktionen für unsere Berechnungen benötigen. In diesem Beispiel haben wir die Sobol -Engine von QMC verwendet, die wir früher in unserem Artikel erörtert haben. Wir haben die Werte an unsere Funktionen übergeben und schließlich haben wir unsere Ausgabe gedruckt. Jetzt werden wir unseren Code ausführen, um das Ergebnis zu sehen.

Importieren Sie QMCPY als QMCPy
von Scipy
PI, Cos, SQRT, Linalg importieren
d = 2
dnb2 = qp.DigitalNetb2 (d)
GAUSS_SOBOL = QP.Gaußsisch (DNB2, Mittelwert = 0, Kovarianz = 1/2)
k = qp.CustomFun (
true_measure = gauss_sobol,
g = lambda x: pi ** (d/2)*cos (linalg.Norm (x, Achse = 1)))
qmc_sobol_algorithmus = qp.Cubqmcsobolg (K, ABS_TOL = 1E-3)
Lösung, data = = qmc_sobol_algorithmus.integrieren()
Druck (Daten)

Nach der Ausführung unseres Codes hat uns das System die folgende Ausgabe gegeben. In MATLAB- oder anderen digitalen Bildverarbeitungswerkzeugen wird diese Ausgabe in Form einer grafischen Darstellung angezeigt. Aber hier haben wir Ausgaben im Konsolenformat, damit wir nur die aus unserem Code zurückgegebenen Werte sehen und nach der Ausführung der QMC.

Abschluss

In diesem Leitfaden haben wir keine bestimmte Bibliothek, Klasse oder Funktion in Scipy besprochen. Wir haben eine mathematische Methode diskutiert, die Quasi-Monte-Carlo ist, mit der finanzielle Probleme in der Mathematik berechnet werden. Wir haben zuerst erklärt, was die QMC -Methode tut und welche Anwendungen im Bereich Mathematik und Grafik sind. Wir haben auch versucht zu erklären, wie diese Methode durchgeführt wird. Für einen Programmierer ist es manchmal schwierig, komplexe Mathematik in seinem Code auszuführen, da diese beiden unterschiedliche Felder sind. Scipy bietet uns ein QMC. Mit Hilfe des QMC-Modul. Wir hoffen, dass dieser Leitfaden Ihnen hilft, Kenntnisse über die QMC -Methode zu erhalten und wie sie mit Scipy leicht in Python verwendet werden kann.QMC -Modul.