LES FONCTIONS DE MATH.H REPROGRAMMÉES

MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 - 26 nov. 2003 à 20:40
w0lverine_xx Messages postés 1 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 18 février 2007 - 18 févr. 2007 à 12:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18234-les-fonctions-de-math-h-reprogrammees

w0lverine_xx Messages postés 1 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 18 février 2007
18 févr. 2007 à 12:17
Merci pour cette source, c'est toujours utile !

((Par contre, asin et acos ne sont pas définies en -1 et 1 c'est normal que Belzel ait une erreur...))
verdy_p Messages postés 202 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 29 janvier 2019
15 juin 2006 à 01:49
Il faudrait ajoter qu'un développement limité n'est pas possible pour les points de discontinuité d'une fonction.
Il faut trouver une autre solution, en passant par une transformée, par exemple pour la fonction tangente aux points proches de PI/2 (modulo PI).
Généralement la transformation utilisera une fonction simple à calculer possèdant la même discontinuité, par exemple l'hyperbole (calculée avec l'opétation d'inversion c'est à dire une division), et en assurant la continuité avec les autres points de la fonction en scindant l'intervalle de définition en plusieurs parties: certaines calculées avec un développement limité simple, d'autres calculées avec la transformée préalable et un autre développement limité de la fonction transformée.

Pour le calcul de l'exponentielle ou du logarithme, on fait de même en tirant partie du fait que les flottants sont représentés en interne sous une forme exponentielle (de base 2, mais la base utilisée n'a pas d'incidence sur le choix de la méthode, étant donné les propriétés des logarithmes et exponentielles), ce qui ramène le calcul à un intervalle restreint (borné par des valeurs finies) où le développement limité de la fonction transformée assure la précision demandée (même aux valeurs extrèmes de l'intervalle si le développement limité utilisé est défini en prenant un point médian convenablement choisi dans l'intervalle) et représentable dans le type flottant du résultat (puisqu'il ne sert à rien de calculer avec une meilleure précision).
verdy_p Messages postés 202 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 29 janvier 2019
8 juin 2006 à 00:20
Un développement limité n'a rien àvoir avec identité remarquable.

* Le développement limité d'une fonction est son expression sous forme d'un polynome au voisinage d'un point à partir desvaleurs de ses dériviées en ce point. C'est une série dont la limite tend vers la fonction. Elle comprend une infinité de termes quisont despuissances de la variable pondérées par les coefficients du polynome, eux-mêmes ne dépendant que desvaleurs des dérivées successives en un seul point. Onconnait précisement les valeurs des dérivées successives en 0 des fonctions trigonométriques (ces valeurs de dérivées sont établies par démonstration de théorèmes à partie des définitions des fonctions, et chaque valeur détermine une identité remarquable, mais le développement limité n'est pasune identité remarquable)

* Une identité remarquable n'est pas forcément polynomiale et s'exprime le plus souvent sous forme d'une formule finie. Une identité remarquable est par exemple: sin(x)=cos(x+PI/2)

Je n'ai pas fait de confusion: une fonction approchante à l'infini n'est PAS mathématiquement identique à lafonction elle-même, donc le développement limité d'une fonction en un point reste différent de la fonction, même s'il permet d'approcher la valeur de la fonction avec un écart aussi petit que l'on veut. L'identité n'est établie QUE pour la valeur de la fonction au même point que celui pour lequel le développement limité a été défini. Pour toutes les autres valeurs, on obtient seulement une valeur approchante.

On utilise les développements limités pour approcher la fonction car on connait à l'avance la limite de précision du résultat,ce qui permet de déterminer le nombre de termes suffisants pour la série du développpement limité.
garslouche Messages postés 584 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
7 juin 2006 à 22:45
Cher verdy_p,

merci pour ces précisions, il me semble que cette fois-ci ton commentaire est constructif car il apporte une vraie méthode pour améliorer ces algorithmes. Je t'encourage d'ailleurs à publier une source qui tiendrait compte de ces techniques.

Je mettrais cependant 2 bémols :
- je trouve ton "Si vous voulez vraiment être utiles" un poil désagréable... et surtout pas très malin! D'après les commentaires qui te précédent j'ai la sensation (et la satisfaction) que plusieurs personnes ont appris qqc grace à cette source. Il est certain qu'il ne s'agit que d'une introduction à l'analyse numérique, mais je crois qu'elle était nécessaire sur un site comme celui-ci.
- je pense que tu confonds "identité remarquable" et "développement limité"... non ?
verdy_p Messages postés 202 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 29 janvier 2019
2 juin 2006 à 01:27
Note finale: unsource C c'est bien si cela applique les techniques ci-dessus. Mais ce n'est souvent qu'une étape avant l'implémentation finale qui fait appel à d'autres optimisations (d'origine non mathématiques elles) destinées à réduire le temps d'exécution. Cette phase demande de l'expérience et fait appel à une bonne connaissance de l'assembleur et des propriétés des processeurs utilisés et des architectures matérielles.

Les meilleures librairies mathématiques actuellement (les plus rapides et les plus précises) pour PC sont celles écrites par Intel (mais elles sont sous licence commerciale). Microsoft a développé ses propres versions, mais elles sont moins bonnes et légèrement moins précises. Le compilateur GNU/C dispose de librairies mathématiques excellentes (meilleures que celles de Microsoft) mais pas encore au niveau de celles d'Intel.

Toutefois, dèsqu'on sort du cadre des calculs numériques sur les flottants normalisés IEEE, les librairies Intel sont insuffisantes. A ce jour, les meilleures librairies en haute précision sont celles de MathLab (licence commerciale), loin devant SCILab (commercial aussi), en attendant que le projet GNU améliore son projet concurrent et libre.

Si vous voulez vraiement être utiles, participez aux projets mathématiques GNU... Il y a beaucoup à apprendre, et dans les discussions vous aurez accès àdestas de travaux de référence libres publiés par des chercheurs mathématiciens d'universités publiques (donc travauxlibres de droit) ou publiés depuis longtemp (travaux désormais libres de droit, leurs brevets ayant expiré).
Afficher les 27 commentaires