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 = []