Quand je calcule quelque chose, je deviens parfois les résultats intermédiaires trop gros pour le système pgf. On peut utiliser la bibliothèque fpu. Jai lu à ce sujet dans le TikZ & PGF manuel (voir page 627), ici et ici mais jobtiens toujours cette erreur:

Paragraph ended before `\pgfflt@readlowlevelfloat` was complete. 

Quest-ce qui ne va pas?

Voici mon code:

\documentclass{scrartcl} \usepackage{tikz} \usetikzlibrary{fpu} \begin{document} %data values: \def\RTable{{100,100.391,100.781,101.172,101.562,101.953,102.343,102.733,103.123,103.513,103.903,104.292,104.682,105.071,105.46,105.849,106.238,106.627,107.016,107.405,107.794,108.182,108.57,108.959,109.347,109.735,110.123,110.51,110.898,111.286,111.673,112.06,112.447,112.835,113.221,113.608,113.995,114.382,114.768,115.155,115.541,115.927,116.313,116.699,117.085,117.47,117.856,118.241,118.627,119.012,119.397,119.782,120.167,120.552,120.936,121.321,121.705,122.09,122.474,122.858,123.242,123.626,124.009,124.393,124.777,125.16,125.543,125.926,126.309,126.692,127.075,127.458,127.84,128.223,128.605,128.987,129.37,129.752,130.133,130.515,130.897}} %prints the result to the console: \pgfkeys{/pgf/fpu} \foreach \i in {0, ..., 80} { \pgfmathparse{abs(\RTable[\i] - 100 - 3.0897 / 8 * \i)}\i, \pgfmathresult\\ } \pgfkeys{/pgf/fpu=false} \end{document} 

Mise à jour :

Jutilise une macro de ici (grâce à Le chat de Schrödinger ). Consultez mon MWE:

\documentclass{scrartcl} \usepackage{tikz} \usetikzlibrary{fpu} \newcommand\pgfmathparseFPU[1]{ \begingroup \pgfkeys{ /pgf/fpu, /pgf/fpu/output format = fixed } \pgfmathparse{#1} \pgfmathsmuggle \pgfmathresult \endgroup} \begin{document} %data values: \def\UABmValues{{14.9, 15.8, 17.7, 18.3, 19, 20, 21.1, 22.2, 24.3, 26.9, 30.1}} %prints the result to the console: \foreach[count = \i from 0] \k in {30, 35, ..., 80} { \pgfmathparseFPU{-25500 / (\UABmValues[\i] / 1000 - 255 / 52) - 5200 - 3.0897 / 8 * \k}\i, \pgfmathresult\\ } \end{document} 

et obtenez toujours une erreur

Paragraph ended before `\pgfflt@readlowlevelfloat` was complete. 

. Quest-ce que je me trompe?

Merci pour votre aide et vos efforts à lavance!

Commentaires

  • I ‘ Je ne suis pas sûr que cela puisse être corrigé, car pgfmath convertit constamment entre le texte, les registres dimen et les registres fpu (cest pourquoi je le considère comme un ours dansant).
  • Bonjour à tous! Aucun des professionnels na proposé de solution?
  • Notez que \pgfkeys{pgf/fpu=false} ne fera pas ce quil dit sur létain à moins que cela nait été récemment corrigé.
  • Je pense que vous devriez poser une nouvelle question à ce sujet puisque vous avez déjà une bonne réponse. \foreach[count = \i from 0] \k in {30, 35, ..., 80} { \pgfmathsetmacro{\myval}{\UABmValues[\i]} \pgfmathparseFPU{-25500/(\myval/1000-255/52)-5200-3.0897/8*\k}\i, \pgfmathresult\\ } fonctionne. Pour linstant, fpu ne prend pas en charge deux ou trois choses, y compris la manipulation dentiers et ce type dextraction de liste. Vous devez donc extraire lentrée sans fpu.
  • @ Su-47 Je pense que la réponse dAlain Matthes est bonne. Veuillez noter quaucun des systèmes ne peut vraiment rivaliser avec un système dalgèbre informatique. Une version radicalement nouvelle de TeX exigerait vraiment de lever les limitations internes, mais AFAIK il ny a pas de plan pour mettre en place un nouveau TeX. Veuillez également noter quà mon humble avis, il est préférable dattendre en utilisant expl3 jusquà ce quil soit dans un état où vous pouvez être sûr que ce que vous avez écrit fonctionnera toujours dans un an. Puisque vous semblez utiliser MatLab, vous pouvez toujours produire les données avec cet outil, puis les tracer avec pgfplots ou datavisualization.

Réponse

Cela ressemble à un travail pour le FPU LaTeX3:

\documentclass{article} \usepackage{expl3} \ExplSyntaxOn \cs_new_eq:NN \fpeval \fp_eval:n \cs_new_eq:NN \clistitem \clist_item:Nn \cs_new_eq:NN \foreachint \int_step_inline:nnnn \ExplSyntaxOff \begin{document} %data values: \def\RTable{100,100.391,100.781,101.172,101.562,101.953,102.343,102.733,103.123,103.513,103.903,104.292,104.682,105.071,105.46,105.849,106.238,106.627,107.016,107.405,107.794,108.182,108.57,108.959,109.347,109.735,110.123,110.51,110.898,111.286,111.673,112.06,112.447,112.835,113.221,113.608,113.995,114.382,114.768,115.155,115.541,115.927,116.313,116.699,117.085,117.47,117.856,118.241,118.627,119.012,119.397,119.782,120.167,120.552,120.936,121.321,121.705,122.09,122.474,122.858,123.242,123.626,124.009,124.393,124.777,125.16,125.543,125.926,126.309,126.692,127.075,127.458,127.84,128.223,128.605,128.987,129.37,129.752,130.133,130.515,130.897} %prints the result to the console: \foreachint{1}{1}{81}{% #1, \fpeval{abs(\clistitem\RTable{#1} - 100 - 3.0897 / 8 * (#1 - 1))}\\ } \end{document} 

(La convention dans expl3 consiste à indexer à partir de 1 car cela correspond au cas dutilisation le plus courant: la composition. Jai donc indexé la liste à partir de un mais corrigé pour indexer à partir de zéro pour léquation elle-même.)

Commentaires

  • Bonjour @Joseph Wright! Merci pour votre réponse Je lai testé. 1. Bien sûr, cela fonctionne, mais la variable dindex doit commencer par zéro (pour mon objectif spécial). 2. Les résultats de votre réponse sont différents. Les résultats corrects devraient ressembler à une parabole descendante, voir ici . Les résultats de votre réponse ressemblent à une parabole ouverte vers le haut. Peut-être que je fais quelque chose de mal. 3. Quoi quil en soit, je ne peux ‘ utiliser votre réponse à ma question (voir le lien ci-dessus). Que dites-vous?
  • @ Su-47 Je ne ‘ Je ne sais pas ce que vous voulez dire à propos de ‘ le lien ci-dessus ‘
  • Le lien au point 2 probablement ( tex.stackexchange.com/questions/348739/ … ).
  • Bonjour @Joseph Wright et @Torbj ø rn T.! Désolé pour la longue absence. Merci pour vos commentaires. Torbj ø rn T. a raison Je voulais dire ce lien . Maintenant, le résultat est juste. Mais comme je lai dit dans mon dernier commentaire, je ne peux ‘ t utiliser la réponse ci-dessus pour résoudre ma autre question (voir le lien ci-dessus). Si je comprends bien actuellement, il ny a aucun moyen dutiliser des tableaux et fpu ensemble dans TikZ? Existe-t-il une autre solution, peut-être une autre structure de données sous forme de tableaux?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *