Hello Laurent and Joal,
> > (%i4) sin(eq);
> > (%o4) sin(a = b) ???? The function is applied on full
> > equation and not on each members
> >
> > This is the case for all trig, inverse trig, exponential, log and power.
> >
> > Is this a choice?
Well, Maxima typically tries to apply identities which are
obvious and/or well-known; other identities have to be
applied explicitly by the user. For better or worse this is
clearly a matter of taste. That said, if you come up with
some change which makes sense to you, feel free to
make an argument for it on the mailing list, and if the
developers can be stirred then the change will go into
the source code.
Perhaps map yields the expected result here --
map (sin, a = b); => sin(a) = sin(b) .
> I haven't been using maxima very long, but I have noticed that when it
> can't understand an expression, it returns the expression unmodified.
> What is the mathematical meaning of sin(a = b)?
It's up to you to decide that. One of Maxima's fundamental
assumptions is that you know what you're doing;
Maxima doesn't try (not very hard, anyway) to keep you
from doing something silly. In practice, this assumption
is extremely useful, because what may seem silly at
first turns out to be meaningful later on.
It is useful to view Maxima first and foremost as a system
for transmogrification of expressions, in which some rules
happen to coincide with conventional notions of mathematics.
> The following works well though;
>
> sin(a),eq;
> (Returns sin(b))
> sin(b),eq;
> doesn't work (returns sin(a)), but this can give the "proper" result if
> given as:
> sin(b),solve(eq,b);
The Maxima evaluator won't try to derive assumed values
from equations; in an input like expr, foo;
foo has to be a = expr_1, b = expr_2, ...,
and not a^2 + b^2 = expr_3 or something like that.
Hope this helps,
Robert Dodier