je propose que tu ecrives un parseur, qui te convertisse
un texte entre par l'utilisateur en une structure de donnee adaptee au calcul (par exemple sous forme d'un arbre)
ex: 1 + 2 * cos(x+1)
ca devient un flux de mot cles ou de valeurs 1>+>2>*>cos>(>x>+>1> )
que tu empiles dans un arbre
+
/ \
1 *
/ \
2 cos
|
+
/ \
x 1
Puis tu commences par evaluer les feuilles en remontant, tu obtiens la valeur de la fonction pour differentes valeurs de x que tu traces a l'ecran..
Remarque hors sujet: Je pense qu'en Caml ca doit etre particulierement elegant a programmer .
Sinon si tu debutes tu peux commencer par donner directement tes
fonctions a tracer sous forme d'arbre a l'interieur de ton programme ou dans un format de fichier adapte:
add {1 mult{2 cos {add {v 1} } } }
par exemple..
Sinon la derivation tu peux appliquer
des schemes de derivation sur chaque noeud de ton arbre..
(a+b)' -> a'+ b'
(a * b)' -> a'* b + a * b'
cos(a)' -> -a'*sin(a)
Apres tu pourras te pencher sur la simplification,
sur la factorisation, l'elimination de termes qui s'annulent etc..
A+
LEGREG