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

Fermé
milexarc Messages postés 92 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 2 décembre 2016 - 2 déc. 2016 à 18:30
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 3 déc. 2016 à 18:18
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
A voir également:

1 réponse

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 3/12/2016 à 18:43
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