
Ich möchte ein Diagramm zeichnen wie
Aber mein Code funktioniert einfach nicht
\begin{tikzpicture}
\begin{axis}[
width=18cm,
axis lines=middle,
xmin=0,xmax=1.02,
ymin=0.86,ymax=1.02,,
xlabel=\Large $c$,ylabel=\Large $F_g$,
xtick={0.2,0.4,0.6,0.8,1.0},
ytick={0.88,0.94,0.98,1},
]
\addplot[blue,samples=800,domain=0:1,smooth] {0.25*((sqrt{(1+(\x))*(1+ (sqrt{\x}))}) + (sqrt{((1+(\x))*(1+(sqrt{\x})))}))^2};
\end{axis}
\end{tikzpicture}
Die Funktion ist gegeben durch
Kann mir jemand dabei helfen? Ich glaube, es ist ein kleines Problem beim Plotten von Dingen wie (1+\x), weil diese nicht zu funktionieren scheinen. Daher wird etwas wie (f(\x) + g(\x))^2 nie funktionieren. Ist das ein Tippfehler oder gibt es eine bessere Möglichkeit, das zu tun?
Antwort1
Sie haben die falsche Funktion eingegeben ( +
in beiden Begriffen hätte es heißen müssen -
) und im Übrigen auch sqrt(x)
nicht .sqrt{x}
Auch sonst stimmt etwas nicht, aber ich habe es einfach von Grund auf neu geschrieben:
\addplot[blue,samples=80,domain=0:1,smooth] {0.25*(sqrt((1-x)*(1-sqrt(x))) + sqrt((1+x)*(1+sqrt(x))))^2};
Vollständiger Code mit einigen Änderungen der Achsengrenzen und Ticklabels:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=18cm,
axis lines=middle,
xmin=0,xmax=1.02,
ymin=0.98,ymax=1.01,
xlabel=\Large $c$,ylabel=\Large $F_g$,
xtick={0.2,0.4,0.6,0.8,1.0},
ytick={0.98,0.985,...,1.01},
yticklabel style={
/pgf/number format/fixed zerofill,
/pgf/number format/precision=3,
}
]
\addplot[blue,samples=80,domain=0:1,smooth] {0.25*(sqrt((1-x)*(1-sqrt(x))) + sqrt((1+x)*(1+sqrt(x))))^2};
\end{axis}
\end{tikzpicture}
\end{document}