error with find_root when functions containing more than one built-in constant like %pi
Subject: error with find_root when functions containing more than one built-in constant like %pi
From: Stavros Macrakis
Date: Tue, 30 Jan 2007 10:32:43 -0500
> A motivation for simplifying %e^x --> exp(x) is that exp(x) is the
> more fundamental notion; that exp(x) = %e^x for some number %e
> is a theorem, not a definition.
Let's not get into philosophical discussions of what is fundamental or
not. Maxima is a pragmatic system for doing mathematics. Whether we
want to represent a^b as exp(b*log(a)) (should that depend on whether
b is integral or rational or real? -- after all integer exponentiation
is more "fundamental" than real exponentiation) or exp(x) as %e^x or
for that matter sin(x) as a complex exponential in the end comes down
to what makes the most sense for users as well as implementors.
> > I would argue that the problem is in the numerical evaluation
> > (numer, float, and float() in particular), not with the %e^x notation.
>
> So long as %e^x is the preferred form, we will have to treat %e
> differently from other constants (or tolerate numeric values
> where there are none at present).
I do not believe that is true.
> Well, what the code looks like is a secondary consideration.
> How Maxima behaves from the user's perspective is the main question.
I agree. How do you propose to explain to the user that exp(x) and
%e^x behave differenty? That factor(exp(2*x)-1) doesn't work? Would
integrate, diff, limit, taylor etc. take both exp and %e^ on input and
return a mix of exp and %e^, or would they insist on exp on both input
and output?
> > > Well, who knows. If the user writes ev(%e^x/x, numer), then it's
> > > no longer Maxima's problem if it's not useful.
> >
> > Huh? Why should the user expect ev(exp(x)/x,numer) to behave any differently?
>
> Because it exp(x)/x contains neither a literal number nor a
> symbolic constant (while %e^x/x contains a symbolic constant).
Huh? So what? If the user wants a numeric result, the user should
get a numeric result regardless of how the expression is built. Do
you think that sin(x+5/7*%pi),x=2/3,numer should not return a floating
point number because it contains a symbolic constant?
-s