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 <[email protected]>:
> Le 26/02/2012 16:46, [email protected] 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: [email protected]
> 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
> [email protected]
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/maxima-lang-fr
>
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Maxima-lang-fr mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/maxima-lang-fr

Répondre à