Przyjęcie nowego stanu i powrót do punktu 2 Po przetestowaniu stanu jest on zapisany jako nowy i algorytm szuka kolejnego punktu
Przykład próbkowania Poniżej podano kod w języku python próbkowania rozkładu normalnego, nieunormowanego do 1, za pomocą metody Metropolisa. Dodatkowo dodano wykresy, porównując histogram otrzymany z próbkowania rozkładu z unormowanym rozkładem normalnym. # Metoda Metropolisa # Rozkład próbkowany - to nieunormowany rozkład normalny. # Celem całkowania tego rozkładu jest wyznaczenie stałej normującej go do 1
import numpy as np import matplotlib.pyplot as plt
mean = 0 # Średnia próbkowanego rozkładu std_dev = 1 # Odchylenie standardowe próbkowanego rozkładu
def rozkład(x): return np.exp(-0.5*((x - mean)/std_dev)**2)
# Rozkład docelowy - to rozkład normalny, unormowany do 1; # jego wykres wykorzystamy do porównania go z rozkładem próbek (histogram), # otrzymanych za pomocą metody Metropolisa def rozkład_norm(x): return np.exp(-0.5*((x - mean)/std_dev)**2)/(std_dev*np.sqrt(2*np.pi))
# Liczba próbek n = 1000000
# Punkt startowy - dowolnie wybramy z dziedziny próbkowanej funkcji rozkład(x) x_aktualny = -2
# Inicjalizacja licznika akceptowanych próbek zakceptowane_probki = 0
# Lista do przechowywania próbek probki = []