Tracer des graphiques avec la librairie pgplot.h - exemple du pendule

0/5 (7 avis)

Snippet vu 7 625 fois - Téléchargée 35 fois

Contenu du snippet

La librairie PGPLOT.h permet de tracer tout simplement des graphiques.
Pour illustrer une des utilisations de pgplot, c'est décider de reprendre mon programme
de résolution d'equation differentielle par la methode d'euler et d'y rajouter
la fonction pour tracer directement les graphiques.

Vous pouvez télécharger la librairie PGPLOT.H à l'adresse suivante:
http://www.astro.caltech.edu/~tjp/pgplot/

Source / Exemple :


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include "cpgplot.h"

#define g 9.81

int main()
{
    float tau,w,l;
    int nit,i;

    float tabt[1000],tabx[1000],taby[1000];
    int npoints;
    FILE *fichier;

    float x;
    float y;
    float xmin =0., xmax=10.0, ymin =-0.3,ymax=0.3;

    x=0.25; /* conition initiale sur x */

    y=0; /* Conditions initiale */
    i=0;
    nit=1000; /* nombre d'itérations */

    tau=0.01; /* pas d'intégration */

    l=0.2; /* longueur du fil */

    w=sqrt(g/l); /* Omega0 */

    fichier=fopen("resultat.txt","w");
    for(i=1;i<=nit;i++)
    {
        x=x+tau*y;
        y=y+tau*((-w*w)*sin(x));
        fprintf(fichier,"%f %lf %lf\n",i*tau,x,y);
    }
    fclose(fichier);
    fichier=fopen("resultat.txt","r");
    /* On stocke chaque colonne du fichier dans une variable
    de type tableau */
    for (i = 1; i<= nit; i++)

        {
        fscanf (fichier, "%f %f %f \n" ,&tabt[i],&tabx[i],&taby[i]);
        }
    fclose(fichier);

     if (cpgopen("?") < 1) /* ouverture de pgplot */
     return 1;

     npoints=1000;
     cpgenv(xmin,xmax,ymin,ymax,0,0); /* definition des axes */
     cpglab("t", "x", "PGPLOT Graph: Evolution du pendule"); /* titre */
     cpgsci(2); /* couleur du traçage "rouge" */
     cpgline(npoints,tabt,tabx); /* on trace */

     cpgenv(-0.3,0.3,-2.0,2.0,0,0);
     cpglab("x", "y", "PGPLOT Graph: Espace des Phases");
     cpgsci(2);
     cpgline(npoints,tabx,taby);
     cpgclos();

    return 0;
}

A voir également

Ajouter un commentaire Commentaires
ericelouan
Messages postés
2
Date d'inscription
mercredi 30 novembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

22 déc. 2011 à 21:39
tu peux faire des traces avec graphics.h car cgplot la n'es pas facile a trouver
kmtrapah
Messages postés
4
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
21 octobre 2008

21 oct. 2008 à 16:22
esk vous pouvez me donnez un code source ki affiche une pendule elastique et interactive et aussi le code source du machine d'atwood interactif peut importe le langage mais avec code souce( de preference s'il es en Flash cs3)merci d'avance a toussssssssssssssss
yassine1nl
Messages postés
3
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
8 juillet 2006

8 juil. 2006 à 14:10
j attend votre reponse
yassine1nl
Messages postés
3
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
8 juillet 2006

8 juil. 2006 à 14:09
slt,
ché pa comment installer ta lib
Jarod1980
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
2
27 juin 2005 à 13:48
Salut,
Il faut télécharger le package en entier et l'intaller.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.