La variable de semble pas changer de valeur

Fermé
sbendix - 28 oct. 2014 à 16:31
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 28 oct. 2014 à 19:04
Bonjour à tous le monde!

J'ai un petit problème avec le programme ci-dessous:

------------------------------------------------------------------------------------------------------------

public static void main(String []args){

double[][] M={{11,0,9,8,7},{18,0,18,18,18},{29,28,27,0,25},{6,6,0,6,6},{17,16,15,14,0}};
double[][] M1={{0,8,9,8,7},{18,0,18,18,18},{29,28,27,0,25},{6,6,0,6,6},{17,16,15,14,0}};
double[][] U={{2,2},{2,2},{2,2},{2,2},{2,2}};
double[][] V={{1,1,1,1,1},{1,1,1,1,1}};


System.out.println(updateUElem(M,U,V,0,0));

}

public static double updateUElem( double[][] M, double[][] U, double[][] V, int r, int s ) {

int ligneMatriceM=M.length;
int colonneMatriceM=M[0].length;
int ligneMatriceU=U.length;
int colonneMatriceU=U[0].length;
int ligneMatriceV=V.length;
int colonneMatriceV=V[0].length;

double sommeMatriceVNumerateur=0;
double sommeMatriceVDeonominateur=0;
double sommeNumerateur=0;
double valeurUpdate=0;


for (int j=1;j==colonneMatriceM;++j){
for(int k=1;k==colonneMatriceU;++k){

if (k!=s){
valeurUpdate+=(V[s][j]*(M[r][j]-(U[r][k]*V[k][j])))/(V[s][j]*V[s][j]);

}

}
}

return valeurUpdate;
}
-----------------------------------------------------------------------------------------------------------

A chaque fois que je compile se programme, il me sort tout simplement la valeur d'initialisation de "valeurUpdate". J'ai l'impression qu'il n'effectue pas les boucles for qui se trouve dans la méthode updateUElem.


En espérant que vous pourrez m'aider, je vous adresse Madame, Monsieur, mes meilleures salutations.


A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
28 oct. 2014 à 19:04
Bonjour,

for (int j=1;j==colonneMatriceM;++j){ 
for(int k=1;k==colonneMatriceU;++k){

C'est très faux tout ça.
D'une part les indices de tableau commencent à 0, pas à 1.
D'autre part la condition qui se met au milieu est une condition de continuité, pas une condition d'arrêt.

Remarque : même si ce n'est pas faux on mettra plutôt i++ que ++i sauf si on a vraiment besoin de prioriser l'incrément mais ce n'est pas le cas ici.

for (int j=0; j<colonneMatriceM; j++){ 
for(int k=0; k<colonneMatriceU; k++){
0