[C++] Calcul de covariance

Fermé
khaoula.85 Messages postés 31 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 3 décembre 2009 - 26 nov. 2009 à 14:54
khaoula.85 Messages postés 31 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 3 décembre 2009 - 3 déc. 2009 à 16:25
Bonjour tout le monde,
Je veux calculer la covariance d'une matrice en C++ à l'aide de Visual Studio, le problème est que j'ai un bug que j'arrive pas à détecter lors de l'exécution.
Je pense que c'est dû aux variables que j'ai utilisées. Voici mes deux fonctions pour calculer la moyenne et la covariance :
bool Gadp::ComputeMeanColumnVector(std::vector<double> &o_vMean )
{
	o_vMean.clear();
	if(m_Matrix.size() != m_iNBColumn || m_Matrix[0].size() != m_iNBRow)
		return false;

	for(int i = 0; i < m_iNBColumn; i++)
	{
		double somme = 0;
		for(int j = 0; j < m_iNBRow ; j++)
		{
			 somme += m_Matrix[i][j];  
		}
		double mean = somme/m_iNBRow;
		o_vMean.push_back(mean);
	}
	return true;
}

const std::vector<std::vector<double> > Gadp::GetCovariance()
{
 return m_var;
}

//  Cov(i,j) = sum[ (X-mean(Xi))* (Y - mean(Yj))]  /  n
void Gadp::calCovariance()
{                              
	  int i,j,k;					
	  double factor;
	  ComputeMeanColumnVector(m_MeanMat);
	  for(i=0;i<m_iNBRow; i++)
		{ 
			for(j=0;j<m_iNBColumn; j++)
				{
					factor=0;
					for(k=0;k<m_iNBRow;k++)
						{
							factor+=(m_mat[k][i] - m_MeanMat[i])*(m_mat[k][j] - m_MeanMat[j]); 
						}
					m_var[i][j]= factor/m_iNBColumn;
            
                }
   	    }
          return ;
}


Quelqu'un pourrait m'aider s'il vous plait ?
Merci par avance !
K.
A voir également:

1 réponse

khaoula.85 Messages postés 31 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 3 décembre 2009
3 déc. 2009 à 16:25
Up pour actualiser :-(
0