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

Algorithmes et structures de données Discussion :

Vérification de système linéaire, avec tableaux


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut Vérification de système linéaire, avec tableaux
    Bonjour,

    J'ai besoin de multiplier chaque ligne d'un tableau à deux dimensions de n lignes et n+1 colonnes par un tableau à une dimension de n éléments, et ce en vue de vérifier un systeme linéaire. Je dois placer le résultat dans un tableau à une dimension.
    Je dois programmer cela en java, mais je ne sais pas du tout comment m'y prendre !
    J'ai déjà ceci, mais qui ne donne rien de convenable :

    (tableau du système : tab[][] et tableau de solutions : sol[])

    double tmp[] = new double [tab.length];
    for (i=0 ; i<1 ; i++){
    for (j=0 ; j<4 ; j++){
    tmp[i] = tab[i][j] * sol[i];
    }
    }

    Quelqu'un pourrait-il m'éclairer s'il vous plait ?
    Merci

  2. #2
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    On parle de matrice (pour le tableau à 2 dimensions) et de vecteur (pour le tableau à 1 dimension).
    Multiplier une matrice par un vecteur, il y a, je pense, suffisament de docs sur le net, non ?

  3. #3
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut
    Je me suis mal exprimé :
    en fait, je dois vérifier que les solutions présentes dans le vecteur sont correctes, en retournant un true si oui, et un false si non. Je n'ai rien trouvé en java qui puisse me faire évoluer.

  4. #4
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut
    Voici où j'en suis actuellement, mais ça retourne des valeurs éronnées.

    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
        public static void main(String[] args) {
            // TODO code application logic here
            //
            double tab[][] = new double[3][4];
            int i=0, j=0;
            double sol[] = new double [3];
            // Remplissage du tableau de systeme lineaire
            for (i=0 ; i<3 ; i++){
                for (j=0 ; j<4 ; j++){
                    tab[i][j] = Lire.d("Entrez l'élément "+(i+1)+","+(j+1)+" :");
                }
            }
     
            // Remplissage du tableau de solution
            for (i=0 ; i<3 ; i++){
                sol[i] = Lire.d("Entrez l'élément "+(i+1)+" :");
            }
     
            // Affichage du tableau de systeme lineaire
            for (i=0 ; i<3 ; i++){
                System.out.printf("\n");
                for (j=0 ; j<4 ; j++){
                    System.out.printf(""+tab[i][j]+" ");
                }
            }
     
            // Affichage du tableau de solution
            System.out.printf("\n\n");
            for (i=0 ; i<3 ; i++){
                System.out.printf(""+sol[i]+" ");
            }
     
            // Vérification des solutions
            // Création d'un tableau temporaire
            double tmp[] = new double [tab.length];
            for (i=0 ; i<1 ; i++){
                for (j=0 ; j<4 ; j++){
                    tmp[i] = tab[i][j] * sol[i];
                }
            }
            // Affichage du tableau temporaire
            System.out.printf("\n\n");
            for (i=0 ; i<tab.length ; i++){
                System.out.printf(""+tmp[i]+" ");
            }
     
        }
     
    }

  5. #5
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    C'est un forum d'algorithmie, si tu ne donnes pas le problème formel, vas directement dans le forum Java. Sinon, explique ta multiplication pour vérifier, hors contexte, c'est sympa, mais on ne peut pas deviner (en tout cas, pas moi).
    En plus, !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (i=0 ; i<1 ; i++){
    for (j=0 ; j<4 ; j++){
    tmp[i] = tab[i][j] * sol[i];}}
    Ca, ça ne va pas faire grand chose, tu commences à 0, tu finis à 0 pour i ? Il sert à quoi

  6. #6
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut
    OK, mettons Java de coté !

    En fait :
    - 1 tableau à deux dimensions de n lignes, n+1 colonnes (une matrice)

    ==> Contient les éléments d'un système linéaire

    - 1 tableau à une dimension, de dimension n

    ==> Contient les solutions que l'on doit vérifier

    Voici mon problème expliqué un peu plus simplement :

    Ce qu'il faut faire, c'est multiplier l'élément (0,0) de la matrice par l'élément 0
    du vecteur, puis stocker la reponse dans un tableau à une dimension. Ensuite, multiplier l'élémen (0,1) par l'élément 1 du vecteur, et stocker la réponse dans le tableau à une dimension temporaire, mais à la case suivante. Il faut repeter cette opération sur les n premiers éléments de la ligne (pas le dernier). Il faut également répéter cette opération pour chaque ligne de la matrice.

    Je ne parviens vraiment pas à programmer cela, mais je pense que une fois que j'aurai un algorithme clair, ça ne devrait plus poser problèmes.

    Voila, merci
    Julien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Système linéaire avec contraintes
    Par SKone dans le forum Mathématiques
    Réponses: 4
    Dernier message: 17/09/2013, 11h27
  2. Réponses: 3
    Dernier message: 26/03/2013, 16h00
  3. Résolution système linéaire avec contraintes
    Par Triton972 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 25/10/2011, 19h32
  4. Réponses: 2
    Dernier message: 18/06/2008, 14h45
  5. Résolution système linéaire mais avec paramètre
    Par feynman dans le forum Scilab
    Réponses: 7
    Dernier message: 03/10/2007, 06h55

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