IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algorithme de dérivation de fonction mathématique


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Par défaut Algorithme de dérivation de fonction mathématique
    Bonjour ,

    Je voudrais savoir s'il existe un algorithme pour calculer les derivées de fonction mathématiques je dois faire un programme en Java mais je n'ai trouvé comment le faire pour le moment !

    Merci d'avance

  2. #2
    Membre chevronné Avatar de pascalCH
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    Bonjour,

    il s'agit de
    1. déduire la fonction f'(x) d'une fonction f(x) sous sa forme mathématique ?
    2. d'évaluer la valeur de la dérivée d'une fonction pour un x particulier ?
    3. d'évaluer la dérivée en continue ?

    pour le 2 : f'(x) = (f(x+dx) - f(x-dx)) / (2. * dx) avec dx correspondant au plus petit nombre possible dans le programme (ou epsilon en java , c# etc.)

  3. #3
    Membre expérimenté

    Homme Profil pro
    Consultant en architecture
    Inscrit en
    Décembre 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en architecture
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 82
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pascalCH Voir le message
    pour le 2 : f'(x) = (f(x+dx) - f(x-dx)) / (2. * dx) avec dx correspondant au plus petit nombre possible dans le programme (ou epsilon en java , c# etc.)
    Attention, dx ne doit surtout pas correspondre au pas le plus petit dans le programme!
    Imaginons que nous ayons f(x) = 1.4x. Avec les arrondis, si dx est le pas le plus petit du programme, on va se retrouver avec une dérivée qui vaut 1, car 1.4*dx sera arrondi à dx, qui est le pas le plus petit, et donc 1.4*(x+dx) sera arrondi à 1.4x+dx. Idem pour 1.4(x-dx). Ce qui fera au final 2dx/dx, donc 1.

    Par contre, effectivement, le pas doit être très petit si on veut utiliser cette méthode, et doit être un compromis entre les erreurs d'arrondis, et le fait que plus dx est grand, moins le calcul lui-même est précis.

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour,

    Si tu cherches à reproduire la façon dont un bachelier calcule ses dérivées, il faut que tu appliques la formule incontournable de la "dérivée de fonction composée".
    (fog)'=(f'og) x g'
    Autrement dit, si l'image de x est f(g(x)), la dérivée pour ce point (si elle existe) sera f'(g(x))g'(x).

    Il ne reste plus qu'à connaître les dérivées élémentaires pour pouvoir faire un programme de dérivation.

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 283
    Par défaut
    @Floderalab : oui, mais, heuuu, là tu causes d'une formule d'un temps que les moins de vingt ans ne peuvent pas connaître. Même en "S", ça a disparu.
    Mais sinon, si tu veux, hein ?

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Même en "S", ça a disparu.
    Je ne comprends pas cette phrase. Comment cette formule aurait pu disparaître alors qu'elle est fondamentale ? C'est celle qui permet de ne trouver aucune dérivée méchante. Même f(x)=sin(1/x).
    f'(x)=cos(1/x)(-1/x²)

    Après, qu'un programme informatique se retrouve avec de très longues expressions non simplifiées est un autre problème.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de Recherche

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut
    +1 GeoffreyOnRails

    Sinon pacalCH a raison : le choix de l'algo dépend de ce que tu veux exactement. J'ajouterais que la tête des fonctions à dériver compte aussi pas mal : je ne sais pas trop ce que tu entends pas "fonction mathématiques" (est-ce que c'est défini sur R ? combien de fois est-ce que tu peux dériver ? est-ce que c'est "méchant" (ex : sin(1/x) ou un truc dans le genre) ?).

  8. #8
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    Le plus simple est de faire appel à la formule des différences finies :
    Formule mathématique
    où h est le "pas" qui est un nombre petit devant 1 (par exemple 0.0001)
    Tutoriels et FAQ TypeScript

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/12/2011, 15h36
  2. codage du calcul de dérivée d'une fonction mathématique
    Par pispa2005 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 08/01/2005, 20h54
  3. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36
  4. Dérivation dune fonction
    Par srvremi dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/07/2002, 14h21
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo