Alright, here is a message I posted to Maxima's mail-list: Hola, > > I am sorry if this would come as a completely stupid question but I was > really > amazed at this Maxima's behavior: > > When I searched for solution of goniometric equation `tan(x) = 1`:: > > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > (%i22) to_poly_solve(tan(x) = 1, x); > %pi > - 2 %pi %z30 - --- > 2 > (%o22) %union([x = - ------------------]) > 2 > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > answer was given to me. On the other hand, when I entered what I consider > an > equivalent form of the very same equation: > > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > (%i23) to_poly_solve((sin(x)/cos(x)) - 1 = 0, x); > %pi > - 4 %pi %z40 - --- > %pi (8 %z40 + 1) 2 > (%o23) %union(%if(cos(----------------) # 0, [x = - ------------------], > 4 2 > 3 > %pi > %union()), [x = 2 %pi %z38 - > -----]) > 4 > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > output came out. After a brief inspection one can unravel that this > solution is > in fact identical, however, denoted in very much less elegant & transparent > way. > > This may cause some serious troubles to external programs exploiting > Maxima's > functionality. For instance, I discovered this issue while using Sage's > `solve` > command -- original bug can be viewed at > > https://groups.google.com/forum/?hl=en&fromgroups#!topic/sage-support/ys3CASZ3vrs > > Similarly, `solve` also is not capable of recognizing `sin/cos` form of > `tan`:: > > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > (%i24) solve(tan(x) = 1, x); > > solve: using arc-trig functions to get a solution. > Some solutions will be lost. > %pi > (%o24) [x = ---] > 4 > (%i25) solve((sin(x)/cos(x)) - 1 = 0, x); > (%o25) [sin(x) = cos(x)] > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > Is it somehow possible to alter the output for equivalent forms of such > well-known goniometric functions and thus fix this pseudo-bug? > > --- > Duc Trung Ha >
I've been given these replies: You can use trigreduce to convert sin(x)/cos(x) to tan(x). But I agree > that it would be nice if solve(sin(x)/cos(x)=1,x) gave a reasonable answer. > Besides to_poly_solve, another way to handle trigonometric equations more > systematically is to put them in exponential form, e.g. > rectform(solve(exponentialize(...), ...)). But the result can be ugly in > some cases. > > As for to_poly_solve, it's unreasonable to expect in general that > equivalent solution sets will be syntactically identical. That is a very > hard problem (actually unsolvable in general), though over time, more and > more cases will be handled nicely. > > -s > Professor Barton Willis (who maintains to_poly_solve) gave me this answer: Appending 'simpfuncs = ['expand] helps somewhat; try > to_poly_solve(sin(x)/cos(x) = 1, x, 'simpfuncs = ['expand]); > > I made no particular effort to make to_poly_solve (usually) find > syntactically identical solution sets to semantically identical equations. > That simply > wasn't a design goal. Although it might seem easy to do write a > pre-processor that would do things such as sin(x)/cos(x) --> tan(x), it's > not so > easy to do this in a way that doesn't make some answers much much more > complicated, or to do it without introducing spurious solutions. > > Most days, I'm happy when nobody locates an abject bug in to_poly_solve :) > > Thanks for the interest in to_poly_solve. > > --bw > To which it was responded thus: I think it should be this way. Maxima doesn't automatically convert > sin(x)/cos(x) to tan(x). I don't think to_poly_solve should magically > do that either. > > Although it would be nice for %union and %if were smarter so that %if > would know that cos(%pi/4*(8*%z40+1)) is never zero. Then we'd just > have %union of two values of x. And it would be nice to see that they > differ by just an integral multiple of %pi so that they could be > combined into one. > > Ray It seems to me, that Maxima is doing its work properly, just some solutions are given in rather inelegant way which consequently confuses Sage in giving empty set of solutions... Am I correct with this hypothesis? On Tuesday, April 17, 2012 6:05:34 AM UTC+2, kcrisman wrote: > > > > On Sunday, April 15, 2012 5:09:59 PM UTC-4, Duc Trung Ha wrote: >> >> OK, I WILL try & strive to do my best... >> >> BTW By "Maxima list" is meant Maxima Google support group or something >> else? >> > > They have their own sourceforge list. > > http://www.math.utexas.edu/mailman/listinfo/maxima > -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org
