Scipy cuasi Monte Carlo

Scipy cuasi Monte Carlo
En este artículo, discutiremos otro módulo Scipy que es cuasi-Monte Carlo. Para explicar este módulo de Scipy, primero, necesitamos entender qué es cuasi-monte carlo. El método cuasi-monte carlo es un método utilizado para realizar integraciones y otros problemas matemáticos. Este método utiliza una secuencia de baja discrepancia para resolver los problemas. Este método se utiliza en matemáticas financieras y se usa muy popularmente recientemente. Estos métodos también se utilizan para calcular integrales multivariantes.

Este método está compuesto por cuatro partes principales. Esos componentes son un integrando, una distribución discreta, datos de salida de resumen y un criterio de detención. El siguiente método utiliza la siguiente fórmula para realizar:

Otra cosa a tener en cuenta es que este método es casi el mismo que el método de Monte Carlo. La única diferencia es que usa el número cuasirandom para obtener la integral de la entrada. Estos números son generados por la propia computadora utilizando algunos algoritmos. Estos números generados están de alguna manera cerca de los números pseudorandom. El método Quasi-Monte Carlo también se conoce como el método Halton-Hammersley-Wozniakowski y utiliza el lenguaje wolfram para operar. El método quasi-monte carlo tiene una tasa de convergencia mucho más rápida que la tasa de estimulación de Monte Carlo i.e o (n-1/2). También tiene posibilidades de error de o (n-1). Este método genera resultados completamente determinados.

Estas técnicas y métodos también son muy útiles para resolver problemas de gráficos por computadora matemáticamente usando gráficos, etc. En otros idiomas, también puede usar estos métodos para cumplir con sus requisitos, pero deberá escribir todo el código y tendrá que inventar su lógica dependiendo de sus habilidades matemáticas. Pero en Python, este método es una función incorporada y viene en forma de biblioteca, por lo que en comparación con otros idiomas, esta función es mucho más fácil de realizar en Python.

Sintaxis:

Quasi-Monte Carlo no es una función ni una biblioteca. Es un módulo en SciPy que proporciona funciones y motores auxiliares que se utilizan para realizar operaciones relacionadas con el método cuasi-monte Carlo. Los siguientes son los motores proporcionados por este módulo.

Qmcengine: Esta es una clase que se usa para subclas. Se necesitan dos parámetros. Una es la dimensión "D" del espacio de parámetros que es un entero y el otro es "semilla" que es opcional.

Solar: Este motor se usa para la creación de secuencias de Sobol. También toma la dimensión como un parámetro y otro parámetro Scramble que es un booleano y opcional. Los otros dos parámetros opcionales son bits y semillas que son tipos de datos enteros.

Halton: Al igual que Sobol, este motor también generó una secuencia. Pero en lugar de secuencias de Sobol, esto generó la secuencia de Halton. Tiene tres parámetros. Dimensión, lucha y semillas.

Latinhypercube: Este motor se usa para LHS I.E LATIN HIPER CUBE Muestreo. Tiene cinco parámetros. Tres son lo mismo que otros motores I.E: Dimensión "D", semilla y fuerza. Los otros dos están optimización y centrados. Ambos son parámetros opcionales.

Poissondisk: Este motor se utiliza para PDS, que es la forma corta de muestreo de disco de Poisson. Los mismos parámetros son la dimensión y la semilla. Tres parámetros son diferentes, ese es el radio que es de tipo de datos flotante, hipersphere, que es un parámetro opcional y candidatos que tiene un tipo de datos entero. Toma el número de candidatos como entrada que realizará una muestra por incremento o iteración.

Multinomialqmc: Este motor es una muestra genérica de cuasi-Monte Carlo utilizada para la distribución multinomial. Tiene un mismo parámetro que es una semilla. Tiene un total de cuatro argumentos. Pvals, que es un argumento de matriz, ntrials que tiene un tipo de datos entero y un motor que es una muestra de motor para cuasi Monte Carlo. Por defecto, toma Sobol como su valor.

Multivariatenormalqmc: Esto se usa para el muestreo de la normal multivariada. Tiene seis parámetros y uno de ellos es el mismo. Esos seis argumentos son medios, CoV, Cov_root, Inv_Transform, Engine y Seed.

Estos motores tienen sus funciones para realizar operaciones. Además de los motores, este módulo también proporciona funciones ayudantes que son dispersantes, update_disperancy y escala.

Ejemplo # 01:

Para que comprenda este módulo en detalle, daremos un ejemplo con respecto a uno de los algoritmos de este método utilizando SciPy.QMC en lenguaje de Python. Calcularemos el valor del dimensional Keister Integrand [18]. Para hacerlo, primero hemos importado vacío de Scipy. Después de eso, importamos algunas bibliotecas más utilizando funciones matemáticas porque necesitaremos esas funciones para nuestros cálculos. En este ejemplo, hemos utilizado el motor Sobol de QMC que discutimos anteriormente en nuestro artículo. Hemos pasado los valores a nuestras funciones y, por fin, hemos impreso nuestra salida. Ahora, ejecutaremos nuestro código para ver el resultado.

importar QMCPY como QMCPY
De Scipy
importar pi, cos, sqrt, linalg
d = 2
DNB2 = QP.DigitalNetb2 (d)
gauss_sobol = QP.Gaussian (DNB2, media = 0, covarianza = 1/2)
K = QP.CustomFun (
True_Meash = gauss_sobol,
g = lambda x: pi ** (d/2)*cos (linalg.Norma (x, eje = 1)))
qmc_sobol_algorithm = qp.Cubqmcsobolg (k, abs_tol = 1e-3)
solución, data = = QMC_SOBOL_Algorithm.integrar()
Imprimir (datos)

Después de la ejecución de nuestro código, el sistema nos ha dado la siguiente salida. En MATLAB u otras herramientas de procesamiento de imágenes digitales, esta salida se mostrará en forma de una representación gráfica. Pero aquí, tenemos salida en formato de consola para que podamos ver los valores devueltos de nuestro código y confirmar después de realizar el método QMC matemáticamente a nuestros valores de entrada.

Conclusión

En esta guía, no discutimos ninguna biblioteca, clase o función específica en Scipy. Discutimos un método matemático que es cuasi-Monte Carlo que se utiliza para calcular problemas financieros en matemáticas. Primero explicamos qué hace el método QMC y cuáles son sus aplicaciones en el campo de las matemáticas y los gráficos. También tratamos de explicar cómo se realiza este método. A veces es difícil para un programador realizar matemáticas complejas en su código porque estos dos son diferentes campos. Scipy nos proporciona un módulo QMC que tiene casi todas las funciones y motores que pueden usarse para realizar las matemáticas QMC en nuestro código sin hacer el esfuerzo de realizar las matemáticas en nuestro código. Con la ayuda del módulo QMC, simplemente podemos usar sus motores y funciones en la parte correcta de nuestro código para realizar el método cuasi-monte Carlo. Esperamos que esta guía lo ayude a obtener un conocimiento del método QMC y cómo se puede usar fácilmente en Python usando Scipy.Módulo QMC.