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

Mathématiques Discussion :

Polynomes a plusieurs a variables : generer et ordonner tous les termes possibles


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Homme Profil pro
    Chercheur (Physique)
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur (Physique)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 80
    Points
    80
    Par défaut Polynomes a plusieurs a variables : generer et ordonner tous les termes possibles
    Bonjour,

    J'essaie de creer le tableau suivant :
    _ nombre de colonne = nombre de variables (n) du polynome ;
    _ nombre de ligne = nombre de combinaisons possibles des variables pour obtenir un terme d'ordre k donne (soit C_{n+k}^{k}-C_{n+k-1}^{k-1}).

    La j-eme colonne correspond aux exposants de la j-eme variable et la i-eme ligne correspond a la i-eme combinaison possible des n variables pour avoir un terme d'ordre k.

    Pour n=4 variables et k=5, on aurait ceci :

    5 0 0 0
    4 1 0 0
    4 0 1 0
    4 0 0 1
    3 2 0 0
    3 1 1 0
    3 1 0 1
    3 0 2 0
    3 0 0 2
    2 3 0 0
    2 2 1 0
    2 2 0 1
    . . . .
    . . . .
    . . . .
    0 0 0 5

    (56 lignes au total, dont la somme est toujours egale a k, i.e. 5)

    J'arrive a generer la premiere colonne avec les valeurs rangees en ordre decroissant en fonction de n et de k, mais je ne parviens pas a generer la seconde (et donc les suivantes). Ce qui pose probleme, c'est le fait que la seconde colonne soit divisee en sous-colonnes ordonnees (pour chaque valeur differente dans la 1ere colonne, les valeurs de la 2nde sont rangees par ordre decroissant). Et le probleme se repete aux colonnes suivantes.

    Je code en C et j'ai essaye avec une fonction recursive, mais je n'y suis pas arrive.Si quelqu'un aurait une idee, je suis preneur.

    D'avance, merci.

  2. #2
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Etape 1:
    générer tous les k-uples
    x1,x2,...,xk
    où chaque x1 varie entre 1 et n
    Etape2:
    à tout k-uple associer un n-uple
    y1,y2,...,yn

    y1 est le nombre de 1 dans x1,x2,...,xk
    y2 le nombre de 2
    yn le nombre de n
    Etape 3:
    Eliminer les doublons dans la suite des n-uples obtenus
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par erroneus Voir le message
    J'arrive a generer la premiere colonne avec les valeurs rangees en ordre decroissant en fonction de n et de k, mais je ne parviens pas a generer la seconde
    Pour la seconde, c'est comme pour la premiere sauf que le nombre de départ c'est pas 5 mais (5 - somme(colonnes_précédantes)).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Une occasion, Pseudocode, de (re)placer tes calculs sur les puissances des polynômes symériques et de faire ainsi d'une pierre deux coups.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    Une occasion, Pseudocode, de (re)placer tes calculs sur les puissances des polynômes symériques et de faire ainsi d'une pierre deux coups.


    C'est peut-etre une méthode un peu trop compliquée pour faire juste une énumération récursive.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Je ne sais pas ce que tu veux faire avec tes polynômes, mais je crois devoir te mettre en garde: bien que les polynômes soient souvent les premières fonctions qu'on enseigne, parce que leur théorie est assez simple, il faut savoir que, du point de vue du calcul numérique, ce sont des "sales bêtes", avec lesquelles on a souvent les pires ennuis.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  7. #7
    Membre régulier
    Homme Profil pro
    Chercheur (Physique)
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur (Physique)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 80
    Points
    80
    Par défaut
    @Zanoven :

    etape 1 : je ne vois pas comment generer tous les k-uplets, aprt faire des boucles for dans des boucles for, mais comme n et k sont choisis par l'utilisateur, comment savoir combien de sous-boucles faire ?

    etapes 2 et 3: la non plus, je ne comprends pas comment tu fais

    comment tu sais dans quels ordres sont les differents termes ?

    @pseudocode : c'est ce que j'ai commence a faire, mais je ne remplis que la premiere sous-colonne de la colonne suivante par ordre decroissant. apres, pas moyen de recommencer une autre sous-colonne. je vais verifier mon code et on verra si j'ai code ca correctement.

    @FR119492 : c'est un programme pour fitter un jeu de donnees de 4 variables (x,y, theta et phi). pour le moment c'est du fortran77 et ca ne fait que le degre 7 avec 330 GOTO vers les 330 combinaisons possibles de polynomes de degre 0 a 7 avec 4 variables ranges comme indiques plus haut. je cherche a faire la meme chose en C, mais avec le nombre de variables et le degre maximal au choix (ne serait-ce que aller voir a l'ordre 8 ce qu'on y gagne) et de facon un peu plus elegante, i.e. sans ecrire a la main toutes les combinaisons. Une fois que j'aurais les puissances pour les variables, je n'ai plus qu'a construire les fontions de fit et a les stocker dans un tableau. l'ordre est important car on va multiplier case a case le tableau avec toutes les fonctions de fit obtenue par un tableau contenant des 1 et des 0 qui fera office de filtre (certaines fonctions de fit ne seront pas utiliser). sinon, j'ai un peu regarder sur le net le sites qui parlent d'algo avec des polynomnes a plusieurs variables, ca donne assez vite la migraine.

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par erroneus Voir le message
    @pseudocode : c'est ce que j'ai commence a faire, mais je ne remplis que la premiere sous-colonne de la colonne suivante par ordre decroissant. apres, pas moyen de recommencer une autre sous-colonne. je vais verifier mon code et on verra si j'ai code ca correctement.
    Il faut faire cela recursivement, c'est le plus simple.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut

    c'est de ceci que tu parles si j'ai bien compris ??

    http://fr.wikipedia.org/wiki/Combina...9p%C3%A9tition

    en bas de page il y a l'algorithme pour les générer

  10. #10
    Membre régulier
    Homme Profil pro
    Chercheur (Physique)
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur (Physique)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 80
    Points
    80
    Par défaut
    MERCI

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/05/2013, 17h23
  2. Réponses: 10
    Dernier message: 01/03/2010, 17h06
  3. Variable de session globales à tous les visiteurs
    Par Seb33300 dans le forum Langage
    Réponses: 8
    Dernier message: 13/08/2009, 17h06
  4. [MySQL] Variable qui s'actualise tous les jours
    Par zathuros dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/11/2008, 13h22
  5. Réponses: 1
    Dernier message: 14/03/2008, 07h32

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