C++ de merde...enfin je veux dire...

brindillee Messages postés 9 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 25 août 2004 - 21 juil. 2004 à 10:18
louatiamin Messages postés 20 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 5 avril 2005 - 23 juil. 2004 à 14:36
Salut,

J'ai un petit soucis qui me cause des grands soucis...

Voila j'ai choppé une fonction de décomposition (svd...) en C++ sur le net mais je n'arrive pas à l'utiliser....j'ai un problème avec les arguments...

la fonction est

void svdcmp(double **a, int m, int n, double w[], double **v)

//Given a matrix a[1..m][1..n],this routine computes its singular value decomposition,A =
//U · W · V T .The matrix U replaces a on output.The diagonal matrix of singular values W is out-
//put as a dvector w[1..n].Thematrix V (not the transpose V T )is output as v[1..n][1..n].
{
tout le code...
}

Mais je ne sais pas ce que c ces doubles pointeurs de merde double **a et double **v...pour être franc je suis loin d'être un spécialiste de C++...mais bon on fait ce qu'on peut...

Quelqu'un pourrait me donner un code simple pour définir correctement ces variables à partir de la matrice que je vais décomposer...dans lafonction main...

int main()
{
double TEST[3][3]={1,1,1,1,1,1,1,1,1}; // Matrice à décomposer..

??? // Partie à compléter..

svdcmp(a,3,3,w,v);
}

MERCI D'AVANCE....et bonne journée à tous

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
21 juil. 2004 à 11:06
double** a : permet de déclarer un pointeur sur un pointeur, et dans ton cas un tableau dynamique de tableaux dynamique (tableau à 2 dim).

soit m et n les dimensions de ton tableau (matrice)
double** mat;

// création du tableau de pointeurs
mat = new double*[m];

// création des sous-tableaux */
for(int i = 0; i < m; i++)
mat[i] = new double[n];

comme ce tableau est dynamique, tu as besoin de passer ces dimensions à la fct svdcmp.

destruction :
for(int i = 0; i < m; i++)
delete[] mat[i];
delete[] mat;
0
brindillee Messages postés 9 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 25 août 2004
21 juil. 2004 à 13:44
Ok..je crois que j'ai compris...merci ymca2003..

A propos...je retire donc ce que j'ai dit le C++...

Vive le C++ (ca fait mal de le dire mais bon...)
0
louatiamin Messages postés 20 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 5 avril 2005
23 juil. 2004 à 14:34
aussi tu peut penser comme ca
0
louatiamin Messages postés 20 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 5 avril 2005
23 juil. 2004 à 14:36
aussi tu peut penser comme ca
0
Rejoignez-nous