% Geometrische Abkühlung und die daraus folgende Annahmewahrscheinlichkeit. % % Gezeichnet mit MetaPost. Die Farben kommen aus nxtfarben.mp, das von % Code/farben.py aus nxtlatexcolors.sty erzeugt wird -- dieselbe Quelle % wie für LaTeX, TikZ und matplotlib. % % Übersetzen: mpost abkuehlung.mp (erzeugt abkuehlung-1.mps) % % Zwei Eigenheiten von MetaPost, über die man hier stolpert: % 1. Ein Name darf nicht auf einer Ziffer enden -- »T0« wäre »T« mit % Suffix 0. Deshalb Tstart statt T0. % 2. Zahlen sind auf ~32768 begrenzt und alpha^60000 läuft über. Der % Verlauf wird daher über die normierte Laufvariable t in [0,1] % gerechnet: T/Tstart = exp(-c*t) mit c = -60000*ln(alpha). input nxtfarben; prologues := 3; outputtemplate := "%j-%c.mps"; verbatimtex \documentclass{article} \usepackage{fontspec} \setmainfont{STIX Two Text} \usepackage{unicode-math} \setmathfont{STIX Two Math} \begin{document} etex numeric b, h; b := 250; % Breite in bp h := 105; % Höhe in bp % Abkühlfaktor über den ganzen Lauf: T_ende/T_start = exp(-c). % Im Verfahren: Tstart = 25, Tende = 0,05, also c = ln(25/0,05) = 6,21. numeric c; c := 6.2146; % mexp(x) ist exp(x/256); die Faktoren 256 rechnen das um. vardef Tnorm(expr t) = mexp(-256 * c * t) enddef; % Annahmewahrscheinlichkeit exp(-dE/T) für eine feste Verschlechterung dE. % dE ist in Einheiten von Tstart angegeben. vardef Pann(expr t, dE) = mexp(-256 * dE / Tnorm(t)) enddef; beginfig(1); % --- zurückhaltendes Gitter ----------------------------------------- for i = 1 upto 4: draw (0, i*h/4) -- (b, i*h/4) withcolor nxt_gray1 withpen pencircle scaled .3pt; endfor % --- Achsen ---------------------------------------------------------- drawarrow (0,0) -- (b+12, 0) withcolor nxt_gray4 withpen pencircle scaled .5pt; drawarrow (0,0) -- (0, h+12) withcolor nxt_gray4 withpen pencircle scaled .5pt; % --- Temperaturverlauf ------------------------------------------------ path temp; temp = (0, h) for i = 1 upto 80: .. (b*i/80, h*Tnorm(i/80)) endfor; draw temp withcolor nxtgreen withpen pencircle scaled 1.2pt; % --- Annahmewahrscheinlichkeit ---------------------------------------- numeric dE; dE := 0.12; path pann; pann = (0, h*Pann(0, dE)) for i = 1 upto 80: .. (b*i/80, h*Pann(i/80, dE)) endfor; draw pann dashed evenly scaled .7 withcolor nxt_orange withpen pencircle scaled 1pt; % --- Beschriftung ------------------------------------------------------ label.rt(btex \footnotesize Temperatur $T_k=T_{\mathrm{start}}\,\alpha^k$ etex, (b*0.26, h*0.80)) withcolor nxtgreen; label.rt(btex \footnotesize Annahme einer Verschlechterung $\exp(-\Delta E/T_k)$ etex, (b*0.20, h*0.30)) withcolor nxt_orange; label.bot(btex \footnotesize Iteration $k$ etex, (b/2, -7)) withcolor nxt_gray5; label.lft(btex \footnotesize $T_{\mathrm{start}}$ etex, (0, h)) withcolor nxt_gray5; label.lft(btex \footnotesize $0$ etex, (0, 0)) withcolor nxt_gray5; label.bot(btex \footnotesize $0$ etex, (0, -7)) withcolor nxt_gray5; label.bot(btex \footnotesize $60\,000$ etex, (b, -7)) withcolor nxt_gray5; endfig; end.