Affichage de "inf" comme valeur

Fermé
hoss91 - 27 mars 2015 à 09:12
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 2 avril 2015 à 11:19
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?
A voir également:

2 réponses

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
27 mars 2015 à 15:19
Bonjour,

Sans le code je vois pas comment vous aider

Cordialement
0
#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
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 vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
28 mars 2015 à 13:38
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
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 vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
2 avril 2015 à 11:19
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