Chargement des fichiers du répertoire lorenz
[pst-eqdf.git] / lorenz / pst-eqdf.tex
diff --git a/lorenz/pst-eqdf.tex b/lorenz/pst-eqdf.tex
new file mode 100644 (file)
index 0000000..f298a2b
--- /dev/null
@@ -0,0 +1,143 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%% pst-eqdf.tex --- plotting of differential equations\r
+%% Copyright 2004 Dominique RODRIGUEZ\r
+%%\r
+%% Author          : Dominique RODRIGUEZ (EN) <dominique.rodriguez@waika9.com>\r
+%% Created the     : ven avr  2 22:02:01 CEST 2004\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%% HISTORY\r
+%%\r
+%% 2004-04-04 : creation of the file from a first LaTeX protype sty file\r
+%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\def\fileversion{pre-1.0}\r
+\def\filedate{2004/03/21}%\r
+%% This program can be redistributed and/or modified under the terms\r
+%% of the LaTeX Project Public License Distributed from CTAN\r
+%% archives in directory macros/latex/base/lppl.txt.\r
+%% adapation de M.Luque juin 2012 pour\r
+%% sauvegarde de tableaux de valeurs\r
+\message{`PST-Equadiff v\fileversion, \filedate\space (Dominique RODRIGUEZ)}%\r
+\csname PSTEquadiffLoaded\endcsname\r
+\let\PSTEquadiffLoaded\endinput\r
+% Require PSTricks and pst-node packages\r
+\ifx\PSTplotLoaded\endinput\else\input pst-plot.tex\fi\r
+%% prologue for postcript\r
+%%\pstheader{pst-eucl.pro}%\r
+% DPC interface to the `keyval' package (until keyval based version of PSTricks)\r
+%\input pst-key.tex\r
+\edef\PstAtCode{\the\catcode`\@}%\r
+\catcode`\@=11\relax\r
+% Definition of the parameters\r
+% ----------------------------\r
+\pst@addfams{pst-eqd}\r
+\define@key[psset]{pst-eqd}{method}{\edef\psk@method{#1}}%\r
+\define@key[psset]{pst-eqd}{whichabs}{\edef\psk@whichabs{#1}}%\r
+\define@key[psset]{pst-eqd}{whichord}{\edef\psk@whichord{#1}}%\r
+\define@key[psset]{pst-eqd}{plotfuncx}{\edef\psk@plotfuncx{#1}}%\r
+\define@key[psset]{pst-eqd}{plotfuncy}{\edef\psk@plotfuncy{#1}}%\r
+\define@key[psset]{pst-eqd}{tabname}{\edef\psk@tabname{#1}}%\r
+\define@key[psset]{pst-eqd}{filename}{\edef\psk@filename{#1}}%\r
+\newif\ifPst@buildvector%\r
+\define@key[psset]{pst-eqd}{buildvector}[true]{\@nameuse{Pst@buildvector#1}}%\r
+\newif\ifPst@saveData%\r
+\define@key[psset]{pst-eqd}{saveData}[true]{\@nameuse{Pst@saveData#1}}%\r
+\psset{method=default, whichabs=default, whichord=default, filename=datas.dat,\r
+  plotfuncx=default, plotfuncy=default, buildvector=false,tabname=tabValues,saveData=false}\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\SpecialCoor%% for using polar coordinates, node position, ...\r
+\psset{dimen=middle}% remark of ML\r
+\def\@undef{undef}%\r
+\def\@default{default}%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%% #1-#2 x range\r
+%% #3 initial value of y (which is a vector)\r
+%% #4 value of the dérivative (y and t can be used)\r
+\def\psequadiff{\def\pst@par{}\pst@object{psequadiff}}\r
+\def\psequadiff@i#1#2#3#4{%\r
+  \pst@killglue\r
+  \begingroup\r
+    \use@par\r
+%    \@nameuse{beginplot@\psplotstyle}%\r
+  \addto@pscode{%\r
+    /x #1 def\r
+    /x1 #2 def\r
+    /y [ #3 ] def\r
+    /ylength y length def\r
+    /addvect\r
+     { /len exch def 1 1 len\r
+       { /i exch def len i sub 2 add -1 roll add len 2 mul i sub 1 roll } for } def\r
+    /dx x1 x sub \psk@plotpoints div def\r
+    /mulvect { exch 1 index { dup 4 -1 roll mul 2 index 2 add 1 roll } repeat pop pop } def\r
+    /divvect { exch 1 index { dup 4 -1 roll exch div 2 index 2 add 1 roll } repeat pop pop } def\r
+    /k0 0 def /k1 0 def /k2 0 def /k3 0 def\r
+  \ifPst@algebraic /F@pstplot (#4) AlgParser cvx def \fi\r
+   /Func {\r
+      \ifPst@algebraic F@pstplot ylength array astore\r
+      \else\r
+        \ifPst@buildvector\else y aload pop \fi #4\r
+        \ifPst@buildvector\else ylength array astore \fi\r
+      \fi\r
+    } def\r
+    /xy {\r
+  \ifx\psk@method\@default%\r
+      \ifx\psk@plotfuncx\@default\r
+        \ifx\psk@whichabs\@default x \else y \psk@whichabs\space get \fi%\r
+      \else\psk@plotfuncx\space\fi%\r
+      \pst@number\psxunit mul\r
+      y /y Func { dx mul } forall y aload pop ylength addvect ylength array astore def\r
+      \ifx\psk@plotfuncy\@default\r
+        \ifx\psk@whichord\@default 0 \else\psk@whichord\space\fi get %\r
+      \else\psk@plotfuncy\space\fi\r
+  \else%\r
+      \ifx\psk@plotfuncx\@default\r
+        \ifx\psk@whichabs\@default x \else y \psk@whichabs\space get \fi%\r
+      \else\psk@plotfuncx\space\space\fi%\r
+      y /k0 Func { dx mul } forall ylength array astore def %% y\r
+      dup aload pop k0 { 2 div } forall ylength addvect ylength array astore /y exch def %\r
+      x dup dx 2 div add /x exch def %% y x\r
+      /k1 Func { dx mul } forall ylength array astore def %% y x\r
+      exch dup aload pop k1 { 2 div } forall ylength addvect y astore pop %% x y\r
+      /k2 Func { dx mul } forall ylength array astore def %% x y\r
+      dup aload pop k2 aload pop ylength addvect y astore pop exch dup dx add /x exch def %% y x\r
+      /k3 Func { dx mul } forall ylength array astore def %% y x\r
+      /x exch def %% y\r
+      dup aload pop k0 aload pop k1 aload pop k2 aload pop ylength addvect\r
+      2 ylength mulvect ylength addvect k3 aload pop ylength addvect\r
+      6 ylength divvect ylength addvect y astore pop\r
+      \ifx\psk@plotfuncy\@default\r
+        \ifx\psk@whichord\@default 0 \else\psk@whichord\space\fi get %\r
+      \else\psk@plotfuncy\space\fi\r
+  \fi\r
+    } def}%\r
+\addto@pscode{%\r
+/\psk@tabname [\r
+  \psk@plotpoints {\r
+        xy\r
+        /x x dx add\r
+         def\r
+     } repeat\r
+      /x x1 def\r
+      xy\r
+    ] def\r
+\ifPst@saveData\r
+/fichierpoints (\psk@filename) (w) file def\r
+0 2 \psk@tabname\space length 2 sub  {/i exch def\r
+    /xi \psk@tabname\space i get def\r
+    /yi \psk@tabname\space i 1 add get def\r
+      fichierpoints xi 15 string cvs writestring\r
+      fichierpoints 32 write %% espace\r
+      fichierpoints yi 15 string cvs writestring\r
+      fichierpoints 32 write %% espace\r
+      fichierpoints 10 write %% CR\r
+} for\r
+fichierpoints closefile\r
+\fi\r
+    }%\r
+%\psdot[linecolor=white,dotsize=0.001](0,0)\r
+  \endgroup\r
+  \ignorespaces}\r
+%%% Local Variables:\r
+%%% mode: latex\r
+%%% TeX-master: t\r
+%%% End:\r

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.