Scipy Quasi Monte Carlo

Scipy Quasi Monte Carlo
Dans cet article, nous discuterons d'un autre module Scipy qui est quasi-monte Carlo. Pour expliquer ce module de Scipy, nous devons d'abord comprendre ce qu'est quasi-monte carlo. La méthode quasi-monte Carlo est une méthode utilisée pour effectuer des intégrations et d'autres problèmes mathématiques. Cette méthode utilise une séquence de divergence faible pour résoudre les problèmes. Cette méthode est utilisée en mathématiques financières et est très populaire récemment. Ces méthodes sont également utilisées pour calculer les intégrales multivariantes.

Cette méthode est composée de quatre pièces principales. Ces composants sont une intégrande, une distribution discrète, des données de sortie sommaire et un critère d'arrêt. La formule suivante est utilisée par cette méthode pour effectuer:

Une autre chose à garder à l'esprit est que cette méthode est presque la même que la méthode Monte Carlo. La seule différence est qu'il utilise le numéro quasiRandom pour faire partie intégrante de l'entrée. Ces nombres sont générés par l'ordinateur lui-même en utilisant certains algorithmes. Ces nombres générés sont en quelque sorte proches des nombres pseudorandoms. La méthode quasi-monte Carlo est également connue sous le nom de méthode Halton-Hammersley-Wozniakowski et utilise le langage Wolfram pour fonctionner. La méthode quasi-monte carlo a un taux de convergence beaucoup plus rapide que le taux de stimulation de Monte Carlo I.e o (n-1/2). Il a également des chances d'erreur de o (n-1). Cette méthode génère des résultats complètement déterminés.

Ces techniques et méthodes sont également très utiles pour résoudre les problèmes graphiques informatiques mathématiquement à l'aide de graphiques, etc. Dans d'autres langues, vous pouvez également utiliser ces méthodes pour répondre à vos exigences, mais vous devrez écrire tout le code et devrez composer votre logique en fonction de vos compétences mathématiques. Mais dans Python, cette méthode est une fonction intégrée et se présente sous forme de bibliothèque, donc par rapport aux autres langues, cette fonction est beaucoup plus facile à effectuer dans Python.

Syntaxe:

Quasi-monte Carlo n'est ni une fonction ni une bibliothèque. Il s'agit d'un module de Scipy qui fournit des fonctions d'assistance et des moteurs utilisés pour effectuer des opérations liées à la méthode quasi-monte Carlo. Voici les moteurs fournis par ce module.

Qmcengine: Ceci est une classe utilisée pour la sous-classe. Il faut deux paramètres. L'un est la dimension «D» de l'espace des paramètres qui est un entier et l'autre est «graine» qui est facultative.

Sobol: Ce moteur est utilisé pour la création de séquences Sobol. Il faut également une dimension comme paramètre et un autre paramètre se brouillant qui est un booléen et facultatif. Les deux autres paramètres facultatifs sont des bits et des graines qui sont des données entières.

Halton: Tout comme Sobol, ce moteur a également généré une séquence. Mais au lieu de séquences Sobol, cela a généré une séquence de halton. Il a trois paramètres. Dimension, brouillage et graines.

Latinhypercube: Ce moteur est utilisé pour LHS I.E échantillon de latin hyper cube. Il a cinq paramètres. Trois sont les mêmes que les autres moteurs I.E: Dimension «D», graines et force. Les deux autres sont l'optimisation et centrée. Les deux sont des paramètres facultatifs.

Poissonnisk: Ce moteur est utilisé pour PDS qui est la forme courte de l'échantillonnage du disque de Poisson. Les mêmes paramètres sont la dimension et les graines. Trois paramètres sont différents, c'est-à-dire le rayon qui est du type de données de flotteur, l'hypersphere qui est un paramètre facultatif et les candidats qui possède un type de données entier. Il faut le nombre de candidats en entrée qui va effectuer un échantillon par incrément ou itération.

MultinomialQMC: Ce moteur est un échantillonneur générique quasi-monte Carlo utilisé pour la distribution multinomiale. Il a un même paramètre qui est une graine. Il a un total de quatre arguments. PVALS qui est un argument de type tableau, Ntrials qui a un type de données entier et un moteur qui est un échantillonneur de moteur pour Quasi Monte Carlo. Par défaut, il prend SOBOL comme valeur.

MultivariatenormalQMC: Ceci est utilisé pour l'échantillonnage de la normale multivariée. Il a six paramètres et l'un d'eux est le même. Ces six arguments sont méchants, CoV, CoV_Root, Inv_Transform, Engine et Seed.

Ces moteurs ont leurs fonctions pour effectuer des opérations. Outre les moteurs, ce module fournit également des fonctions d'assistance dispersantes, update_disperancy et échelle.

Exemple # 01:

Pour vous faire comprendre ce module en détail, nous donnerons un exemple concernant l'un des algorithmes de cette méthode en utilisant Scipy.QMC en langue python. Nous calculerons la valeur de l'intégrande dimensionnelle de Keister [18]. Pour ce faire, nous avons d'abord importé vide de Scipy. Après cela, nous avons importé quelques bibliothèques supplémentaires en utilisant des fonctions mathématiques car nous aurons besoin de ces fonctions pour nos calculs. Dans cet exemple, nous avons utilisé le moteur Sobol de QMC dont nous avons discuté plus tôt dans notre article. Nous avons transmis les valeurs à nos fonctions et enfin, nous avons imprimé notre sortie. Maintenant, nous allons exécuter notre code pour voir le résultat.

importer qmcpy comme qmcpy
de Scipy
Importer Pi, Cos, SQRT, Linalg
d = 2
dnb2 = qp.DigitalNetB2 (d)
Gauss_sobol = qp.Gaussien (dnb2, moyenne = 0, covariance = 1/2)
k = qp.CustomFun (
true_measure = Gauss_sobol,
g = lambda x: pi ** (d / 2) * cos (linalg.norme (x, axe = 1)))
qmc_sobol_algorithme = qp.CubQmcSobolg (K, ABS_TOL = 1E-3)
solution, data = = qmc_sobol_algorithme.intégrer()
Imprimer (données)

Après l'exécution de notre code, le système nous a donné la sortie suivante. Dans MATLAB ou d'autres outils de traitement d'image numérique, cette sortie sera affichée sous la forme d'une représentation graphique. Mais ici, nous avons la sortie au format console afin que nous puissions simplement voir les valeurs renvoyées de notre code et confirmer après avoir effectué la méthode QMC mathématiquement à nos valeurs d'entrée.

Conclusion

Dans ce guide, nous n'avons discuté aucune bibliothèque, classe ou fonction spécifique dans SCIPY. Nous avons discuté d'une méthode mathématique qui est quasi-monte carlo utilisée pour calculer les problèmes financiers en mathématiques. Nous avons d'abord expliqué ce que fait la méthode QMC et quelles sont ses applications dans le domaine des mathématiques et des graphiques. Nous avons également essayé d'expliquer comment cette méthode est effectuée. Il est parfois difficile pour un programmeur d'effectuer des mathématiques complexes dans son code parce que ces deux sont des domaines différents. Scipy nous fournit un module QMC qui a presque toutes les fonctions et moteurs qui peuvent être utilisés pour effectuer des mathématiques QMC dans notre code sans faire l'effort d'exécuter les mathématiques dans notre code. À l'aide du module QMC, nous pouvons simplement utiliser ses moteurs et fonctions à la bonne partie de notre code pour effectuer la méthode quasi-monte carlo. Nous espérons que ce guide vous aidera à acquérir une connaissance de la méthode QMC et comment elle peut facilement être utilisée dans Python en utilisant Scipy.Module QMC.