Skipping data..

Discutez d'informatique ici !
chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

skipping data..

par chuchi » 23 Fév 2013, 18:31

bonjour,

j'ai une série de valeur de la sorte :

1,222 1,222
1,8 1,89
2,15889 2,14578

et lorsque je veux tracer ces point sous gnuplot, il me retourne

skipping data file with no valid points

x range is invalid

je sais pas d'où ça vient, merci de m'aiguiller .. (ps : je suis pas très connaisseur en c++ ..)



Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 25 Fév 2013, 09:41

Bonjour,

Je te conseille la notation 3.5 plutôt que 3,5 sous gnuplot.

Tu dois également set le datafile separator ","

gnuplot > set datafile separator "," # Tu peux mettre n'importe quoi ici

gnuplot > set datafile separator "\t"

gnuplot > set datafile separator "?"

ect..

Petite question ces valeurs se trouvent-elles dans un fichier ?

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 25 Fév 2013, 18:11

ampholyte a écrit:Bonjour,

Je te conseille la notation 3.5 plutôt que 3,5 sous gnuplot.

Tu dois également set le datafile separator ","

gnuplot > set datafile separator "," # Tu peux mettre n'importe quoi ici

gnuplot > set datafile separator "\t"

gnuplot > set datafile separator "?"

ect..

Petite question ces valeurs se trouvent-elles dans un fichier ?


non, c'est le résultat d'un calcul sous fichier .cpp,

dans mon .txt ya rien a part

#osci.txt
#
#afficher z afficher x


donc je sais pas si tes commandes seront utiles ??

merci

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 26 Fév 2013, 02:21

chuchi a écrit:non, c'est le résultat d'un calcul sous fichier .cpp,

dans mon .txt ya rien a part

#osci.txt
#
#afficher z afficher x


donc je sais pas si tes commandes seront utiles ??

merci




ou alors, ya t'il moyen de copier directement les valeurs calculés dans le fichier .txt ??

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 26 Fév 2013, 09:32

Cela risque d'être difficile de t'aider sans ton code. Est-ce que tu pourrais poster ton code source ici pour que l'on puisse voir ce qui ne va pas ?

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 28 Fév 2013, 16:45

ampholyte a écrit:Cela risque d'être difficile de t'aider sans ton code. Est-ce que tu pourrais poster ton code source ici pour que l'on puisse voir ce qui ne va pas ?


je m'excuse soucis de connection voici le code :


#include
#include
#include
using namespace std;

int main()

{

double x=1.0;
double z=0.0;
double t_max;
double t=0;
double h=0.1;
double omega0=10.;
double lambda=0.1;

cout>t_max;
cout>h;

fstream f;
f.open("osci.dat",ios::out);

while (t<t_max)
{
double k1, k2, k3, k4;
double l1, l2, l3, l4;

k1 = z;
l1 = -2*lambda*(z + (h/2)*l1) - omega0*omega0*x;

k2 = z + (h/2)*l1;
l2 = -2*lambda*(z + (h/2)*l1) - omega0*omega0*(x + (h/2)*k1);

k3 = z + (h/2)*l2;
l3 = -2*lambda*(z + (h/2)*l2) - omega0*omega0*(x + (h/2)*k2);

k4 = z + h*l3;
l4 = -2*lambda*(z + h*l3) - omega0*omega0*(x + h*k3);

x += (h/6)*(k1 + 2*k2 + 2*k3 + k4);
z += (h/6)*(l1 + 2*l2 + 2*l3 + l4);
t += h;
cout<< ""<<z<< " " <<x<< endl;

f.close();

}

return 0;

}



pour avoir un truc cohérent, faut prendre 10 et 0.1 ; on devoir observer un sinus décroissant au cours du temps

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 28 Fév 2013, 17:10

D'accord on s'était mal compris.

Je comprends parfaitement que tu génères ton fichier .dat (et non .txt) à partir de ton programme en C++.

Que fais-tu après ? Quels sont les commandes que tu utilises pour essayer de faire le plot ?

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 01 Mar 2013, 03:23

ampholyte a écrit:D'accord on s'était mal compris.

Je comprends parfaitement que tu génères ton fichier .dat (et non .txt) à partir de ton programme en C++.

Que fais-tu après ? Quels sont les commandes que tu utilises pour essayer de faire le plot ?


