2013-10-09 3 views
5

Gnuplot utilise uniquement des valeurs de racine carrée positive lorsque sqrt(x) est utilisé. Y a-t-il un moyen de tracer les deux valeurs positives et négatives dans la même fonction.Comment puis-je tracer ± sqrt (x) dans une fonction?

Je sais d'un hack qui doit utiliser f(x) = sqrt(x) et g(x) = -sqrt(x) et les tracer ensemble, puis ajuster les deux fonctions pour utiliser les mêmes couleurs de ligne, mais est-il un meilleur moyen?

Répondre

6

Vous pouvez tracer une courbe paramétrée:

set parametric 
set trange [-10:10] 
set samples 1000 
plot abs(t), (t > 0 ? 1: -1) * sqrt(abs(t)) 

pour y parvenir:

enter image description here

0

Mathématiquement, une fonction est un objet mathématique auquel, pour chaque x dans le domaine de la fonction, il existe une et une seule valeur f (x) correspondante. Gnuplot gère les "fonctions" mathématiques. Ce n'est donc pas un "hack" et ce n'est pas un "problème" avec gnuplot.

+2

Je n'ai jamais dit que c'était un "problème" ... – user80551

+0

Gnuplot gère les tracés en général, pas seulement les fonctions. Et en tout cas ton raisonnement est un peu obtus puisque pour ce cas particulier x est une fonction de y. Le fait d'être représenté avec les axes tournés par rapport à leur représentation standard n'en fait pas moins une fonction. – Miguel

+0

Ce n'est pas une question d'opinion ou d'être obtus c'est une définition. Donc oui, ce n'est pas une fonction si vous avez 2 "y" s pour un "x". Le tracé paramétrique est une fonction car il n'y a qu'un seul f (t) pour un t donné. https://en.wikipedia.org/wiki/Function_%28mathematics%29 – Sebastien

3

Si vous utilisez la représentation paramétrique (comme par la réponse de Christoph), vous pouvez également utiliser l'inverse fonction de sqrt(t), ce qui serait t**2, par exemple

set parametric 
set trange [-10:10] 
set samples 1000 
plot t**2,t 
Questions connexes