Scipy Quasi Monte Carlo

Scipy Quasi Monte Carlo
In questo articolo, discuteremo di un altro modulo Scipy che è Quasi-Monte Carlo. Per spiegare questo modulo di Scipy, in primo luogo, dobbiamo capire cosa sia quasi monte Carlo. Il metodo Quasi-Monte Carlo è un metodo utilizzato per eseguire integrazioni e altri problemi matematici. Questo metodo utilizza una sequenza a bassa discrepanza per risolvere i problemi. Questo metodo viene utilizzato in matematica finanziaria ed è usato molto popolarmente di recente. Questi metodi vengono anche utilizzati per calcolare gli integrali multivarianti.

Questo metodo è composto da quattro parti principali. Quei componenti sono un integrand, una distribuzione discreta, dati di output di riepilogo e un criterio di arresto. La seguente formula viene utilizzata con questo metodo per eseguire:

Un'altra cosa da tenere a mente è che questo metodo è quasi lo stesso del metodo Monte Carlo. L'unica differenza è che utilizza il numero Quasirandom per ottenere l'integrale dell'input. Questi numeri sono generati dal computer stesso usando alcuni algoritmi. Questi numeri generati sono in qualche modo vicini ai numeri pseudorandi. Il metodo Quasi-Monte Carlo è anche noto come metodo Halton-Hammersley-Wozniakowski e utilizza il linguaggio Wolfram per operare. Il metodo Quasi-Monte Carlo ha un tasso di convergenza molto più veloce del tasso di stimolazione Monte Carlo i.e o (n-1/2). Ha anche possibilità di errore di O (n-1). Questo metodo genera risultati completamente determinati.

Queste tecniche e metodi sono anche molto utili per risolvere i problemi di computer grafica matematicamente usando grafici ecc. In altre lingue, puoi anche utilizzare questi metodi per soddisfare le tue esigenze, ma dovrai scrivere tutto il codice e dovrai inventare la tua logica a seconda delle tue capacità matematiche. Ma in Python, questo metodo è una funzione integrata ed è disponibile nella forma della libreria, quindi rispetto ad altre lingue questa funzione è molto più facile da eseguire in Python.

Sintassi:

Quasi-monte Carlo non è né una funzione né una libreria. È un modulo in Scipy che fornisce funzioni e motori di supporto che vengono utilizzati per eseguire operazioni relative al metodo Quasi-Monte Carlo. Di seguito sono riportati i motori forniti da questo modulo.

Qmcengine: Questa è una classe che viene utilizzata per la sottoclasse. Ci vogliono due parametri. Uno è la dimensione "d" dello spazio dei parametri che è un numero intero e l'altro è "seme" che è facoltativo.

Sobol: Questo motore viene utilizzato per la creazione di sequenze di Sobol. Prende anche la dimensione come parametro e un altro parametro che è un booleano e facoltativo. Gli altri due parametri opzionali sono bit e semi che sono dati interi.

Fermarsi bruscamente: Proprio come Sobol, questo motore ha anche generato una sequenza. Ma invece delle sequenze di Sobol, questa generazione di Halton ha generato. Ha tre parametri. Dimensione, scramble e semi.

Latinipercube: Questo motore è usato per LHS i.campionamento iper cubetto latino. Ha cinque parametri. Tre sono uguali agli altri motori i.E: dimensione “d”, seme e forza. Gli altri due sono l'ottimizzazione e centrati. Entrambi sono parametri opzionali.

Poissondisk: Questo motore viene utilizzato per PDS che è la forma corta del campionamento del disco di Poisson. Gli stessi parametri sono dimensioni e semi. Tre parametri sono diversi, ovvero il raggio che è del tipo di dati float, ipersfera che è un parametro opzionale e candidati che ha un tipo di dati interi. Prende il numero di candidati come input che eseguirà un campione per incremento o iterazione.

Multinomialqmc: Questo motore è un campionatore carlo quasi monte generico utilizzato per la distribuzione multinomiale. Ha uno stesso parametro che è un seme. Ha un totale di quattro argomenti. pvals che è un argomento simile a un array, ntrials che ha un tipo di dati interi e un motore che è un campionatore di motore per quasi monte carlo. Per impostazione predefinita, ci vuole Sobol come valore.

MultivariateNormalQMC: Questo viene utilizzato per il campionamento del normale multivariato. Ha sei parametri e uno di questi è lo stesso. Quei sei argomenti sono medi, cov, cov_root, inv_transform, motore e seme.

Questi motori hanno le loro funzioni per eseguire operazioni. Oltre ai motori, questo modulo fornisce anche funzioni di supporto disperse, update_disperancy e scala.

Esempio # 01:

Per farti capire in dettaglio questo modulo, daremo un esempio su uno degli algoritmi di questo metodo usando Scipy.QMC in lingua Python. Calcoleremo il valore del Keister di dimensione [18]. Per fare ciò, abbiamo importato per la prima volta vuoto da Scipy. Successivamente, abbiamo importato alcune più librerie usando funzioni matematiche perché avremo bisogno di quelle funzioni per i nostri calcoli. In questo esempio, abbiamo usato il motore Sobol di QMC di cui abbiamo discusso in precedenza nel nostro articolo. Abbiamo passato i valori alle nostre funzioni e alla fine abbiamo stampato il nostro output. Ora eseguiremo il nostro codice per vedere il risultato.

Importa QMCPY come QMCPY
da Scipy
Import PI, cos, sqrt, linalg
d = 2
dnb2 = qp.DigitalNetB2 (D)
gauss_sobol = qp.Gaussiano (dnb2, media = 0, covarianza = 1/2)
k = qp.CustomFun (
true_measure = gauss_sobol,
g = lambda x: pi ** (d/2)*cos (linalg.Norm (x, asse = 1)))
QMC_SOBOL_ALGORITHM = QP.CUBQMCSOBOLG (K, ABS_TOL = 1E-3)
Soluzione, data = = qmc_sobol_algoritm.integrare()
Stampa (dati)

Dopo l'esecuzione del nostro codice, il sistema ci ha dato il seguente output. In Matlab o altri strumenti di elaborazione delle immagini digitali, questo output verrà visualizzato sotto forma di una rappresentazione grafica. Ma qui, abbiamo output in formato console in modo da poter vedere i valori restituiti dal nostro codice e confermare dopo aver eseguito matematicamente il metodo QMC sui nostri valori di input.

Conclusione

In questa guida, non abbiamo discusso di una biblioteca, classe o funzione specifiche in Scipy. Abbiamo discusso di un metodo matematico che è quasi monte Carlo che viene utilizzato per calcolare i problemi finanziari in matematica. Abbiamo spiegato per la prima volta cosa fa il metodo QMC e quali sono le sue applicazioni nel campo della matematica e della grafica. Abbiamo anche cercato di spiegare come viene eseguito questo metodo. A volte è difficile per un programmatore eseguire matematica complessa nel suo codice perché questi due sono campi diversi. Scipy ci fornisce un modulo QMC che ha quasi tutte le funzioni e i motori che possono essere utilizzati per eseguire la matematica QMC nel nostro codice senza fare lo sforzo di eseguire la matematica nel nostro codice. Con l'aiuto del modulo QMC, possiamo semplicemente usare i suoi motori e funzioni nella parte giusta del nostro codice per eseguire il metodo Quasi-Monte Carlo. Speriamo che questa guida ti aiuti a conoscere il metodo QMC e come può essere facilmente utilizzata in Python usando Scipy.Modulo QMC.