Pas encore de compte ?
Les algorithmes stochastiques sont des techniques de simulation numériques de chaînes de Markov, visant à résoudre des problèmes d’optimisation ou d’estimation complexes.
A la différence de leurs homologues déterministes, ces méthodes de recherche aléatoire permettent d’explorer des espaces de grandes dimensions, tout en évitant certains pièges, tels des puits de minima locaux en optimisation globale.
Simulation d'une équation différentielle stochastique.
Testé sous Anaconda et Python 3.7
import numpy as np import matplotlib.pyplot as plt sigma = 1. # Standard deviation. mu = 10. # Mean. tau = .05 # Time constant. dt = .001 # Time step. T = 1. # Total time. n = int(T / dt) # Number of time steps. t = np.linspace(0., T, n) # Vector of times. sigma_bis = sigma * np.sqrt(2. / tau) sqrtdt = np.sqrt(dt) x = np.zeros(n) for i in range(n - 1): x[i + 1] = x[i] + dt * (-(x[i] - mu) / tau) + \ sigma_bis * sqrtdt * np.random.randn() fig, ax = plt.subplots(1, 1, figsize=(8, 4)) ax.plot(t, x, lw=2) ntrials = 10000 X = np.zeros(ntrials) # We create bins for the histograms. bins = np.linspace(-2., 14., 100) fig, ax = plt.subplots(1, 1, figsize=(8, 4)) for i in range(n): # We update the process independently for # all trials X += dt * (-(X - mu) / tau) + \ sigma_bis * sqrtdt * np.random.randn(ntrials) # We display the histogram for a few points in # time if i in (5, 50, 900): hist, _ = np.histogram(X, bins=bins) ax.plot((bins[1:] + bins[:-1]) / 2, hist, {5: '-', 50: '.', 900: '-.', }[i], label=f"t={i * dt:.2f}") ax.legend()
Bienvenu, je m’appelle Eric Soupet et je suis l'administrateur du site elodees.com. elodees.com est un état de l'art de l'Intelligence Artificielle et se veut collaboratif, vous pouvez dès à présent proposer du contenu tels que des articles, des événements, des tutoriels, ... alors n'hésitez pas !
Crédit des images de la plate-forme : Pixabay - Pixabay License | Pexels - Pexels License