Barton Willis <willisb at unk.edu> writes:
>>(%i31) esolve(eq, x) := block(numer:true, defrule(r1, %i, 0),
>> expand(to_poly_solve(eq, x)), part(apply1(%%, r1),1))$
>
> (a) There is no guarantee that the first solution returned by to_poly_solve is real.
>
> (b) The function esolve globally sets numer to true; I would guess that you would like to change
> the definition of esolve to something like block([numer : true], .....
>
> (c) Every time esolve is executed, the rule r1 is re-created. Actually, instead of a rule, esolve
> could
> simply substitute 0 for %i.
Thanks for these observations. I am a beginner in maxima.
> Keepin' it real isn't easy:
>
> (%i3) esolve(x/sin(x)=0,x);
> part: fell off the end.
>
> (%i4) esolve(x^2+1,x);
> (%o4) [x=0]
Actually I use it only for equations of the form A+Be^Ct = D, that's why
I called it *e*solve.
--
Piet van Oostrum <piet at vanoostrum.org>
WWW: http://pietvanoostrum.com/
PGP key: [8DAE142BE17999C4]