FACTO
renvoie au niveau 3 la liste
des variables, 2 le polynôme-liste
, au niveau 1 la liste des facteurs et des
multiplicités
(sous forme symbolique),
de sorte que
Notez que an peut être factorisé également. Exemple:
'(X-1)^2*(X^2+2*X+1)' -> 3: { X } 2: { 1 0 -2 0 1 }, 1: { 'X-1 2 'X+1' 2 }
Le second utilitaire de factorisation est FROOTS
déjà décrit.
Ce dernier peut également déterminer numériquement les racines
d'un polynôme
à coefficients réels ou complexes. Il regroupe ensuite par paires
les racines numériques pour déterminer s'il s'agit de racines d'une
équation de degré 2 à coefficients entiers.
La méthode utilisée est celle
de Bairstow dans le premier cas et celle de Laguerre dans le second cas.
Le contrôle des itérations s'effectue par : le programme
effectue un test par rapport à et effectue encore 2 itérations
lorsque ce test a joué. Lorsque ce programme s'exécute (et que l'indicateur
1 est armé), l'écran affiche les dernières racines trouvées, et la
valeur actuelle du test. Vous pouvez ainsi détecter les cas où
l'algorithme ne converge pas. Les touches de menus vous permettent
alors d'agir. Les touches E*10
et E/10
permettent
de modifier d'un facteur 10 la valeur de .
Par exemple, pour un polynôme ayant des racines
multiples, le test se stabilise à des valeurs de l'ordre
de 10-8 ou de 10-6 pour des racines doubles ou triples.
Il vous suffit alors d'augmenter (en tapant plusieurs
fois sur E*10
).
Si l'algorithme de Bairstow tourne en rond, vous pouvez taper sur
RAND
qui redémarre l'algorithme avec des valeurs prises au
hasard, vous avez alors des chances de
sortir l'algorithme de ce cercle vicieux. En dernier ressort, vous
pouvez rentrez dans le polynôme un coefficient complexe de partie imaginaire
nulle afin d'obliger le programme à utiliser l'algorithme de Laguerre.
Exemple:
{1 -21 183 -847 2196 -3024 1728 } .0001 3 FROOTS -> environ { 3 3 3 4 4 4 }Ici le polynôme admet 2 racine triples, donc les résultats sont très approximatifs, d'où l'intérêt de l'algorithme de recherche de racines évidentes: