Cette discussion confond deux choses différentes:

a) les opérateurs d'égalité
b) la simplification des expressions

Il y a deux opérateurs d'égalité distincts en Maxima: "=" et equal().  a=b compare la forme de deux expressions, equal(a,b) en compare la valeur. On peut apprécier ou pas la notation utilisée, mais la distinction est fondamentale.

Quelques exemples élémentaires:

is( 0.5 = 1/2 ) => false
is( equal( 0.5, 1/2 ) ) => true

is( 2*log(2) = log(4) ) => false
is( equal( 2*log(2), log(4) ) ) => true

Si "=" renvoie toujours soit true soit false, equal() n'y arrive pas toujours:

is(equal(sin(x)^2+cos(x)^2,1)) => unknown

... même si Maxima fournit pleins de méthodes pour résoudre cette question explicitement:

ex: sin(x)^2+cos(x)^2 - 1$
trigsimp(ex) => 0
ratsimp(trigreduce(ex)) => 0
ratsimp(exponentialize(ex)) => 0
taylor(ex,x,0,100) => 0
zeroequiv(ex,x) => true

On peut se demander pourquoi ces méthodes ne sont pas appliqués par equal().  Certaines d'entre elles (zeroequiv, taylor) sont des heuristiques qui peuvent dans certains cas donner un résultat faux.  D'autres sont évitées par souci (probablement exagéré sur les machines modernes) d'efficacité.

... Ce qui conduit à la question de la simplification par défaut. S'il est vrai que is( 2*log(2) = log(4) ) => false, il est aussi vrai que is(sqrt(2)/2 = 1/sqrt(2)) => true.  Pourquoi? Il se fait que Maxima applique certaines transformations sur toute entrée (et resultat intermédiaire): 2+5 est simplifié en 7, sqrt(2)/2 en 1/sqrt(2), et sin(%pi/6) en 2. Par contre, les concepteurs du système ont décidé de ne pas appliquer par defaut la transformation sin(%pi/8) => sqrt(sqrt(2)-1)/2^(3/4) ni 2*log(2) => log(4)....

Est-ce plus clair?

             -s

2012/2/26 JihemD <jihem01@online.fr>:
> Le 26/02/2012 16:46, dominique.drux@orange.fr a écrit :
>
> Bonjour,
> Maxima ne simplifie pas spontanément les expressions contenant des
> constantes, sauf si on lui demande, encore faut-il qu'il y ait un programme
> spécifique comme "simplification de radicaux".
> Le calcul ci-joint peut vous éclairer.
> Dominique
>
> -----Message d'origine----- From: JihemD
> Sent: Sunday, February 26, 2012 2:06 PM
> To: maxima-lang-fr@lists.sourceforge.net
> Subject: [Maxima-lang-fr] nombre d'or
>
> Bonjour à tous
>
> pourquoi, concernant les expressions suivantes contenant le nombre d'or
> ( %phi ), Maxima répond-t-il par 'false' ? :
>
> is ((%phi * %phi) = (%phi + 1));
>
> is (%phi = rhs(solve([x * x - x - 1 = 0],[x])[2]));
>
> pourtant :
>
> float(%phi), numer;
>
> renvoie bien l'approximation 1.618033988749895 !
>
> ai-je oublié de charger un module ?
>
> merci de vos éclaircissements
>
> JMarc D.
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Maxima-lang-fr mailing list
> Maxima-lang-fr@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/maxima-lang-fr
>
>
> après quelques explorations, concernant les exemples dans le PDF :
> 1) si on suit le fichier help de wxMaxima concernant la simplification de la
> constante %phi
>
> "Constant: %phi 
>
> %phi represents the so-called golden mean, (1 + sqrt(5))/2. The numeric
> value of %phi is the double-precision floating-point value
> 1.618033988749895d0.
>
> fibtophi expresses Fibonacci numbers fib(n) in terms of %phi.
>
> By default, Maxima does not know the algebraic properties of %phi. After
> evaluating tellrat(%phi^2 - %phi - 1) and algebraic: true, ratsimp can
> simplify some expressions containing %phi."
>
>
> donc avec
>
> tellrat(%phi^2 - %phi - 1);
> algebraic: true;
>
> ratsimp(%phi^2-%phi-1);
> renvoie bien 0
>
> pour l'exemple avec les log de constantes :
>
> is(3*log(2)-log(8)=0);
> renvoie false
>
> mais en insérant 'logcontract' :
>
> is(logcontract(3*log(2)-log(8))=0);
> renvoie true !
>
> Mais ça n'est pas vraiment intuitif ....
>
> cordialement
>
> Jean-Marc Detourmignies
>
>
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Maxima-lang-fr mailing list
> Maxima-lang-fr@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/maxima-lang-fr
>