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 :

résolution système 6 inconnus avec 5 équations linéaires et une du 2eme degré


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut résolution système 6 inconnus avec 5 équations linéaires et une du 2eme degré
    Bonjour à tous,
    voila un problème que je rencontre pendant mon stage, et j'aimerais savoir si il est possible de le résoudre avec matlab ou scilab
    6 inconnus (x,y,z,p,q,r)
    j'ai 5 équations linéaires:
    Ax+By+Cz+ Dq+Ep+Fr = G
    .....
    ....
    ...
    ...
    et une deuxieme degré:
    x²+y²+z²=1

    Savez vous comment résoudre cela?

  2. #2
    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!
    j'aimerais savoir si il est possible de le résoudre avec matlab ou scilab
    Oui, à condition de choisir d'abord un algorithme bien adapté, et seulement ensuite de le programmer correctement. En conséquence, je transfère cette discussion dans le forum algo/maths
    Jean-Marc Blanc

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Plus qu'un problème d'algorithme, à mon avis c'est un problème de mathématiques.
    Une équation du second degré peut en général se mettre sous la forme
    x1 = racine 1
    x2 = racine 2
    Donc, une équation du second degré sous-entend 2 inconnues
    A première vue, il semblerait donc qu'il manque (au moins) une équation.
    Cependant, la forme de la dernière équation est très particulière. c'est l'équation d'une sphère de rayon 1 centrée sur l'origine (x,y,z).
    Je pense qu'il faudrait chercher dans cette direction.

  4. #4
    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!
    Personnellement, j'opterais pour une méthode itérative (dichotomie de Bolzano, regula falsi ou autre) en incluant dans chaque itération la résolution d'un système de 5 équations à 5 inconnues.
    Jean-Marc Blanc

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour J.M. Blanc,
    La question que je me posais était de savoir si un tel système admettait une solution unique, ou au moins une seule solution "vraisemblable".
    En pratique, la méthode par dichotomie permettra de trouver une solution, mais comment être sûr qu'il n'y en a pas d'autre? A moins de vérifier (ou démontrer) qu'on les a toutes épuisées dans l'intervalle (-1, +1) pour x, y et z.
    J'aurais préféré avoir à résoudre un système de 20 équations à 6 inconnues, là je sais faire.

    A mon avis pour le problème présent, il faudrait essayer de se limiter à 3 inconnues (x, y, z) ou (p, q, r) en utilisant les autres comme paramètres. Mais pour cela, il faudrait connaitre le problème qui a conduit à écrire ce système.

    @ flomarty, a moins que ce problème soit confidentiel, ça m'intéresserait de connaitre les hypothèses.

    Cordialement.

  6. #6
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Bonjour,
    il n'est pas compliqué de résoudre ce système de manière analytique. Les cinq premières équations nous permettent d'exprimer chacune des variables y,z,q,r,p en fonction de x. La dernière équation devient donc x²+y(x)²+z(x)²=1. Il peut donc exister 0, 1 ou 2 solutions pour x et donc pour le 6-uplet (x,y,z,q,r,p).

    Cordialement,

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Oui, je suis d'accord sur le plan théorique, mais ce qui m'intéressait, d'où mes questions, c'est l'origine de cette équation. Si la 6è avait des paramètres quelconques, votre méthode est parfaite, or, ce n'est pas le cas, d'où la possibilité d'une autre approche.
    Par ailleurs, je ne suis pas sûr qu'il serait très facile d'écrire un algorithme qui calcule cela.

  8. #8
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Il ne s'agit pas vraiment d'algorithmie une fois que l'on a exprimé de manière analytique une solution. Je m'explique par un exemple :

    On souhaite résoudre l'équation avec b et c connus à l'exécution (on peut encore simplifier si c'est à la compilation). Il y a deux approches.

    • L'approche itérative, par exemple méthode de newton
      on part d'un approximatif, et on calcule

      Quand on a , on considère que . Si au bout d'un certain n, la condition d'arrêt n'est pas atteinte, on conclut qu'il n'y a pas de solutions.


    • L'approche analytique,
      Selon les cas :
      • <0
        Il n'y a pas de solution
      • =0
        Il y a une unique solution
      • >0
        Il existe deux solutions :


    Lorsque l'on décide d'implémenter l'une ou l'autre des deux méthodes, on voit bien que lorsqu'elle est possible, la seconde est bien plus rapide à coder et à s'exécuter. Et bien dans le cas donné dans le premier message, sauf cas particulier non précisé, il est possible de trouver l'expression des 6-uplets solutions (x,y,z,q,r,p) en fonction des paramètres (A,B,C,D,E,F,G) de chacune des cinq équations linéaires.

  9. #9
    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
    Bonjour à tous!

    Je vous propose l'algorithme suivant:
    1. On pose x1=-1 dans le système de 5 équations à 5 inconnues, puis on résout ce système, d'où y1, z1, p1, q1 et r1.
    2. On calcule s1=x1^2+y1^2+z1^2-1, qui serait nul si ce qu'on a trouvé était la solution, mais ce n'est probablement le cas.
    3. On pose x2=+1 dans le système de 5 équations à 5 inconnues, puis on résout ce système, d'où y2, z2, p2, q2 et r2.
    4. On calcule s2=x2^2+y2^2+z2^2-1, qui serait nul si ce qu'on a trouvé était la solution, mais ce n'est probablement le cas.
    5. Si s1 et s2 ont le même signe, cela signifie qu'il y a 2 solutions distinctes ou confondues ou aucune. On recommence au début, mais avec x1=-1 et x2=0 ou avec x1=0 ou x2=+1.
    6. Si s1 et s2 sont de signes opposés, cela signifie qu'il y a un nombre impair, à savoir une seule solution entre x1 et x2. On pose x3=(x1+x2)/2 dans le système de 5 équations à 5 inconnues, puis on résout ce système, d'où y3, z3, p3, q3 et r3.
    7. On calcule s3=x3^2+y3^2+z3^2-1, qui serait nul si ce qu'on a trouvé était la solution, mais ce n'est probablement le cas. Sinon, s3 a soit le signe de s1, soit celui de s2. Dans le premier cas, on remplace la valeur de x1 par celle de x3; dans le second, on remplace la valeur de x2 par celle de x3; dans les deux cas on revient au début.
    8. Quand on juge que l'écart entre x1 et x2 est suffisamment petit, on met fin aux itérations.


    Jean-Matc Blanc

  10. #10
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    À noter que la méthode la plus simple pour résoudre ce système analytiquement, est de mettre les équations sous la forme d'une unique équation matricielle en considérant les (A,B,C,D,E,F,G) et x connus. La résolution est quasi-immédiate.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour J.M. Blanc,
    Je suis tout à fait d'accord avec l'algorithme, mais je n'ai pas très bien compris l'importance de la comparaison des signes de S1 et S2.
    Comme on peut le supposer (cas général), il y 2 solutions, ou 6 solutions, c'est ce que j'ai du mal à voir (dans ma tête).
    [HS] Les notes négatives volent bas ces temps-ci. Peut-être certains veulent-ils gravir les échelons sans rien écrire[/HS]

  12. #12
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    hs : non c'est moi qui ait voté "pas d'accord" : je trouve que c'est une hérésie de pondre un algo parce qu'on a la flemme de résoudre un problème de manière analytique. En temps que futur chef de projet, ça me fait chier de voir des devs qui pondent des merdes qui bouffent des ressources alors qu'un peu de réflexion permet de résoudre le problème en quelques lignes en écrivant directement une affectation simple ...

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    A mon avis, vous oubliez une chose fondamentale, on n'est pas dans un laboratoire de mathématique mais dans un environnement informatique. Votre solution peut être valable avec un tableur, mais pas dans un environnement de développement.
    La solution de J.M. Blanc est générale (ou généralisable), la vôtre est ponctuelle. Donc à mon avis c'est vous qui méritez une note négative.
    D'ailleurs, je vais faire un je d'essai et je vais écrire les deux méthodes. Je donnerai les résultats.

  14. #14
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Je suis près à parier mes deux mains qu'une solution analytique est toujours meilleure, et cela d'un point de vue développement (moins de lignes de codes à taper, lignes plus simples ce qui minimise les sources de bugs ...), d'un point de vue maintenance (la raison d'être dedites lignes de code est transparente, on comprend immédiatement ce qui est fait) et sur le point optimisation (selon la complexité de la solution analytique -- et ici elle est réellement faible -- on calcule en l'espace de quelques cycles horloge notre solution au lieux des centaines, milliers ou dizaines de millier que demande un algorithme qui approche la solution par convergence).

    Les algorithmes comme cités plus haut sont très utiles lorsqu'il n'existe pas de solution explicite à un problème ou lorsque l'on ne possède pas, au début de la résolution, tous les paramètres du problème (comme dans le cas d'une compression d'un signal numérique en temps réel).

    Ici, si vous vous sortez un peu les ... vous parviendrai à un résultat de sept lignes : cinq pour calculer les y,z,q,r,p en tant que sommes des paramètres, une pour calculer le delta de l'équation x²+y(x)²+z(x)²=0, une pour tester le signe de delta, et enfin une pour calculer la/les solutions en tant que fraction de racine de delta. Êtes-vous toujours convaicu qu'il faut sortir le tank Bolzano ou autres par peur de cinq sommes et d'une racine carrée ?


    Je pense sincèrement, Monsieur Dolez, que les Mathématiques vous font peur. Mais n'oubliez pas qu'elles sont dans bien des cas la base de l'algorithmie (qui d'ailleurs est une mathématique). Et pour enfoncer une bonne fois pour toute mon clou, je vous suggèrerais de consulter quelques ouvrages du domaine afin que vous vous rendiez compte de l'importance de l'optimisation et de la quantité de travail qui a été abattue pour fournir les outils nécessaires aux concepteurs logiciels pour rendre leur produit plus performant et plus maintenable. Mais bien entendu, libre à vous tant que nous ne travaillons pas ensemble de cracher des centaines de lignes incompréhensibles lorsque trois sommes et un produit faisaient l'affaire.

    Bien du courage.

  15. #15
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Bon, en me relisant je remarque que je me suis un peu emporté, et je m'en excuse. Le sujet me tient particulièrement à cœur et je pourrais discuter de choix stratégiques de développement pendant des heures ... mais je reconnais que ça n'est pas le lieu.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    La méthode par dichotomie est excellente. On arrive à une précision de 4 chiffres significatifs au bout d'une quinzaine d'itérations. C'est à dire qu'en temps de calcul c'est "immédiat".
    J'ai passé beaucoup plus de temps à trouver un système qui admette des solutions (il fallait bien que je teste mon code) que de coder la dichotomie.
    D'autre part, je ne me vois par établir les formules analytiques pour 6 inconnues, encore moins coder le calcul pour un nombre quelconque de variables.
    Le code que j'ai écrit admet un nombre quelconque d'inconnues, c'est à dire qu'étant donné les hypothèses, il est général.
    Pour mémoire, cette méthode basée sur le principe d'avoir une valeur approché et de calculer la valeur définitive est très classique. La méthode par dichotomie est très utilisée, il existe aussi la méthode de Gauss (courbe assimilée à sa tangente), méthode par agrandissement graphique, méthode basés sur le calcul de l'écart par une opération simple etc.
    Donc, problème résolu.

  17. #17
    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
    Bonjour à tous.
    À noter que la méthode la plus simple pour résoudre ce système analytiquement, est de mettre les équations sous la forme d'une unique équation matricielle en considérant les (A,B,C,D,E,F,G) et x connus. La résolution est quasi-immédiate.
    Peut-être si l'on dispose d'un logiciel de calcul formel comme Mathematica ou Maple. A titre d'exemple, résoudre numériquement un système linéaire de 1000 équations à 1000 inconnues prend moins d'une seconde, alors que, par une méthode analytique (Cramer), si on avait commencé au moment du big-bang, ça ne serait pas encore terminé.

    Je suis près à parier mes deux mains qu'une solution analytique est toujours meilleure
    Etant donnés les délais de livraison, vous ne devriez pas tarder à commander vos prothèses!

    En pratique, le nombre de problèmes pour lesquels il existe une solution analytique est minime par rapport à celui des problèmes pour lesquels une telle solution n'existe pas.

    Jean-Marc Blanc

  18. #18
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    En pratique, le nombre de problèmes pour lesquels il existe une solution analytique est minime par rapport à celui des problèmes pour lesquels une telle solution n'existe pas.
    Raison de plus pour les utiliser quand possible. Je ne sais pas pour vous, mais pour ma part je suis capable d'inverser à la main une matrice 5x5 en moins de deux minutes, et je pense être lent.

    Citation Envoyé par FR119492 Voir le message
    Etant donnés les délais de livraison, vous ne devriez pas tarder à commander vos prothèses!
    De plus, je ne pense pas que réfléchir cinq minutes (chrono) à un problème afin d'éviter une résolution numérique soit une perte de temps : au contraire on gagne en vitesse d'écriture (avec un bon langage, je vous fait une inversion matricielle écrite telle quelle et calculée à la compilation plus rapidement et avec moins de sources d'erreur que vous ne le feriez pour l'algorithme donné en exemple quelques messages plus tôt).

    Et pour finir, petit rappel du premier message (d'ailleurs merci à l'auteur de nous laisser patauger dans la merde n'est-ce pas ?)
    Citation Envoyé par flomarty Voir le message
    j'aimerais savoir si il est possible de le résoudre avec matlab ou scilab
    [...]
    Savez vous comment résoudre cela?
    Ce(tte) cher(e) flomarty souhaite résoudre un problème particulier, a priori unique et ne souhaite pas écrire un programme qui puisse résoudre ce genre de problème de manière générique. Je sais pas pour vous, mais de mon coté quand j'ai une équation à résoudre je prends un papier et un crayon et non gcc ...

    Cordialement,

  19. #19
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ce(tte) cher(e) flomarty souhaite résoudre un problème particulier, a priori unique et ne souhaite pas écrire un programme qui puisse résoudre ce genre de problème de manière générique. Je sais pas pour vous, mais de mon coté quand j'ai une équation à résoudre je prends un papier et un crayon et non gcc ...
    Je ne suis pas sûr que ce problème soit unique, il me semble qu'il y a peu de temps, le même problème a été posé.
    Mais, d'une façon plus générale, et pour répondre à la question. Si vous avez une équation à résoudre, à moins que ce soit dans un contexte universitaire ou de recherche expérimentale, la probabilité que cette même équation se représente doit avoisiner les 100%.
    D'autre part, il m'est arrive de résoudre des trucs en me disant que ça ne resservirait pas. Je me suis presque toujours trompé, et c'est beaucoup plus difficile de ressortir quelque-chose qui a été fait sans avoir réfléchi un peu plus de 5 mn.

  20. #20
    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!
    Comme la discussion s'embrouille de plus en plus, je pense qu'il faudrait revenir à ce qui devrait être fait dès le début, c'est-à-dire nous préciser
    1. d'où proviennent ces équations;
    2. ce que représentent les coefficients A, B, C, D, E, F et G et quelles valeurs ils peuvent prendre;
    3. ce que représentent les inconnues x, y, z, p, q et r.

    Avec ça, je pense qu'on pourrait avancer.
    Jean-Marc Blanc

Discussions similaires

  1. Équation linéaire d'une série de points
    Par sdecorme dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 17/09/2014, 20h29
  2. Réponses: 2
    Dernier message: 18/06/2008, 15h45
  3. Résolution de systèmes d'équations linéaires
    Par Eric06 dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/06/2008, 18h19
  4. Résolution système linéaire mais avec paramètre
    Par feynman dans le forum Scilab
    Réponses: 7
    Dernier message: 03/10/2007, 07h55
  5. Réponses: 1
    Dernier message: 11/01/2007, 10h00

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