Problème de taille en pgf

N'oubliez pas de consulter les sujets avant de poser votre question, merci.

Problème de taille en pgf

Messagepar Karine Brunel » 02 Nov 2010 19:49

Rebonjour

Voici le code sur lequel je travaille : je veux représenter la loi de Planck pour le corps noir dont je rappelle l'expression
$ \varphi_{\lambda}(\lambda,T)=\frac{2\pi hc^2}{\lambda^5}\frac{1}{\exp\left( \frac{hc}{\lambda k_B T} \right) - 1} $
L'application numérique correspond à des nombres grands (qq $ 10^{14} $), d'où la valeur du ymax de mon code ci-dessous.
Code: Tout sélectionner
[xmax:=3*10^(-6),ymax:=2.5*10^14,
view(0,xmax,0,ymax),size(15), Width:=6, Arrows:=1,
LabelSize:=normalsize,
axeY(0,0), axeX(0,0),
LabelAxe(x,xmax,"$\lambda$",[2]),
LabelAxe(y,ymax*i,"$\varphi_\lambda$",[1]),
h:=6.62*10^(-34),c:=3*10^8,kB:=1.38*10^(-23),
Width:=12,Arrows:=0,
tMin:=0, tMax:=xmax,
Color:=gold,
LineStyle:=solid,
T1:=6000,
Cartesienne((2*10^(-1)*pi*h*c^2)/x^5 * (1/(exp(h*c/(kB*T1*x))-1))),
Lm1:=(2898/T1)*10^(-6),
Pm1:=((2*pi*h*c^2)/(Lm1^5)) * (1/(exp(h*c/(kB*T1*Lm1))-1)),
LabelDot(Lm1+i*Pm1,"$T_1$","E",0),
Color:=crimson,
LineStyle:=solid,
T0:=5000,
Cartesienne((2*pi*h*c^2)/x^5 * (1/(exp(h*c/(kB*T0*x))-1))),
Lm0:=(2898/T0)*10^(-6),
Pm0:=((2*pi*h*c^2)/(Lm0^5)) * (1/(exp(h*c/(kB*T0*Lm0))-1)),
LabelDot(Lm0+i*Pm0,"$T_0$","E",0),
Color:=navy,
LineStyle:=solid,
T2:=7000,
Cartesienne((2*pi*h*c^2)/x^5 * (1/(exp(h*c/(kB*T2*x))-1))),
Lm2:=(2898/T2)*10^(-6),
Pm2:=((2*pi*h*c^2)/(Lm2^5)) * (1/(exp(h*c/(kB*T2*Lm2))-1)),
LabelDot(Lm2+i*Pm2,"$T_2$","E",0),
{Bricolage Loi de Wien}
LineStyle:=dashed, Color:=gainsboro,
T3:=4900,Lm3:=(2898/T3)*10^(-6),
Pm3:=((2*pi*h*c^2)/(Lm3^5)) * (1/(exp(h*c/(kB*T3*Lm3))-1)),
T4:=10000,Lm4:=(2898/T4)*10^(-6),
Pm4:=((2*pi*h*c^2)/(Lm4^5)) * (1/(exp(h*c/(kB*T4*Lm4))-1)),
Bezier(Lm2+i*Pm2,Lm1+i*Pm1,Lm0+i*Pm0),
Ligne([Lm4+i*Pm4,Lm2+i*Pm2],0),
Ligne([Lm0+i*Pm0,Lm3+i*Pm3],0),
 ]


Le problème est que lorsque j'exporte en pgf, Latex plante à la compilation (apparemment parce que les nombres à manipuler sont trop gros). Voici un extrait du .log associé
Code: Tout sélectionner
(./C_Thermo/Images_thermo/C2PlanckLambda.pgf
! Dimension too large.
<recently read> \pgf@xx
                       
l.3 \pgfsetxvec{\pgfxy(4500000,0)}
                                 
! Number too big.
\pgftemp@y ->2500000000
                       00000
l.9 \pgfxyline(0,0)(0,250000000000000)
                                     
! Number too big.
\pgftemp@y ->2500000000
                       00000
l.9 \pgfxyline(0,0)(0,250000000000000)
                                     
! Number too big.
\pgftemp@y ->6666666666
                       666.667
l.12 ...b,1:red,0;green,0;blue,0}\normalsize $0$}}
                                                  \pgfstroke
! Number too big.
\pgftemp@y ->6666666666
                       666.667
l.12 ...b,1:red,0;green,0;blue,0}\normalsize $0$}}
                                                  \pgfstroke
! Number too big.
<argument> 2666666666
                     666.6675
l.16 ...-2666666666666.6675)(0,2666666666666.6675)
                                                 
! Dimension too large.
<to be read again>
                   \relax
l.16 ...-2666666666666.6675)(0,2666666666666.6675)
                                                 
! Number too big.
\pgftemp@y ->2666666666
                       666.6675
l.16 ...-2666666666666.6675)(0,2666666666666.6675)
                                                 
! Number too big.
\pgftemp@y ->2666666666
                       666.6675
l.16 ...-2666666666666.6675)(0,2666666666666.6675)


Du coup, j'ai essayé de normaliser l'affichage en appliquant un facteur $ 10^{-14} $ sur la fonction cartésienne à tracer mais cela fait planter la fenêtre TeXgraph (Element graphique) lorsque que j'essaie de la valider. Bref, je ne vois pas trop comment m'en sortir!!

Par ailleurs, sur ce même travail, je voulais faire apparaître la loi de Wien, qui dit que l'abscisse $ \lambda_m $ correspondant au max des fonctions $ \varphi_{\lambda}(\lambda,T)=\frac{2\pi hc^2}{\lambda^5}\frac{1}{\exp\left( \frac{hc}{\lambda k_B T} \right) - 1} $, tracées pour différentes valeurs du paramètre T vérifie
$ \lambda_m\times T=2898*10^{-6} $
dans mon {Bricolage Loi de Wien} (cf code du fichier .teg)
J'essaie de faire passer une courbe par les qq points correspondant à ces maximum (calculés ici "à la main"). N'y a -t-il pas un moyen plus élégant de tracer cette branche d'hyperbole ? Ici, je suis bien consciente que c'est davantage un problème mathématique :oops: :oops:

D'avance merci pour vos réponses
Karine
Karine Brunel
 
Messages: 137
Inscription: 25 Sep 2009 21:28

Re: Problème de taille en pgf

Messagepar P.Fradin » 02 Nov 2010 19:55

Regarde dans le menu Paramètres, et coche l'option Changer de repère à l'exportation, et refait un export de ton graphique.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Problème de taille en pgf

Messagepar Karine Brunel » 02 Nov 2010 22:45

Effectivement, c'est bon maintenant!

Pourquoi, je ne pouvais pas redimensionner à la main (en appliquant le facteur 10^-14 sur le calcul) ?

Comment ce changement de repère est-il choisi ? Pas besoin de paramétrer ? C'est vraiment un logiciel intelligent! :)
Karine Brunel
 
Messages: 137
Inscription: 25 Sep 2009 21:28

Re: Problème de taille en pgf

Messagepar P.Fradin » 02 Nov 2010 23:07

Karine Brunel a écrit:Effectivement, c'est bon maintenant!

Pourquoi, je ne pouvais pas redimensionner à la main (en appliquant le facteur 10^-14 sur le calcul) ?


En fait ton code ne marche pas chez moi, il faut mettre: size(15,0) à la place de size(15), le deuxième paramètre égal à 0 permet de ne pas tenir compte des échelles courantes et de faire une image qui fait exactement 15x15 (mais non orthonormée). Cela ma permis de me rendre compte d'un bug dans une macro qui gradue les axes et qui tourne en boucle dans certains cas, tu es sans doute tombée sur un de ces cas avec ton changement d'échelle!

Comment ce changement de repère est-il choisi ? Pas besoin de paramétrer ? C'est vraiment un logiciel intelligent! :)


Je ne sais pas s'il est intelligent, mais le changement de repère est simple! Le nouveau repère est gradué en cm sur les deux axes et l'origine est en bas à gauche, cela donne des petits nombres comme TeX les aime!
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04


Revenir vers Questions - Réponses

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités

cron