Programmation

Accueil

Source VB5

Racines réelles et complexes d'un polynôme

3 Applications

1 Algorithme

2 Programme

3 Applications

4 Code allégé VB5


  Le menu du programme Racines comporte 17 démonstrations de ses performances ... et de ses insuffisances.


1

  Cette première démo se rapporte à un petit problème classique, d'apparence triviale, conduisant à une équation du quatrième degré :

  On se propose de dresser un échelle de 5 mètres de long, contre un mur encombré d'un obstacle inamovible d'un mètre de haut et un mètre de profondeur. Quelle est la hauteur maximum que l'échelle puisse atteindre?

  L' échelle forme l'hypoténuse du triangle rectangle x0y , elle comporte deux parties, h1 et h2, telles que :

où h1 et h2 sont les hypoténuses de deux triangles rectangles semblables au précédent, elles valent donc :

d'où

  Avec Pythagore :

  Ces deux équations conduisent à :

équation du 4eme degré dont  Racin.exe  donne les 4 racines réelles 

  Il est effectivement possible de tracer 4 segments de 5 mètres de longueur sur 4 droites passant par l'arête du carré. Un seul, bien sûr, répond à la question.


2

x7 - 14 x5 + 49 x3 -36 x = 0

7 racines réelles : -3 , -2 , -1 , 0 , 1 , 2 et 3
Erreurs absolues <10-12


3

x7 - 21 x6 + 175 x5 -735 x4 + 1624x3 - 1764 x2 + 720 x = 0

7 racines réelles :  0 , 1 , 2 , 3 , 4 , 5 et 6
 Erreurs absolues <10-12


4

z100 - 1 = 0

100 racines centièmes de 1
Tous les modules  valent  1
Tous les arguments sont multiples de /50
Erreurs <10-12


5

z100 + 1 = 0

100 racines centièmes de -1
Tous les modules valent  1
Tous les arguments sont multiples de /100
Erreurs <10-12


6

z19 + 5 z18 + 52 z17 + ... + 518 z + 519 = 0

19 racines dont une réelle  5 
Tous les modules valent  5
Tous les arguments sont multiples de /10
Erreurs <10-12


7

  Le module d'un nombre complexe sera entier si ses composantes réelle et complexe appartiennent à un triplet pythagoricien.

  Le premier triplet pythagoricien, le très classique :

32 + 42 = 52

conduit aux 8 nombres complexes

3 i 4      4 i 3

  Dans le plan complexe, ces nombres se placent tous sur un cercle de rayon 5 et sont respectivement solutions de :

z2 - 6z + 25 = 0
z2 + 6z + 25 = 0
z2 - 8z + 25 = 0
z2 + 8z + 25 = 0

dont le produit

z8 + 1054 z4 + 390625 = 0

admet ces mêmes solutions

  De même le second triplet  ( 5 , 12 , 13 )  conduit à :

z8 + 478 z4 + 815730721 = 0

dont les 8 solutions

  5 i 12      12 i 5

ont des modules égaux à 13.

  Le produit de ces deux équations donne une équation du 16ème degré cumulant ces 16 racines :

z16 + 1532 z12 + 816625158 z8 + 859966898684 z4 + 318644812890625 = 0

  Elle constitue un bon test : degré relativement élevé, grand nombres et solutions entières aisément vérifiables.
  Toutes les solutions sont restituées avec des écarts inférieurs 10-12


8

  Cet exemple permet d’observer les limitations induites par un grand nombre de racines doubles :

z78 + 2 z77 + 3 z76 +...+ 3 z2 + 2z + 1 = 0

  1 racine réelle double : -1
et 38 racines complexes doubles
  Modules compris entre 0.999 987 et 1.000 013
  Tous les arguments sont multiples de /20 avec des
erreurs relatives avoisinant 3 10-7


9

  La proximité de deux racines affecte peu la précision des résultats.
 1+   et  1-   sont les 2  racines de :x2 - 2x + 1-2 = 0
  En prenant = 10-4  

 x2 - 2x + 0.999 999 99 = 0

  Le programme restitue :

  0.999 899 999 995

1.000 100 000 005

Soit des erreurs de 5 10-12


10

  L'effet s'aggrave pour trois racines voisines.
1+ , 1 et  1-       avec = 10-4    conduisent à :

x3 - 3x2 + 2.999 999 99 x - 0.999 999 99 = 0

3 est négligé.

  Les trois solutions deviennent :

0.999 899 949 697
1.000 000 100 692
1.000 099 949 621

les erreurs atteignant   5 10-8


11

 à

13

Affinement des racines réelles multiples

 


14

 à

16

 Affinement des racines complexes multiples


17

Etendue maximale des valeurs des coefficients

z18 + 10 z17 + 100 z16 ... + 1016 z2 + 1017 z + 1018 = 0

19 racines dont une réelle -5 
Tous les modules valent  5
Tous les arguments sont multiples de /9.5
Erreurs <10-12


18

Au delà de puissance 18, apparaissent des racines totalement erronées.

z19 + 10 z18 + 100 z17 ... + 1017 z 2 + 1018 z + 1019 = 0


Extraire la page pour l'enregistrer ou l'imprimer