[Gnuplot] Représenter une aire sous la courbe

Tout ce qui concerne les différents logiciels mathématiques (Matlab, Maxima, Scilab, R, Maple, Mathematica, ...) et les calculatrices scientifiques.
Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.
> Préciser le nom du logiciel concerné dans le titre de votre message.

[Gnuplot] Représenter une aire sous la courbe

Messagepar ladgalen » Jeudi 09 Décembre 2010, 10:30

Bonjour

Je connais l'option filledcurves sous gnuplot qui permet (littéralement) de remplir l'espace sous une courbe.

Code: Tout sélectionner
plot x**2 with filledcurves


Mon problème c'est que si, par exemple, je calcule l'intégrale entre 0 et 1, je voudrais ne remplir l'espace sous la courbe qu'entre x=0 et x=1. Est ce que quelqu'un sait faire ?

Merci
ladgalen
Déca-utilisateur
 
Messages: 47
Inscription: Mercredi 19 Août 2009, 15:34
Localisation: Pau
Statut actuel: Actif et salarié | Maître de conférence

Publicité

Re: [Gnuplot] Représenter une aire sous la courbe

Messagepar François D. » Jeudi 09 Décembre 2010, 13:04

Essaye :
Code: Tout sélectionner
plot x**2
plot [0:1] x**2 with filledcurves
François D.
Téra-utilisateur
 
Messages: 1370
Inscription: Dimanche 30 Juillet 2006, 09:04
Localisation: Alsace
Statut actuel: Actif et salarié | Enseignant

Re: [Gnuplot] Représenter une aire sous la courbe

Messagepar ladgalen » Jeudi 09 Décembre 2010, 15:09

Non cela ne fonctionne pas mais j'ai trouvé une solution :) !

En fait tu ne peux pas définir un xrange différent dans la commande set xrange et dans la commande plot. De plus dans plot tu ne peux pas définir deux xrange différents. Donc en faisant ce que tu proposes tu remplis tout l'espace sous la courbe sur toute la gamme de xrange et non uniquement sur le domaine d'intégration.

La solution que j'ai trouvée consiste à définir une fonction par morceaux. On la définit nulle partout sauf sur l'intervalle d'intégration :

fill.png
fill.png (5.53 Kio) Vu 2445 fois


Et voilà le code gnuplot :

Code: Tout sélectionner
# terminal
set terminal png linewidth 2
set output 'fill.png'

# plot parameters
set grid
set xrange[0:6]
set style fill transparent solid 0.6 noborder
set sample 1000
set xlabel 'r   /   A'
set key on center top

# function parameters
a=0.529

# functions
F1(x) = 4/a**3 * x**2 * exp(-2*x/a)
pF1(x)= (x < 0.9*a) ? 0. : ( x > 1.1*a ) ? 0. : F1(x)
p2F1(x)= (x < 2*a) ? 0. : F1(x)

# plot
plot  pF1(x) title 'integrale 2' with filledcurves linetype 2, \
      p2F1(x) title 'integrale 1' with filledcurves linetype 3, \
      F1(x) title 'F1(x)' linetype 1
ladgalen
Déca-utilisateur
 
Messages: 47
Inscription: Mercredi 19 Août 2009, 15:34
Localisation: Pau
Statut actuel: Actif et salarié | Maître de conférence


Retourner vers Logiciels mathématiques

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité