[PYTHON] J'ai essayé de calculer l'intégrale de probabilité (I à l'intégrale)

■ Il existe les méthodes suivantes pour l'intégration des probabilités

Riemann sum formule) $ \sum_{j=0}^{N-1} h(t_j) (t_{j+1}-t_j) $

Ito integral. Méthode de processus stochastique étendue par Kiyoshi Ito formule) $ \sum_{j=0}^{N-1}h(t_j) (W(t_{j+1})-W(t_j)) $. <=> $ \int_0^{T} h(t)dW(t) $.

Stratonovich integrals formule) \sum_{j=0}^{N-1}h\big(\frac{t_j+t_{j+1}}{2}\big)(W(t_{j+1})-W(t_j))

Calcul de l'intégrale Ito

Lorsque $ h (t) \ equiv W (t) $, Ito intégrale est

\begin{align*}
\sum_{j=0}^{N-1} W(t_j) (W(t_{j+1})-W(t_j)) \\
&=\sum_{j=0}^{N-1} ({W(t_{j+1})}^2 - {W(t_{j+1})}^2 + 2 W(t_j) W(t_{j+1}) - {W(t_j)}^2  - {W(t_j)}^2) \\
&= \frac{1}{2} \sum_{j=0}^{N-1} ({W(t_{j+1})}^2 - {W(t_j)}^2 - (W(t_{j+1}) - W(t_j))^2 )\\
&= \frac{1}{2} (W(T)^2 - W(0)^2)  -  \frac{1}{2} \sum_{j=0}^{N-1} (W(t_{j+1}) - W(t_j))^2
\end{align*}

$ \ sum_ {j = 0} ^ {N-1} (W (t_ {j + 1}) --W (t_j)) ^ 2 $ est égal à la distribution de Wiener Process et peut être défini comme $ T . $ \ sum_ {j = 0} ^ {N-1} (W (t_ {j + 1}) --W (t_j)) ^ 2 = \ frac {1} {2} (W (T) ^ 2- Il peut être exprimé par T) $$.

Calculons I à l'intégrale.

N=10000;
M=1;
T = 1.0
dt = T / N;

t = np.arange(0.0,1.0, dt);
dW = np.sqrt(dt)*randn(N,M); # (N, M)queue
W = np.cumsum(dW,axis=0);
e = np.array([[0]])
W_=np.concatenate((e,W[:-1]), axis=0)  #Mettez 0 dans la valeur initiale W(0)Comme.

ito = np.dot(W_.T,dW) # (10000, 1).T * (10000, 1)  => (1, 1)
np.abs(ito - 0.5*(W[-1]**2 - T) )[0][0]

## output
##  0.00414652405737

Article de référence

https://www.semanticscholar.org/paper/An-Algorithmic-Introduction-to-Numerical-Simulation-Higham/1c4126f96df7690dd40dab5f34ee4be5a5f95fbb

--Wikipedia "Kiyo Ito" https://ja.wikipedia.org/wiki/%E4%BC%8A%E8%97%A4%E6%B8%85

Recommended Posts

J'ai essayé de calculer l'intégrale de probabilité (I à l'intégrale)
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
Je veux épingler Spyder à la barre des tâches
Je veux sortir froidement sur la console
J'ai essayé de résumer la commande umask
Je veux gérer la rime part1
Je veux gérer la rime part3
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
J'ai essayé Web Scraping pour analyser les paroles.
J'ai essayé d'optimiser le séchage du linge
J'ai essayé de sauvegarder les données avec discorde
Je voulais jouer avec la courbe de Bézier
Je veux gérer la rime part7 (BOW)
J'ai essayé de corriger la forme trapézoïdale de l'image
Qiita Job J'ai essayé d'analyser le travail
[Python] Je vais télécharger FTP sur le serveur FTP.
Je souhaite personnaliser l'apparence de zabbix
LeetCode j'ai essayé de résumer les plus simples
Je souhaite utiliser la fonction d'activation Mish
J'ai essayé de mettre en œuvre le problème du voyageur de commerce
Je veux afficher la progression en Python!
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
Je veux voir le nom de fichier de DataLoader
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé de détecter l'iris à partir de l'image de la caméra
Je veux grep le résultat de l'exécution de strace
Je veux faire défiler la table de décalage Django, mais ...
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de toucher un fichier CSV avec Python
J'ai commencé à analyser
J'ai essayé de résoudre Soma Cube avec python
Je voulais utiliser la bibliothèque Python de MATLAB
Je veux hériter de l'arrière avec la classe de données python
Je veux bien comprendre les bases de Bokeh
J'ai essayé de déboguer.
J'ai essayé d'approcher la fonction sin en utilisant le chainer
J'ai essayé de mettre Pytest dans la bataille réelle
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
Je veux écrire en Python! (3) Utiliser des simulacres
J'ai essayé de visualiser les informations spacha de VTuber
La route vers Pythonista
J'ai essayé d'effacer la partie négative de Meros
J'ai fait une commande pour marquer le clip de la table
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai senti que j'avais porté le code Python en C ++ 98.
Ce que j'ai fait pour établir une connexion SSH à l'environnement VPS Ubuntu
Je veux gérer la rime part6 (organiser une fois)
Je veux automatiser ssh en utilisant la commande expect!
J'ai essayé de simuler la méthode de calcul de la moyenne des coûts en dollars
Je souhaite publier le produit au moindre coût
J'ai compté les grains
J'ai essayé de refaire la factorisation matricielle non négative (NMF)