Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2279 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Dérivation d'une fonction en python

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dérivation d'une fonction en python

n°1108626
BaDaBoOm
Posté le 05-06-2005 à 12:58:53  profilanswer
 

Bonjour est-il possible de dériver une fonction mathématique en python ?
 
 
par exemple x-> x^2+ln(x)
 
je n'ai rien trouvé dans le module maths  
 
merci pour votre aide

mood
Publicité
Posté le 05-06-2005 à 12:58:53  profilanswer
 

n°1108799
dividee
Posté le 05-06-2005 à 17:03:05  profilanswer
 

Numériquement ? C'est pas très compliqué:

Code :
  1. def derivative(f, epsilon=1e-6):
  2.     eps = epsilon/2
  3.     def g(x):
  4.         return (f(x+eps) - f(x-eps)) / epsilon
  5.     return g
  6. import math
  7. def f(x): return x*x + math.log(x)
  8. g = derivative(f)

n°1116313
BaDaBoOm
Posté le 10-06-2005 à 22:43:33  profilanswer
 

merci

n°1152180
william o'​connor
Posté le 18-07-2005 à 09:18:50  profilanswer
 

Pour être précis, ce genre de solution consiste par approcher la dérivée analytique, exacte donc, par une dérivée numérique.  Si tu veux augmenter la précision numérique de ce genre de dérivée, tu peux utiliser la technique du Romberg qui permet d'éliminer les contaminations des ordres supérieurs:
 
f'(i,j) = (4**j*f'(i,j-1)-f'(i+1,j-1))/(4**j-1)  
avec
f'(i,0)=(f(x+dx)-f(x-dx))/(2*dx) et epsilon=2**i*epsilon
 
En pratique, des premières estimations de la dérivée numérique sont calculée pour des "dx" croissant (i=0,1,2,...): f'(0,0),f'(1,0),f'(2,0). Ces valeurs sont ensuite combinées entre elles suivant la première équation: f'(0,1)=(4*f'(0,0)-f'(1,0))/3, f'(1,1)=(4*f'(1,0)-f'(2,0))/3, f'(0,2)=(16*f'(0,1)-f'(1,1))/15, ...
Une analyse du triangle de valeurs ainsi obtenu te permet en outre de savoir si l'epsilon choisi était trop petit (problème de précision numérique due à la machine) ou trop grand (encore trop de contamination des ordres supérieurs).
 
Une solution procurant la valeur exacte est d'employer les nombres de Rall.  D'un point de vue informatique, la valeur de la fonction en un point, f(x0,y0,...), est stockée ainsi que l'ensemble des dérivées premières par rapport aux différents paramètres, (df/dx(x0),df/dy(y0),...).  La dérivation d'un fonction quelconque est effectuée par récurrence en suivant les règles mathématiques de dérivations pour l'addition, la multiplication, ...  (voir par exemple: http://www.american.edu/academic.d [...] todiff.pdf, ou faire des recherches sur google avec les mots clés: Rall number differentiation).  Si jamais cela t'intéresse, j'ai réalisé le code C++ de ce genre de nombre.  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Dérivation d'une fonction en python

 

Sujets relatifs
Fonction indefinie [regler] probleme de recup d'emplacementstocker le résultat d'une fonction javascript dans une var php
[vba]cherche fonction equivalente de Access 97 --> 2003[PHP] probleme avec la fonction sleep()
lien d'une image en fonction d'une table SQLcration d'un bouton et association d'une fonction a ce code
fonction GetFolderName() et paramètre pidlRootla fonction unary_exp();
[résolu] fonction (mail) - bizarrerieNews avec la fonction include
Plus de sujets relatifs à : Dérivation d'une fonction en python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR