pgfplots ne représentera pas ma fonction

Sep 23 2020

Je voudrais tracer un graphique comme

Mais mon code ne fonctionne tout simplement pas

\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}

La fonction est donnée par

Quelqu'un peut-il m'aider avec cela, je pense que c'est un problème mineur avec le tracé de choses comme (1+ \ x) parce que cela ne fonctionne pas. Par conséquent, quelque chose comme (f (\ x) + g (\ x)) ^ 2 ne fonctionnera jamais. Y a-t-il une faute de frappe ou y a-t-il une meilleure façon de le faire?

Réponses

2 TorbjørnT. Sep 23 2020 at 17:05

Vous avez entré la mauvaise fonction ( +dans les deux termes, on aurait dû -), et vous n'auriez sqrt(x)pas dû sqrt{x}, d'ailleurs.

Quelque chose ne va pas aussi, mais je viens de réécrire à partir de zéro:

\addplot[blue,samples=80,domain=0:1,smooth] {0.25*(sqrt((1-x)*(1-sqrt(x))) + sqrt((1+x)*(1+sqrt(x))))^2};

Code complet, avec quelques modifications des limites des axes et des graduations:

\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}