Gnuplot: Représentation graphique et définition de variables dans les coordonnées polaires

Je suis tout nouveau à Gnuplot et j’ai de la difficulté à comprendre comment représenter graphiquement les coordonnées Polar pour une mission scolaire. Ce qui me dérange, c’est que nous n’avons pas utilisé d’autres systèmes de coordonnées comme Polar ou Paramesortingc pour Gnuplot, et les tutoriels Internet que je trouve semblent avoir des connaissances de base et me dire de faire “set polar”.

Voici le problème que je tente de résoudre:

La densité d’électrons autour d’une molécule particulière centrée à l’origine est décrite par

n (r, thêta) = [cos (r)] ^ 2 * {1+ [cos (thêta)] ^ 2} * exp (-r ^ 2/25)

où r et thêta sont les coordonnées polaires habituelles [par exemple (x, y) = (r * cos (thêta), r * sin (thêta))].

Ecrivez un script gnuplot elec.gpl qui génère un tracé de surface de cette fonction sur un domaine de x = -5..5 et y = -5..5. Définissez votre script pour que

gnuplot> elec.gpl

génère le tracé sous la forme d’un fichier postscript appelé “elec.ps”

Comme je ne suis pas familier avec la représentation graphique de Gnuplot en coordonnées polaires, je suis perplexe. J’ai essayé plusieurs choses différentes, y compris les suivantes:

set terminal png enhanced set output 'elec.ps' set polar set angle degrees set title 'Electron Density Around Molecule' set xrange[-5:5] set yrange[-5:5] set grid set grid polar plot (cos(x))^2 *(1+(cos(y))^2)*exp(-x^2/25) quit 

J’ai essayé de changer x en r, y en t, y en thêta, etc. Je n’arrive tout simplement pas à comprendre comment Gnuplot veut que je définisse les entrées de coordonnées polaires. Existe-t-il un moyen de redéfinir x en tant que r * cos (thêta) et y en tant que r * sin (thêta) et de me laisser ensuite définir les entrées et les plages pour r et thêta?

Merci de votre aide! 🙂

Le mode polar vous permet de tracer une fonction en fonction d’un seul paramètre t , qui est utilisé comme angle, voir par exemple la démonstration polaire de gnuplot . Donc, vous pouvez tracer une «trajectoire» pour un rayon fixe.

Comme vous voulez visualiser une dissortingbution de densité, je pense que vous êtes mieux avec une carte de chaleur. Je suggère d’utiliser le mode paramesortingc , vous utilisez une variable factice comme rayon, l’autre comme angle thêta. Pour une meilleure lisibilité, je nomme les variables factices en conséquence (avec set dummy ... ), mais pour les plages, vous devez vous en tenir aux noms fictifs originaux u et v . Alors voici un exemple:

 reset set terminal pngcairo size 900,800 set output 'elec.png' set title 'Electron Density Around Molecule' set paramesortingc set dummy r, theta # instead of u,v set urange[0:1.5*pi] # r set vrange[0:2*pi] # theta set isosamples 200 set size ratio 1 set autoscale fix set pm3d map set palette defined (0 'white', 1 'red') splot r*cos(theta), r*sin(theta), \ cos(r)**2 + (1 + cos(theta)**2)*exp(-r**2/25) with pm3d t '' 

En mode paramesortingc , vous devez spécifier trois fonctions pour le splot fonction de la variable factice (ici r et theta ) qui sont activées par des virgules.

Le résultat est:

entrer la description de l'image ici

Maintenant, vous pouvez continuer et améliorer l’insortinggue en fonction de vos besoins.