Affichage de "inf" comme valeur

hoss91 -  
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   -
bonjour à tous !
j'ai écrit un code en c++ mais à l'exécution il m'affiche "inf" comme valeur malgré j'ai bien vérifié la formule mathématique de la fonction return
svp a_t_il quelqu'un une solution ou explication pour ce probléme?

2 réponses

Thorak83 Messages postés 1140 Statut Membre 156
 
Bonjour,

Sans le code je vois pas comment vous aider

Cordialement
0
hoss91
 
#include "AD_test.h"


AD_test::AD_test()
{
}



int AD_test:: test(float s, vec X,int Ndft,float lambda,int N)
{
int x=0;
int z=0;
int y=0;
int l=N/Ndft;
cdf *f0;
f0=0;
vec An;
An.set_size(l);
An.zeros();
for (int k=0; k<Ndft; k++)
{
cout <<"pour le bin : "<<k<<endl;
for (int i=0; i<l;i++)
{
An[i]=0;

An[i]=(-l)-((2*i-1)*(log(f0->cdf_function(s,X[i*Ndft+k])))+log(1-f0->cdf_function(s,X[i*Ndft-k])))/l;
cout<<"An["<<i<<"]= " <<An[i]<<endl;
if (An[i]>lambda)
x++;
else
x--;
}
if (x>0)
{
z++;
cout << "H1=>signal détecté dans le bin " <<k << endl;
}
else
{
z--;

avec cdf_function est comme ci :
float cdf::cdf_function(float sigma, float y)
{

if (y>0)
return 1-(exp(-y/(2*sqr(sigma))*(1+y/(2*sigma))));
else
return 0;

}

cout << "H1=>signal détecté dans le bin " <<k << endl;
}
if (z>0) y++;
else y--;
}

return y;
}
0
hoss91
 
aprés exécution voilà :
pour le bin : 0
An[0]= inf
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 0
pour le bin : 1
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 1
pour le bin : 2
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 2
pour le bin : 3
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 3
pour le bin : 4
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 4
pour le bin : 5
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 5
pour le bin : 6
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 6
pour le bin : 7
An[0]= -4
An[1]= inf
An[2]= inf
An[3]= inf
H1=>signal détecté dans le bin 7
0
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
Bonjour
C'est bien beau de nous fournir un semblant de code, mais ce n'est pas à nous de comprendre ce que tu as fait il est préférable de nous donner l'énoncé du problème avec la formule adéquate afin que l'on puisse t'aider et non un code mal indenté avec des explications vagues.
à bientôt
0
hoss91
 
bonjour
ce code a pour but de faire le test de Anderson Darling afin de décider si le signal reçu de l'usrp est un vrai signal ou ce n'est qu'un bruit et ceci avec la comparaison de An avec une valeur bien déterminée lambda
on fait ce test pour chaque bin c à d aprés qu'on a fait la dft du signal avec Ndft points , sigma c'st la puisance moyenne du bruit
0
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
Bonjour
Je pense que tu n'as pas bien compris on sont fous de qui a inventé la méthode. On veut connaître la formule et l'algorithme qui l'implémente afin de t'aider a rectifier ton code foireux.
Il faut comprendre que les bénévoles qui t'aide viennent d'horizons différents et il est clair que ce n'est pas tout le monde qui s'est déterminé des écarts de valeur en échantillonnage ou encore des échantillonnages probabilistes voire plus clairement, des connaissances en métaheuristique.

D'un autre côté vu la façon dont tu implémentes ton code en langage C++ si je peux dire, le mieux est d'utiliser le langage python beaucoup plus simple et pratique. Il faut également faire attention à tes équations, la valeur de retour peut-être fausse dû aux priorités.
à bientôt
0