diff --git a/docs/construction.mdwn b/docs/construction.mdwn index 116c65d..6f3210b 100644 --- a/docs/construction.mdwn +++ b/docs/construction.mdwn @@ -9,7 +9,7 @@ Ces objets doivent pouvoir être afficher en *txt* ou en *tex* avec les méthode ### Operator Cette classe regroupe les operateurs. Que l'on s'autorise à utiliser. On y accède à partir de deux caractérisiques le symbole et l'arité. -Liste des attributs mportants: +Liste des attributs importants: * arity: nombre d'opérande accepté * priority: où se place l'opérateur dans la règles des priorités parmis les autres opérateurs * isOperator: permet de vérifier que c'est bien un opérateur @@ -34,10 +34,49 @@ Pour définir ces anneaux, il faudra contre avoir les méthodes suivantes: #### Quotient de polynomes (racines) - ## Expression - ## Render +## Simplify-simplified / compute-child + +Dans cette partie, on va expliquer le fonctionnement des mécanismes de simplification des expressions/objets mathématiques. + +La simplification des expressions se fait avec les deux méthodes suivantes: + +* *simplify()* pour: + * un polynôme permet d'accéder à la forme canonique d'un polynôme + * une fraction permet d'avoir la fraction irréductible associée + * une expression permet de faire tous les calculs possibles de cette expression (à la fin il ne doit y avoir qu'un élément de la liste de tokens) +* *compute_exp()* pour: + * un polynôme ou une fraction fait la même chose que $simplify$. + * une expression fait tous les calculs élémentaires de cette expression. + +Ces deux méthodes fonctionnent ensuite sur le même principe. Elles vont faire le calcul qui leurs est attribuée en enregistrant les étapes dans *steps* puis elles retourneront l'objet de fin de calcul à qui sera assigné les *steps* (ce qui nécessitera par exemple de détourner la classe *int*). + +### Tentative d'explications +C'est ce que je voudrai donc le render ne sera peut être pas exactement le même. + + >>> P = Polynom([0,1,2]) + >>> Q = Polynom([1,1,1]) + >>> R = P+Q + >>> print(R) + 3x^2 + 2x + 1 + >>> for i in explain(R): + ... print(i) + 2x^2 + x + x^2 + x + 1 + (2 + 1)x^2 + (1+1)x + 1 + 3x^3 + 2x + 1 + + >>> P = Polynom([[1,2], [3,4]]) + >>> Q = P.simplify() + >>> print(Q) + 7x + 3 + >>> for i in explain(Q): + ... print(i) + 3x + 4x + 1 + 2 + (3+4)x + (1+2) + 7x + 3 + +