Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1576 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  comment faire des graphiques sous c++ avec gnu plot?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment faire des graphiques sous c++ avec gnu plot?

n°1695771
dilemne
Posté le 02-03-2008 à 13:50:50  profilanswer
 

J'ai tapé un code source avec dev c++ dans lequel 'essaie de créer un fichier utilisable par gnu plot, le problème c'est que ça compile bien mais qu'après quand je lance gnu plot il me dit que mon fichier n'existe pas
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <fstream>
 
using namespace std;
 
const int M=500; //nb of time steps of size dt
const int N=50000; //nb of stochastic realization
const int L=40; //nb of sampling poointsfor S
const double K=100; //The strike
const double left=0, right=130; // the barriers
const double sigmap=0.2, r=0.1; // vol., rate
const double pi2 =8*atan(1), dt=1./M, sdt =sqrt(dt), eps=1.e-50;
const double er=exp(-r);
 
double gauss();
double EDOstoch(const double x,int m);
double EDOstoch_barrier(const double x, int m, const double Smin, const double Smax);
double payoff(double s);
 
double gauss()
{
 return sqrt(eps - 2.*log(eps + rand()/(double) RAND_MAX))*cos(rand()*pi2/RAND_MAX);
 }
 
 double EDOstoch(const double x, int m)
 {
        double S= x;
        for (int i=0;i<m;i++)
        S +=S*(sigmap*gauss()*sdt+r*dt);// gives S(x, t=m*dt)
        return S;
        }
double EDOstoch_barrier(const double x, int m,const double Smin, const double Smax)
{
       if ((x<=Smin)||(x>=Smax))
       return -1000;
       double S= x;
       for (int i=0;i<m;i++)
       {
           if ((S<=Smin)||(S>=Smax))
           return -1000;
           S +=S*(sigmap*gauss()*sdt+r*dt);
       }
       return S;
       }
       
       double payoff(double s)
       {
              if (s>K)      return s-K; else return 0;
              }
               
       int main( )
       {
           ofstream f("stoch.dat" );
           for(double x=0.;x<2*K;x+=2*K/L)
           {
                      double value =0;
                      double y,S ;
                      for (int i=0;i<N;i++)
                      {
                          S=EDOstoch(x,M);
                          // S=EDOstoch_barier(x,m, left, right); // for barrier options
                      double y=0;
                      if(S>=0)
                      y = er*payoff(S);
                      value +=y;
                      }
                      f << x <<"\t" <<value/N<< endl;
                      }
                      return 0;
       }
 
J'ouvre gnu plot et j'écris plot "stoch.dat" et la il dit Skipping unreadable data "stoch.dat" No data in plot. Pourquoi? Q'est ce qui ne va pas dans mon programme?


Message édité par dilemne le 02-03-2008 à 14:33:08
mood
Publicité
Posté le 02-03-2008 à 13:50:50  profilanswer
 

n°1695829
dilemne
Posté le 02-03-2008 à 17:19:08  profilanswer
 

c'est fou il n'y pas une seule personne capable de me donner une réponse ici?

n°1695855
yoyo+
Posté le 02-03-2008 à 18:39:51  profilanswer
 

Chez moi ça marche  :??:  
 
J'utilise gnuplot 4.2
 
Le "stoch.dat" generé :
 


0 0
5 0
10 0
15 0
20 0
25 0
30 0
35 0
40 0
45 0.00110952
50 0.00673572
55 0.0284623
60 0.107391
65 0.324653
70 0.7458
75 1.52666
80 2.84282
85 4.59722
90 6.97009
95 9.86763
100 13.3184
105 17.1063
110 21.2113
115 25.6255
120 30.2903
125 34.7515
130 39.5577
135 44.6761
140 49.6359
145 54.578
150 59.3165
155 64.647
160 69.5236
165 74.4875
170 79.6428
175 84.3688
180 89.5191
185 94.3761
190 99.5209
195 104.535


 
le résultat sous gnuplot :
 
http://img160.imageshack.us/img160/4876/stochzc4.th.png


Message édité par yoyo+ le 02-03-2008 à 18:41:31

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  comment faire des graphiques sous c++ avec gnu plot?

 

Sujets relatifs
supprimer tous les graphiques dans une feuille de calculGénérer des graphiques fluides avec AJAX
[Résolu] Application avec multiples interfaces graphiques[Divers] Technos graphiques web
bjr, j'ai 1 macro qui génère automatiquement des graphes/graphiques, çmacro Excel VBA : Création automatique de 140 graphiques
Graphiques wordRecherche et remplacement des graphiques ds Word
Recherche informations pour PL7pro(tableaux, graphiques, enre ! please[Résolu][Javascript] Boutons graphiques dynamiques
Plus de sujets relatifs à : comment faire des graphiques sous c++ avec gnu plot?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR