Richard Fateman wrote:
> Here is a suggestion on simplification, in terms of setting policy.
.....
>
> Deciding that sqrt(4) must be 2 seems harmless, but what policy does
> that imply, for consistency,
> for (4)^(1/4)? Note, incidentally, that some writers consider
> sqrt(x) and x^(1/2) to have different
> meanings.
>
> RJF
>
I agree completely with prof. Fateman here. The main use of a symbolic
computation program is to perform all computations and simplifications
one would have hard time doing by hand otherwise. The question of
correctness is secondary in my opinion. As soon as one considers general
algebraic functions, this idea of using particular branch cuts and
particular "principal values" becomes obviously weak. The only correct way
is to consider the Riemann surface defined by the algebraic function, and
this is not the job of a CAS.
In particular, Maple has a "symbolic" flag to do simplifications without
considering the signs of the radicals, i reproduce here the corresponding
documentation:
Calling Sequence
simplify(expr, sqrt)
simplify(expr, sqrt, symbolic)
.....
- When the name symbolic is specified, square roots are computed without
caring for possible complex or negative values of variables. No csgn() or
signum() will appear in the answer. The purpose of this feature is to
allow simplification of expressions in contexts where the sign has no
meaning, such as when x is an algebraic indeterminate. In particular,
simplify( sqrt(x^2 - 2*x*y + y^2), sqrt, symbolic), will return at random
either x-y or y-x. Furthermore, there is no guarantee that the choice will
be the same as that made by sqrt( x^2 - 2*x*y + y^2, symbolic).
--
Michel Talon