Beim Plotten mit gnuplot/tikz ergibt sich ein seltsamer Versatz von genau 0,5

Beim Plotten mit gnuplot/tikz ergibt sich ein seltsamer Versatz von genau 0,5

Ich zeichne einige grundlegende hochsymmetrische Bandstrukturen in einfacher Darstellung auf tikz. Wie Sie sehen, sollte die Untergrenze jeder dieser Funktionen bei Folgendem liegen:

http://imgur.com/vf7r4rs

Die dargestellte Funktion zeigt stattdessen eine andere Untergrenze (siehe Abbildung unten) mit einer Abweichung von genau .5. Woher kommt das? Ich konnte keinen Fehler im Code finden, der zu dieser Abweichung führen könnte.

http://imgur.com/yP8cwBN

\documentclass{article}

\usepackage{tikz,pgffor}
\usepackage{amsmath,mathtools}

\begin{document}
\begin{tikzpicture}
    \draw[->] (0,1) -- (3.25*pi,1);
    \draw[->] (0,1) -- (0,6.7);
    \node[below] at (0,1) {$\Gamma$};
    \node[above] at (0,6.7) {$E_k$ (eV)};
    \draw[-] (pi,6.7) -- (pi,1) node[below] {$\mathrm{X}$};
    \draw[-] (2*pi,6.7) -- (2*pi,1) node[below] {$\mathrm{M}$};
    \draw[-] (3*pi,6.7) -- (3*pi,1) node[below] {$\Gamma$};
    \foreach \i in {1,...,6}{
    \node at (-.3,\i) {$\mathllap{\i}$};
    \draw[-] (-.15,\i) -- (0,\i);
    }
    \draw[domain=0:pi] plot function{((2)+(-1))/2+.5*sqrt(((2)-(-1))*((2)-(-1))+16*1.5*((sin(x/2))*(sin(x/2))))};
    \draw[domain=pi:2*pi] plot function{((2)+(-1))/2+.5*sqrt(((2)-(-1))*((2)-(-1))+16*1.5*((sin(pi/2))*(sin(pi/2))+((sin((x-pi)/2))*(sin((x-pi)/2)))))};
    \draw[domain=2*pi:3*pi] plot[id=sin] function{((2)+(-1))/2+.5*sqrt(((2)-(-1))*((2)-(-1))+16*1.5*((sin(pi/2))*(sin(pi/2))+((sin((x-pi)/2))*(sin((x-pi)/2)))-((sin((x)/2))*(sin((x)/2)))))};
\end{tikzpicture}
\end{document}

Antwort1

Wie Jake betonte, gnuplotverwendet es eine Ganzzahldivision, wodurch der Ausdruck ((2)+(1))/2ungleich ist ((2.)+(1.))/2., wobei zwischen den beiden Ausdrücken eine Differenz von besteht 0.5.

verwandte Informationen