sinequanon fonctionne très bien avec wine.
Je ne ne connais pas de logiciel aussi simple sous linux. Peut être en java.
Le gros reproche que je fais à gnuplot (maxima, R etc...) c'est de ne pas pouvoir fixer l'unité en cm.
Par exemple 2cm pour 1 unité sur l'axe des abscisses.
Je n'ai trouvé que latex et pstricks pour mes courbes. La qualité est irréprochable mais l'investissement important.
Pour obtenir la courbe représentative d'une fonction passant par des points de coordonnées données c'est très simple avec \pscurve.
\pscurve[linecolor=red,linewidth=0.2mm,plotpoints=1000]{-}(-4,-0.5)(-3,0)(0,1)
J'en profite pour mettre une macro qui me serre justement pour obtenir la courbe représentative d'une fonction passant par des points de coordonnées données mais en rajoutant la tangente en ces points
ce n'est pas de moi
- Code: Tout sélectionner
%% macro trace tangente
\def\traceTangente(#1,#2,#3,#4){%
\ifthenelse{\lengthtest{#4pt>0pt}}{\FPeval\DemiTangenteV{(#3)*(#4)}
\FPeval\TangentXa{(#1)-(#4)}
\FPeval\TangentXb{(#1)+(#4)}
\FPeval\TangentYa{(#2)-(\DemiTangenteV)}
\FPround\TangentYa\TangentYa{3}
\FPeval\TangentYb{(#2)+(\DemiTangenteV)}
\FPround\TangentYb\TangentYb{3}
\psline{<->}(\TangentXa,\TangentYa)(\TangentXb,\TangentYb)}{}}
\makeatletter
%% macro interpolation
\def\Interpolation(#1,#2,#3)(#4,#5,#6){%
\edef\PolyInterp{(x+(-1)*(#4))^2*((1+(-2)*(x+(-1)*(#1))*(#1+(-1)*(#4))/((#1+(-1)*(#4))^2))*#2+(x+(-1)*(#1))*#3)/((#1+(-1)*(#4))^2)+(x+(-1)*(#1))^2*((1+(-2)*(x+(-1)*(#4))*(#4+(-1)*(#1))/((#1+(-1)*(#4))^2))*#5+(x+(-1)*(#4))*#6)/((#1+(-1)*(#4))^2)}%
\psplot[algebraic=true]{#1}{#4}{\PolyInterp}}
%% la macro principale
\def\HermiteDDL(#1,#2,#3,#4){\def\Hermite@xa{#1}\def\Hermite@ya{#2}\def
\Hermite@za{#3}
\psdot(#1,#2)
\traceTangente(#1,#2,#3,#4)\Hermite@next}
\def\Hermite@next{\@ifnextchar ({\Hermite@job}{\Hermite@end}}
\def\Hermite@job(#1,#2,#3,#4){%
\psdot(#1,#2)
\Interpolation(\Hermite@xa,\Hermite@ya,\Hermite@za)(#1,#2,#3)
\def\Hermite@xa{#1}\def\Hermite@ya{#2}\def\Hermite@za{#3}
\traceTangente(#1,#2,#3,#4)\Hermite@next}
\def\Hermite@end{}
\makeatother
et pour créer le graphique
\psset{xunit=1.5cm , yunit=1.5cm}
\begin{pspicture*}[shift=-4cm](-4.5,-3.2)(3.5,2.2)
\def\pshlabel#1{\psframebox*[framesep=1pt]{\footnotesize #1}}
\def\psvlabel#1{\psframebox*[framesep=1pt]{\footnotesize #1}}
\psgrid[gridlabels=0pt,gridwidth=.3pt, gridcolor=gray, subgridwidth=.3pt, subgridcolor=gray, subgriddiv=2](0,0)(-4,-3)(3,2)
\psaxes[labels=all,labelsep=0pt,Dx=1,Dy=1]{->}(0,0)(-4,-3)(3,2)
\psline[]{->}(-4,-0.5)(-2.5,0)
\HermiteDDL(-4,-0.5,0.3333,0)(-3,0,1,0)(-2,1,0,.5)(-1.5,0,-2,0)(-0.5,-1.5,0,0.5)(0,-1,1,0)(0.5,-0.5,0,0.5)(2,-1.5,-2,0.5)(2.5,-3,-5,0)
\uput[dr](-4,-0.5){$A$}\uput[ur](2,-1.5){$B$}
\end{pspicture*}