IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Pourquoi le résultat est 0? Petit souci


Sujet :

avec Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Pourquoi le résultat est 0? Petit souci
    Bonjour,

    je dois résoudre un système d'équation à n équations et n inconnus, chose pas très difficile avec la méthode de cramer.

    Voilà, je remplis les coefficients de l'équation avec les valeurs d'un tableau que j'ai construit, et j'ai en sorti mon les résultats, c'est à dire les solutions des équations.

    Cependant je ne trouve que des 0.

    Pourquoi?

    Voilà mon code,

    En espérant que vous me serez d'une grande aide,

    Margueritian


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    import java.util.Scanner.*;
    import java.util.*;
     
    public class cramersrule{
     
    double A[][];
    double m[][];
    int N = 9;
    double B[];
     
    	public void input(double Valtab[][]){ // permet davoir les systemes que nous cherchons pour pouvoir les resoudres ensuite
     
    		Scanner s = new Scanner(System.in);
     
    		//System.out.println("enter no of equations of matrix");
    		A = new double[N][];
    			for(int i=0;i<N;i++) {
    				A[i]= new double[N];
    			}
     
    		//System.out.println("enter the co-efficient of equations");
     
    			for(int i=0;i<N;i++){
    				//System.out.println("enter the co-efficient of equation" + (i+1));
    				for(int j=0;j<N;j++){
    					//double k=s.nextDouble();
    					A[i][j] = Valtab[j][i];
    	}
    }
     
    B = new double[N];
    //System.out.println("enter the RHS of equations");
    		for(int i=0;i<N;i++){
    			//System.out.println("enter the RHS of equations" + (i+1));
    			B[i] = 0;
    		}
    	}
     
    public double determinant(double A[][],int N){
     
    double det=0;
    double res;
    if(N == 1)
    res = A[0][0];
     
    else if (N == 2){
    res = A[0][0]*A[1][1] - A[1][0]*A[0][1];
    }else{
    res=0;
     
    for(int j1=0;j1<N;j1++){
    m = new double[N-1][];
     for(int k=0;k<(N-1);k++)
       m[k] = new double[N-1];
    	for(int i=1;i<N;i++){
    		int j2=0;
    		for(int j=0;j<N;j++){
    			if(j == j1)
    				continue;
    				m[i-1][j2] = A[i][j];
    				j2++;
    		}
    	}
    		res += Math.pow(-1.0,1.0+j1+1.0)* A[0][j1] * determinant(m,N-1);
    	}
    }
    return res;
    }
     
     
    public double[] cramers(double A[][],double B[]){ // permet de resoudre les systemes
      double temp[][] = new double[N][N];
    double x[] = new double[N];
      for(int i=0;i<N;i++){
          for(int j=0;j<N;j++){
             for(int k=0;k<N;k++){
               if(k == i){
                temp[j][k] = B[j];
                }else{
                 temp[j][k] = A[j][k];      
               }
    		}
           x[i]=determinant(temp,N)/determinant(A,N);
        }
    }
     for(int i=0;i<N;i++){
    		System.out.println("x"+(i+1)+"="+x[i]);
    		//System.out.print(;}
    		}
    		return x;
    }
     
     
    public static void main(String args[]){
     
    	double res;
    	double tableau[][]={{1,9,5,2,5,5,6,7,8},{100,4,5,7,7,1,5,7,8},{1,2,2,5,5,1,7,4,5},{2,5,8000,8,9,2,5,47,5},{5,7,1,5,2,2,5,8,7},{100,4,5,7,7,1,4,52,2},{1,2,2,5,5,1,45,2,8},{2,5,8,8,9,2,5,4,7},{5,7,1,5,2,1,4,7,5}};
    //{{3,1,2},{3,4,5},{6,7,8}};
    		cramersrule d = new cramersrule();
    		d.input(tableau);
    		d.cramers(d.A,d.B);
       }
    }

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    Bonjour,
    pour faciliter la lecture peut tu ajouter les balise [ code][/ code] (sans les espace).
    Merci.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    As tu effectué des test unitaires sur ta méthode de calcul du déterminant afin de vérifier que cette méthode renvoi le bon résultat?

    Ne connaissant pas les règles de Cramer je ne peut pas t'aider, ton code n'est pas commenté, donc je ne sais pas ce que doit faire chaque méthode. Notament que retourne le résultat et à quoi corresponde les paramètres.

    Pourquoi le résultat est 0?
    Quel résultat attend tu? essai avec un système moins complexe que tu calcule à la main, et compare le avec celui que tu obtient dans ton programme.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Points : 15
    Points
    15
    Par défaut
    Dans la méthode input, tu initialises ton vecteur B à 0. Du coup xi = 0 est une solution de ton équation. Essaye en initialisant ton vecteur B à autre chose (par exemple 1).

    Dans la méthode cramers, le calcul de [I]x n' est pas dans la bonne boucle for.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    enfaite c'est tout à fait normal qu'il y ait des 0 il faut utiliser une autre méthode pour trouver des valeurs.

    En effet, je cherche les vecteurs propres d'une matrice après avoir trouvé les valeurs propres, si vous avez une méthode qui le fait, pourriez vous me le transcrire?

    Merci à l'avance

    Margueritian

Discussions similaires

  1. Petit soucis pour se connecter à l'adsl
    Par Blowih dans le forum Réseau
    Réponses: 4
    Dernier message: 28/07/2004, 00h16
  2. petit soucy de fenetre cmd
    Par FeetloveR666 dans le forum Windows
    Réponses: 5
    Dernier message: 03/07/2004, 14h24
  3. petit soucis lors d'un LOAD DATA INFILE
    Par Jovial dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 04/06/2004, 11h58
  4. Réponses: 6
    Dernier message: 21/01/2004, 13h25
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo