Modélisation des expressions arithmétiques parenthésées et dérivées
Le but de cette partie est de modéliser les expressions arithmétiques
parenthésées, puis de permettre le calcul symbolique de leurs dérivées.
Construction et affichage d'une expression mathématique
Créer le modèle UML des expressions tel qu'il a été défini en TD :
- Créer le modèle avec les termes, les identificateurs, les
expressions unaires et binaires et leurs opérateurs, les
constantes.
- Définir la méthode eval.
- Générer le code correspondant à votre modèle.
- Implanter la méthode eval dans
l'ensemble des classes.
- Instancier les classes et construire un arbre d'objets pour tester.
Dérivation d'une expression mathématique
Modéliser puis implémenter les opérations de dérivation des expressions par rapport à une variable. Ces opérations doivent prendre en paramètre la variable de dérivation et retourner l'expression dérivée. Attention : la dérivation ne doit rien afficher à l'écran, c'est le rôle de la méthode
eval de la première partie. Le calcul de la dérivée d'une expression se fait en appliquant les règles usuelles de la dérivation précisées ci-dessous. On ne considérera que les opérateurs somme, produit, et moins unaire. On ne cherchera pas à simplifier le résultat obtenu. Par exemple, la dérivée par rapport à x de (x+1) est l'expression non simplifiée (1+0). Vous testerez indépendemment chacune des classes puis au moins avec les expressions suivantes :
- (x + 1)
- (2*x + 3*y)
- (-(x)+(x+2*x))
Quelques formules de dérivation (par rapport à x) :
- Dérivée d'une constante : h(x)=a => h'(x)=0
- Dérivée d'une variable : h(x)=x => h'(x)=1 ; h(x)=y => h'(x)=0
- Dérivée d'une expression négative : h(x)=-f(x) => h'(x)=-f'(x)
- Dérivée d'une somme : h(x)=f(x)+g(x) => h'(x)=f'(x)+h'(x)
- Dérivée d'un produit : h(x)=f(x).g(x) => h'(x)=f'(x).g(x)+f(x).g'(x)