Partage
  • Partager sur Facebook
  • Partager sur Twitter

programme pour resoudre les polynomes

aide pour les racines evidentes

Sujet résolu
Anonyme
    9 avril 2006 à 11:02:18

    bonjour tout le monde ,
    pour m entrainer un peu , j ai decidé de creer un petit programme pour resoudre les polynomes du second degres et du troisieme degres .
    etant donné que je suis en seconde je sais resoudre les polynomes du second degres meme si il n y a pas de racine evidente en revanche je ne sais resoudre les polynomes du troisieme degres si il n y a pas de racine evidente .

    dans mon programme je ne sais pas comment faire pour que l ordinateur me trouve les racines evidentes .
    les racines evidentes sont -2,-1,0,1,2 .
    Soit on peut creer une structure qui s appellerait racine_evidente et qui aurait toute ces valeurs .
    ou soit on peut creer une boucle while .

    j aimerai bien que vous me donniez une petite piste et m expliquer comment arranger mon code source parce que je ne ressend pas le besoin de creer des prototypes pour le moment et tout mon programme se trouve dans la fonction int main . Moi j arrive a comprendre logique vu que c est mon code mais bon il faudrait qu il soit un peu mieux structure .

    </code>
    <code type="c">#include <stdio.h>
    #include <stdlib.h>
    // declaration des variables
    int a = 0,b=0,c=0,d=0;

    int main(int argc, char *argv[])
    {
    printf("**********************************************\n");
    printf("*                                            *\n");
    printf("*                 BONJOUR                    *\n");
    printf("*                                            *\n");
    printf("**********************************************\n\n\n");
    printf("Ce programme resoud les polynomes, veuillez choisir le degres de votre polynome\n\n");
    // creation d une variable pour choisir le degres du polynome
    long choix_du_degres ;
    printf("1.polynome du second degres \n\n");
    printf("2.polynome du troisieme degres\n\n");
    scanf("%ld",&choix_du_degres);
    // structure switch pour determiner le degres choisi
    switch (choix_du_degres)
    {
           case 1 :
                printf("vous avez choisi un polynome du second degres\n\n ");
                printf(" il aura la forme ax^2+bx+c\n\n");
                break;
                case 2 :
                     printf("vous avez choisi un polynome du troisieme degres\n\n");
                     printf("il aura donc la forme ax^3+bx^2+bx+c\n\n");
                     break;
                                       
                     }
       /* maintenant que l on connait le degres du polynome
       on demande a l utilisateur de donner la valeur de "a"
       si l utilisateur choisi un polynome du second degres
       "a" doit etre different de zero sinon c est un polynome du premier degres
       si l utilisateur choisi un polynome du troisieme degres
       "a" doit etre different de 0 sinon c est un polynome du second degres */
         
       
       // on voit si A est differend de zero
      // et on cree une boucle , jusqu a ce que a soit plus grand que 0
     
         printf("entrez le chiffre A\n\n ");
         scanf("%ld",&a);
         while (a == 0)
         {
         
               printf("A doit etre differend de zero\n\n ");
               printf(" rentrez le chiffre A\n\n");
               scanf("%ld",&a);
               }
                                     
                   /*  puis on demande les valeurs de b et c si le polynome est du second degres
                   et les valeurs de b , c et d si le polynome est du troisieme degres */

                  switch (choix_du_degres)
                  {
                         case 1 :
                   printf ("veuillez rentrer la valeur de  b \n\n");
                   scanf("%ld",&b);
                   printf("veuillez rentrer la valeur de c \n\n ");
                   scanf("%ld",&c);
                   break ;
                   
                   case 2 :
                    printf ("veuillez rentrer la valeur de  b \n\n");
                   scanf("%ld",&b);
                   printf("veuillez rentrer la valeur de c \n\n ");
                   scanf("%ld",&c);
                   printf("veuillez rentrer la valeur de d \n\n ");
                   scanf("%ld",&d);
                   break ;
                   }
                   // mode affichage
                   /* si vous avez choisi un polynome du second degres votre polynome est .x^2 + .x + c
                   si vous avez choisi un polynome du troisieme degres votre polynome est .x^3 + .x^2 + .x + d */

                   
                   switch (choix_du_degres)
                   {
                          case 1 :
                               printf("votre polynome est le suivant : %ldx^2 + %ldx + %ld \n\n",a,b,c);
                               break ;
                               
                               case 2 :
                                    printf (" votre polynome est le suivant : %ldx^3 + %ldx^2 + %ldx + %ld \n\n" ,a,b,c,d);
                                   
                                    break;
                                    }
                   /*on cherche si il y a une racine evidente :
                        pour le polynome du second degres si il n y a pas de racine ce n est pas grave on fera une decomposition
                        canonique .
                        pour le polynome du troisieme degres si il n y a pas de racine : impossible a resoudre !*/

                       
                             
                                         
                       
                       
                   
        system("PAUSE");   
      return 0;
    }


    je vous remercie d avance
    un petit zero qui a besoin d aide ...
    • Partager sur Facebook
    • Partager sur Twitter
      9 avril 2006 à 17:35:07

      Moi aussi je suis en seconde, mais les équations du 3eme degré ne sont qu'au programme de 1ere je crois. De plus, je n'ai jamais entendu parler de racine évidente, mais d'identité remarquable oui.
      • Partager sur Facebook
      • Partager sur Twitter
        9 avril 2006 à 17:42:16

        pour trouver tes solutions fais simplement un boucle qui verifie si ça vaut 0.

        Mais pour le 2nd degré tu apprendra en 1ere des formules pour les résourde, par contre pour le troisième degré, les formules sont très compliquées (nous en en a résolue une avec des suites (je suis en term S spé Maths)). :)

        Mais je me demande : si les racines sont évidentes, pourquoi utiliser un programme :p ??
        • Partager sur Facebook
        • Partager sur Twitter
          9 avril 2006 à 17:59:45

          C'est sure que si tu n'as que le niveau seconde, ça va être dur de trouver les racines d'un polynômes de degré supérieur à 2. Déjà essaye de regarder cet article sur Wikipédia. A la fin de l'article il y a plusieurs méthodes de résolution qui sont proposées, à toi de faire ton choix !
          Je suis peut-être en train de dire une connerie, mais à ta place, j'aurais essayé de résoudre tes polynômes par dérivation afin de se ramener à un polynôme de degré inférieur, ou encore en résolvant un système d'équations symétriques, pour cela il faut que tu ailles voir du côté de l'artiche "Relations entre coefficients et racines" tout en bas de l'article sur les polynômes dans "Voir aussi". Dans tous les cas, n'essaye pas de résoudre au delà du degré 4 sinon tu vas avoir mal au crane ! :) (A partir du degré 5 ça devient encore plus compliqué, si ça n'est pas déjà le cas pour toi !)
          Je vais essayer de me pencher un peu plus sur la question, commence déjà par lire l'article de Wikipédia, et je reviendrais peut-être avec une bonne méthode pour retrouver "facilement" les racines d'un polynôme de degré supérieur à 2 en C !

          PS : Je suis en math sup, et on a fini un chapitre sur les polynômes il y a quelques semaines ! Je suis pas encore au point, alors je te raconte peut-être des couneries :p
          • Partager sur Facebook
          • Partager sur Twitter
          Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
          Anonyme
            9 avril 2006 à 20:18:37

            Zmatt tu as resond , pourquoi faire un programme pour un polynome qui a une racine evidente ... :-°:euh:
            en faite :
            - ce programme sert simplement d exercice , et j ai ouvert mon cahier de maths et je suis tombe sur les polynomes .
            - effectivement , vu que je suis en seconde je ne connais pas de formule pour resoudre une inequation du 3 e degres en revanche je connais les formules pour le 2e degres :-b+racine de delta /2a
            mais ça doit etre assez dur de faire cela en C ...

            voila merci bcp pour vos reponses !
            • Partager sur Facebook
            • Partager sur Twitter
              9 avril 2006 à 20:53:51

              C'est assez facile à coder en C si l'équation entrée est sous une forme donnée (par exemple "ax^2+bx+c"). Sinon c'est plus dur...
              • Partager sur Facebook
              • Partager sur Twitter
                10 avril 2006 à 2:28:03

                si l'utilisateur rentre la valeure de a, la valeure de b, et la valeure de c, et que tu stoques ces 3 nombres dans un tableau, ou dans une structure Polynome, c'est tres facile de demander à ton programme d'appliquer les formules!
                Deltat = b*b - 4*a*c
                Si Deltat >= 0
                x1 = etc
                x2 = etc

                Par contre, pour les polynômes de degré supérieur, laisse tomber. Il faudrait que t'ai vu la notion de nombre imaginaire (et donc de nombre complexe), que tu verras en terminal si tu fais S, ou que tu verras en 1iere si tu fais STI géni éléctronique
                (Juste histoire de t'apprendre un truc: le nombre imaginair (que je note 'i'), c'est un nombre, don on ne sait pas grand chose, mais la chose qu'on sait c'est que i² = -1)

                Tu n'as pas vu non plus la notion de dérivée, mais la dérivée te permet, en partant d'un polynome de degré quelconque (de degré 3 par exemple), de te ramener à un polynome de degré juste inférieur (de degré 2 dans mon exemple). Mais si tu trouves une solution à ton polynome dérivé, ça ne veut pas du tout dire que c'est une solution pour le polynome de départ!
                Le seul truc, c'est que si tu trouves une solution à ton polynome dérivé, et que cette solution est aussi une solution de ton polynome de départ, alors c'est que c'est une solution "double". Mais si c'est seulement une solution de ton polynome dérivé, alors ça ne veut rien dire du tout.
                • Partager sur Facebook
                • Partager sur Twitter
                  10 avril 2006 à 8:38:16

                  Vouaip. Pense à voir du coté des racines complexes aussi, même si tu ne sais pas encore ce que c'est :p .

                  Citation : Wiki


                  Si GrandDelta < 0, il n’existe aucune racine réelle au trinôme. Cependant il possède 2 racines complexes conjuguées z1 et z_2 = conjugué(z_1). Si GrandDelta = (i*petitDelta)², on peut écrire :

                  z_1 = [-b - (i*petitDelta)] /2a}
                  z_2 = [-b + (i*petitDelta)] /2a}.



                  (c'est la même formule que pour delta positif, mais on passe par un subterfuge pour résoudre le truc...)

                  Qu'est-ce que i ? c'est un nombre un peu spécial, tel que i² = -1.

                  Il faut que tu te renseignes sur les complexes, c'est pas évident à saisir comme concept au début...
                  Ca permet en fait de trouver la valeur de racines de nombres négatifs.

                  Exemple :
                  Racine (-25) = Racine (-1 * 25) = Racine (-1) * Racine (25)
                  = Racine (i²) *5
                  = i * 5

                  Et c'est grâce à ce fameux i qu'on peut calculer la racine de delta même s'il est négatif.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    10 avril 2006 à 8:49:54

                    ah je le savais pas c est tres interressant !
                    a chaque fois que delta etait negatif je disais impossible pas de solution .

                    merci a tous pour vos reponses !!
                    j adore ce site !!!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 avril 2006 à 12:24:34

                      Si je peux me permettre:
                      "a chaque fois que delta etait negatif je disais impossible pas de solution ."
                      C'est tout à fait vrai...
                      Et:
                      "Et c'est grâce à ce fameux i qu'on peut calculer la racine de delta même s'il est négatif."
                      C'est tout à fait vrai aussi... :-°

                      En fait là ou les gentils gens viennent t'embrouiller c'est qu'on ne parle pas du même ensemble de définition, dans R (ensemble des rééls, je suppose que tu connais, par exemple 1, -4, 3/2, 4/3, racine(2), pi, e, ...) un trinome n'a pas forcement de racines, par exemple f(x)=2x²+4x+5 n'en a pas, Delta=b²-4ac=16-40=-24<0 et racine d'un nombre négatif n'a pas de sens, donc on ne peut trouver une valeur de x réélle telle que f(x)=0...
                      Cependant si on se place dans C et qu'on admet que i²=-1, alors -24=(racine(24)*i)², donc Delta=(racine(24)*i)² et on se retrouve avec un nombre (racine(24)*i) dont le carré est égal à Delta qu'on appelle omega (que je n'en entende pas dire que racine(-24)=racine(24)*i, car dans C non plus les racines négatives n'existent pas, même si les carrés négatifs existent...), on a donc deux racines: (-b-omega)/2a et (-b+omega)/2a, soit:
                      (-4-2i*racine(6))/(2*2)=-1-(racine(6)/2)i et -1+(racine(6)/2)i

                      Un trinome a donc toujours 2 solutions dans C, là est la puissance de C, car on trouve pratiquement toujours des solutions dans cet ensemble... ^^

                      Bon et puis désolé pour ce pavé, j'avais juste envie d'expliquer tout ça... Pour pas qu'il y ait de confusion parceque c'est vrai que quand on ne connais pas les complexes ça peut déstabiliser qu'on dise comme ça d'un coup: Mais si il y a des solutions même si Delta<0, il suffit d'utiliser i... :-°

                      [EDIT:] Tout marchait bien dans l'aperçu final mais à parament il aime pas tant que ça les Delta, Racine et omega... J'ai pas le temps de modifier, je ferais peut être ça plus tard...

                      [EDIT2:] Ca y est c'est modifié... ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 avril 2006 à 17:08:48

                        Citation : nonpoluant

                        (Juste histoire de t'apprendre un truc: le nombre imaginair (que je note 'i'), c'est un nombre, don on ne sait pas grand chose, mais la chose qu'on sait c'est que i² = -1)



                        Citation : Piwaï

                        Qu'est-ce que i ? c'est un nombre un peu spécial, tel que i² = -1


                        Hé dis donc Piwaï, tu te ficherais pas un peu de moi??

                        Citation : Ze Killer-Whale

                        En fait là ou les gentils gens viennent t'embrouiller c'est qu'on ne parle pas du même ensemble de définition


                        Enfait, le problème, c'est que en seconde tu ne peux pas comprendre à quel point les ensembles enfait c'est important. Moi même, c'est seulement après le bac que j'ai compris que les ensembles, c'etait l'une des choses les plus importantes, plus que tout le reste.
                        Tu pouras toujours dire n'importe quoi en math, ça peut aussi bien être vrai, et ça peut aussi bien être faux, tout dépend dans quel "monde" (quel ensemble) tu te places. Mais quand t'es en seconde, tu ne te doutes absolument pas de ça, ça te passe au dessus de la tête. Donc j'ai pas trop voulu parler d'ensemble pour ça... (mais bon, moi en même temps j'ai pas vraiment expliqué dans le detail)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 avril 2006 à 13:56:53

                          Euuh Scuse moi nonpoluant j'avais po vu que tu parlais déjà des complexes :p.

                          Sinon Ze Killer-Whale, c'est bizarre ce que tu racontes... ??

                          Prend un nombre complexe z = a + ib avec a=0 et b=5 --> z=i*5

                          z² = (ib²) = -1 * b²

                          Donc ici z² = -25

                          Donc racine carrée (-25) = racine carrée (z²) = z

                          --> Racine carrée (-25) = i*5

                          (J'avais oublié de préciser racine carrée... ca paraissait évident mais bon...)

                          Autre retouche : "Un trinome a donc toujours 2 solutions dans C" --> Bon je chipote : si delta=0 il a une solution double.

                          De toute façon , 2eREP, il est vrai qu'ici finalement tu n'auras pas vraiment besoin des nombres complexes. Il ne servent que pour les degrés supérieurs, même s'ils sont utilisés pour résoudre des équations du second degré. J'ai trouvé un doc ou c'est bien expliqué :

                          http://www.maths-sciences.ac-aix-marseille.fr/maths/maths_07.php

                          --> Télécharger Historique des nombres complexes.
                          Ce n'est nullement obligatoire, mais toujours interessant pour la culture personnelle.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 avril 2006 à 15:33:30

                            Piwaï =>
                            (5i)² = -25 : Oui
                            racine(-25) = 5i : Non
                            Et ce car quelque soit l'ensemble de définition une racine négative n'existe pas... (Par racine sous entendue racine carrée biensure, d'ailleur c'est vrai pour toutes les racines de puissances paires ^^)

                            C'est un peu le même principe que dans R par exemple quand on dit:
                            racine(a)=b avec a et b appartienent à R+ n'est pas équivalent à b²=a mais à b²=a OU (-b)²=a.


                            [EDIT:] Pour le coup de la solution double, tu chipottes effectivement mais c'est vrai que j'aurais pu le préciser... N'empêche qu'il reste que les solutions sont un nombre et son conjugué qui peut être lui même si c'est un réél :-°
                            (Vous venez d'assister à une justification foireuse pour ne pas reconnaitre que j'ai eu tord de ne pas le préciser ^^ )

                            [Re{G}EDIT:] Pour clarifier juste mon exemple de b²=a OU (-b)²=a:
                            Pour l'exemple tu dis que z²=(bi)²=b²*i²=-b²=-25, mais as tu pensé que (-z)²=(-bi)²=(-b)²*i²=-b²=-25 aussi? Et dans ce cas on ne peut dire que racine(-25)=z...
                            C'est pour éviter les problèmes dans ce genre qu'il a été défini que les racines de nombres négatifs n'éxistaient tout simplement pas... D'ailleurs i est défini par i²=-1, jamais par i=racine(-1)... ;)


                            Au fait: On est un peu semi-HS depuis longtemps quand même... Il est un peu parti depuis des siècles en prenant peur 2eREP ^^ C'est pas bien de faire peur aux secondes comme ça... :-°
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              11 avril 2006 à 18:04:04

                              Ze Killer-Whale , tu as raison vous me faites peur avec tous ça !!
                              je comprends pas grand chose a ce que vous me raconter ...
                              j espere comprendre l annee prochaine
                              merci pour vous reponses
                              • Partager sur Facebook
                              • Partager sur Twitter
                                11 avril 2006 à 22:48:10

                                Ok.. Il est possible qu'on me l'ai déjà signalé, mais j'ai du oublier... Etrange, mais bon, dans la justification historique, les mathématiciens partaient justement sur l'hypothèse de racines de nombres négatifs.

                                D'autres part, d'après ton RegEdit, on peut simplement déduire que racine(-25)=z ou racine(-25)=-z.
                                C'est à dire ici racine (-25)=5i ou -5i.

                                Dailleurs, tiens je vais revenir sur le second degré :
                                Prenons la formule pour delta>0
                                x1=-b+racine(delta)

                                Si delta=-25
                                --> x1=-b+5i ou x1=-b-5i

                                De même, avec la 2e formule sur delta>0 :
                                x2= -b - racine(delta)

                                Si delta=-25
                                --> x2=-b-5i ou x2=-b+5i

                                ->4 solutions mais identiques 2 à 2 :

                                On retrouve donc nos deux solutions x1=-b+5i et x2=-b-5i.

                                Donc finalement, qu'on prenne la racine d'un nombre négatif ou pas.. Enfin je dis ca, parce que comme ca je me souviens pas qu'on m'ai interdit de calculer la racine d'un nombre négatif... Du moment que c'étais au milieu des calculs...

                                @++

                                Piwaï

                                PS : 2eREP --> Tu verras pas ça avant le terminale :p
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  12 avril 2006 à 10:03:57

                                  En fait, les profs de maths, que ce soit dans le secondaire ou post-bac, ne recommandent pas d'utiliser les racines négatives, c'est la voie royale pour démontrer des absurdités... Il faut être extrêmement prudent quand on les utilise, notamment avec des degrés supérieurs à deux. C'est pourquoi en règle général, on préfère ne pas les utiliser...
                                  Sinon pour en revenir au sujet, j'ai vu pas mal de codes sur internet (sur cppfrance entre autre) qui font de la résolution de polynômes.. J'ai pas trop eu le temps de regarder tout ça.. 2eREP désolé de t'avoir fait peur ! C'est pas bien méchant les polynômes ! :lol:
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
                                  Anonyme
                                    12 avril 2006 à 10:15:23

                                    iNaKoll merci bcp pour ton site , je le connaissais pas .Et en moins de 5 min de recherche j ai trouve mon bonheur , et j ai compris la faute dans mon programme .
                                    je vous remercie pour votre aide , meme a ceux qui ont essaye de me faire peur en ecrivant des choses que je ne comprenais meme pas a moitie ...

                                    voila le sujet est clos .
                                    le petit zero 2eREP
                                    ce site est super pour 2 raisons
                                    les cours sont tres bien expliqués
                                    et les gens sont adorables
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 avril 2006 à 10:12:03

                                      :D Cool que tu ai trouvé ton bonheur.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      programme pour resoudre les polynomes

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown