ce sujet poursuit le sujet tikz et exponentielle.
je cherche à tracer une fonction contenant des exponentielles sous
tikz, mais il y a débordement de mémoire (dimension too large).
- Le passage par gnuplot (plot function) me fournit une solution, mais
j'aimerais ne pas faire appel à un programme extérieur, et éviter
d'avoir à faire le ménage dans tous les fichiers auxiliaires créés ;
- J'ai découvert le package pgfplots, qui, grâce au moteur de calcul
fpu, me fournit une solution ne faisant pas appel à un programme
extérieur. Cependant je perds un des avantages de tikz : comme il
s'agit de faire le tracé en ayant la liberté de changer certains
paramètres de la fonction, j'utilise sous tikz une commande de la
forme (je simplifie l'exemple, car dans la fonction qui m'intéresse,
\n1 et \n2 apparaissent plusieurs fois) :
\draw let \n1=1.0, \n2=0.5 in plot[domain=1:2](\x,{\n1*\x+\n2});
qui me permet de changer simplement les paramètres de la fonction. Je
n'ai pas réussi à trouver l'équivalent dans pgfplots (mais peut être
ai-je mal lu la doc?) : connaissez-vous un moyen de passer des
arguments à pgfplots ?
- La version CVS de PGF inclus fpu, mais je n'arrive pas à l'utiliser
avec plot : le code suivant produit une erreur "illegal unit of
measure (pt inserted)", qui disparaît si la ligne \pgfkeys(/pgf/
fpu=true) est mise en commentaire, ce qui désactive l'appel de fpu,
d'où une seconde question : connaissez-vous un moyen d'utiliser fpu
avec plot sous tikz?
\documentclass[11pt]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{fpu}
\begin{document}
\begin{tikzpicture}
\pgfkeys{/pgf/fpu=true}
\draw plot[domain=0:1] (\x,\x);
\end{tikzpicture}
\end{document}
- À propos : la version CVS de PGF résoud les problèmes de caractères
actifs avec [francais]babel comme : utilisé dans l'option
"[domain=0:1]", ce qui rend inutile l'utilisation de \shorthandoff
{:} ; ceci m'entraîne vers une question futile : dans le package
ppchtex la gestion des caractères actifs se fait via la commande
\unprotect, qui semble avoir le même effet que \shorthandoff (il est
possible de les échanger, de même qu'il semble possible d'échanger
\protect et \shorthandon) : est-ce le cas, où existe-t-il des
différences entre ces commandes
Merci pour votre aide
Jean-Philippe Caniparoli
Bonjour
Il semble que que /pgf/fpu/output format= .... soit nécessaire
\documentclass{article}
\usepackage{tikz}
\usepgflibrary{fpu}
\begin{document}
\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}
\pgfmathparse{1+1}\pgfmathresult
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot (\x,\x) node[right] {$f(x) =x$};
\draw[color=blue] plot (\x,{sin(\x r)}) node[right] {$f(x) = \sin x$};
\draw[color=orange] plot (\x,{0.05*exp(\x)}) node[right] {$f(x) =
\frac{1}{20} \mathrm e^x$};
\end{tikzpicture}
\begin{tikzpicture}
\draw plot[domain=0:1] (\x,\x);
\end{tikzpicture}
\end{document}
Alain Matthes
effectivement cela va bien mieux ainsi. Merci beaucoup ! voici le code
(sans fioriture) ;
\documentclass[11pt]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{fpu}
\begin{document}
\begin{tikzpicture}[xscale=5]
\pgfkeys{/pgf/fpu=true,/pgf/fpu/output format=fixed}
\draw[->](0,0)--(1.5,0);
\draw[->](0,-3)--(0,3);
\draw let \n1={0.001}, \n2={0.5}
in plot[samples=50,domain = 0:1] (\x,{\n1*(exp(39*(\x-\n2))-exp(-39*
(\x-\n2)))/(1+\n1*(exp(39*(\x-\n2))/2)-\n1*exp(-39*(\x-\n2))/-3)});
\end{tikzpicture}
\end{document}
Je reste également intéressé par la possibilité de faire passer des
constantes à pgfplots.
Jean-Philippe Caniparoli
>
>
>
> Je reste également intéressé par la possibilité de faire passer des
> constantes ą pgfplots.
>
> Jean-Philippe Caniparoli
Pour pgfplots, je ne connais pas car j'utilise mes propres packages.
Il existe maintenant un forum consacré exclusivement ą pgfplot
voir sur sourceforge
Alain Matthes
--
\begin{provoc}
Le pied, c'est du PDF avec TIKZ sur OSX et en UTF8
\end{provoc}
> Je reste également intéressé par la possibilité de faire passer des
> constantes à pgfplots.
Je fais la chose suivante
\begin{tikzpicture}
\begin{axis}
\def\valn{1.0}%
\def\valm{(\valn/2)}%
\addplot plot function {x*\valm+\valn};
\end{axis}
\end{tikzpicture}
Ne pas oublier les parenthèses quand on fait des expressions. Je ne sais
pas si pgf est sensible aux spurious blanks mais c'est une bonne habitude
de mettre un % à la fin d'un \def hors préambule. Les définitions sont
locales : elles ne sortent pas du groupe, ce qui peut être gênant pour la
légende par exemple.
--
Christophe
--
Christophe