et bah je fais juste

plot "... .txt"

comment je fais à générer les valeurs dans le fichiers? je crois que c'est ça qu'il me faut non ? désolé je suis très mauvais en c++

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 01 Mar 2013, 09:19

Bonjour,

Ba en fait, ce que je ne comprends pas c'est comment fais-tu pour faire un plot "... .txt" alors que le fichier généré en C++ est un fichier .dat ?

Génères-tu un autre fichier .txt ?

Le code en C++ que tu as mis, est celui que tu utilises ?

Comme il y a pas mal de problème dans ton code, voici le mien qui rempli un fichier osci.txt

Code: Tout sélectionner
#include
#include
#include
using namespace std;

int main() {

    double x=1.0;
    double z=0.0;
    double t_max;
    double t=0;
    double h=0.1;
    double omega0=10.;
    double lambda=0.1;

    cout > t_max;
    cout > h;

    ofstream f("osci.txt");

    while (t<t_max) {
        double k1, k2, k3, k4;
        double l1, l2, l3, l4;

        k1 = z;
        l1 = -2*lambda*(z + (h/2)*l1) - omega0*omega0*x;

        k2 = z + (h/2)*l1;
        l2 = -2*lambda*(z + (h/2)*l1) - omega0*omega0*(x + (h/2)*k1);

        k3 = z + (h/2)*l2;
        l3 = -2*lambda*(z + (h/2)*l2) - omega0*omega0*(x + (h/2)*k2);

        k4 = z + h*l3;
        l4 = -2*lambda*(z + h*l3) - omega0*omega0*(x + h*k3);

        x += (h/6)*(k1 + 2*k2 + 2*k3 + k4);
        z += (h/6)*(l1 + 2*l2 + 2*l3 + l4);
        t += h;
       
        f << z << " " << x << endl;
    }

    return 0;
}


chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 01 Mar 2013, 12:54

oui oui , c'est le même à l'identique ... bah je suis le protocole du prof vu que je connais pas trop ..

ça me retourne toujours la même erreur , je comprend pas :cry:

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 01 Mar 2013, 13:03

bjr

Code: Tout sélectionner
if (f == NULL) {
        cout << "Impossible de creer osci.txt" << endl;
        return 1;
    }

c'est inutile. f sera jamais NULL.
plutot tester: f.good()
la vie est une fête :)

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 01 Mar 2013, 13:19

et même avec ton code, mon .txt se remplit pas

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 01 Mar 2013, 13:36

Merci pour la correction, étant plus habitué au C les habitudes sont fortes :D

As-tu bien regardé dans ton fichier .txt si il y avait les valeurs souhaitées ? As-tu essayé cette commande ?

plot 'nom_de_ton_fichier.txt' using 1:2

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 01 Mar 2013, 19:26

en faite c'est ça le soucis , mes valeurs ne sont pas copiés dans le .txt !

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 01 Mar 2013, 19:54

As-tu essayé avec mon code. Le tien ne peut pas copier les valeurs dans le .txt vu que tu rediriges le flux vers out et non vers le fichier

Remplace :
Code: Tout sélectionner
cout<< ""<<z<< " " <<x<< endl;


Code: Tout sélectionner
f << z << " " << x << endl;


Où utilise le code que je t'ai passé

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 02 Mar 2013, 00:08

oki alors là c'est bon mes valeurs sont biens dans le fichier .txt !! merci bcp

mais je pige pas pq gnuplot s'ouvre pas qd je tape plot "osci.txt" using 1:2 ...

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 02 Mar 2013, 14:18

Lorsque tu entres d'autres commandes ou un plot d'une fonction as-tu une fenetre qui s'ouvre ? Es-tu sur Linux/Windows/Mac ?

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 03 Mar 2013, 13:14

je suis sur linux , je jette un oeil cet après midi je te retiens au courant !!

chuchi
Membre Relatif
Messages: 121
Enregistré le: 30 Oct 2008, 17:30

par chuchi » 03 Mar 2013, 20:16

non même un plot bidon il l'affiche pas ..

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 04 Mar 2013, 09:03

Essaye de vérifier que le package gnuplot-x11 est installé, sinon installe le, c'est ce qui gère les interfaces graphiques sous gnuplot-linux.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

cron

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite