Programme d'évaluation d'une fonction en un point

milexarc Messages postés 106 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,

Je cherche à faire une fonction qui permet d'évaluer une fonction en un point.
Par exemple, l'utilisateur entre sa fonction f(x)= 3x + exp(3x+4)
et il dit qu'l veut l'évaluer au point x = 2

j'ai pensé faire quelque chose dans ce genre là
1 - somme
2 - différence
3- produit
4 - quotient
5- composée de fonctions

et les fonctions
6 - constante
7 - polynome
8 - exponentielle
ect ...

Mais je ne vois pas comment faire ... surtout avec les composées de fonctions.

Merci

1 réponse

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    En cherchant un petit peu,
    DuckDuckGo est ton ami
    j'ai trouvé ceci:
    A C++ expression parser By Jos de Jong, December 2007, updated Januari 2012 Licensed under the Apache License, Version 2.0
    En modifiant deux-tros lignes dans main.cpp, cela compile sous g++ (g++ (Debian 6.2.0-13) 6.2.0 20161109)
    et g++-4.4. Juste un avertissement , voir plus bas.
    A l'exécution , je n'ai pas tout testé, mais Ctrl-D semble faire cycler le programme. Je crois qu'il y a un tout petit peu de travail d'amélioration (prise encompte des caractères blancs, white spaces) et de portabilité.

    Exemple:
    johand@osiris: ~/src/math_parser $ g++ -Wall -o parser *cpp
    error.cpp: In constructor ‘Error::Error(int, int, int, ...)’:
    error.cpp:46:29: warning: second parameter of ‘va_start’ not last named argument [-Wvarargs]
    va_start(args, msg_desc);

    johand@osiris: ~/src/math_parser $ ./parser
    Enter an expression an press Enter to calculate the result.
    Enter an empty expression to quit.

    > x = 1
    Error: Unknown variable x (col 1)
    > Error: Value expected (col 1)
    > Ans = 1
    > x=1
    Ans = 1
    > atan(x)*4
    Ans = 3.14159

    Gates gave ^W  sold  you the windows.
    GNU gave us the whole house.(Alexandrin)
    0