Polynomes, zeros et expansions

Description

Ces deux petites "librairies" m'ont été très utiles durant un gros projet: il s'agissait de déterminer le plus petit zero d'un polynom dans un interval donné. Le problème est que la précision "double" ne suffisait pas pour le calcul des coefficients de ce polynômes.

les fichiers sources contiennent donc:

Un fichier "polynom.h", qui traite en tant que template les polynomes. Vous pouvez faire des polynômes de ce que vous voulez, double, int, ... et surtout de ce qui suit :-) . Les différents opérateurs ont été défini (+,-,*,%,=) et permettent de travailler de manière intuitive.
Mais le gros plus de ce fichier est la fonction appelée zeroMin: vous lui donnez un polynome à coefficients réels (sans racine multiple) DE N'IMPORTE QUEL DEGRE, un intervalle, et il vous donne le plus petit 0 du polynome dans cet intervalle (s'il y en a un). Cette fonction utilise de manière subtile la suite de Sturm du polynome (chercher sur google si vous voulez en savoir plus), et à partir de celà il n'est pas difficile de trouver tous les zeros...

Deux fichiers "Expansion.h" et "Expansion.cpp". Ce sont des fichiers qui contiennent la description d'un nouveau type pour représenter un réel sur une machine, les expansions. A partir des doubles, vous pouvez faire toutes les opératios +,- et * que vous voulez, vous gardez la précision machine! De plus, la précision est adaptative, vous en avez plus seulement quand vous en avez besoin. C'est une excellent alternative au "long double" et "long long double", dont le désavantage est qu'il n'y a pas de division... Si les opérations +,- et * vous suffisent, préférez les expansions!
Tous les détails sont donnés sur un lien cité dans le .h

Conclusion :

  • Si j'ai le temps, je vais finir la fonction de compression des expansions, il y a un bug pour l'instant dedans (mis en commentaires)
  • Il faudrait aussi refaire une beauté à la division polynomiale

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.