rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

Inverse trigonometric functions bug #1480

Open rtoy opened 2 weeks ago

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:29 Created by sslavi on 2015-07-09 09:38:44 Original: https://sourceforge.net/p/maxima/bugs/2992


Please check the attached screenshot.

The solutions of all these equations should be "x".

I have tried all the available simplification tools, but no way Maxima would reduce the solutions to "x".

Attachments:

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:31 Created by sslavi on 2015-07-09 11:27:48 Original: https://sourceforge.net/p/maxima/bugs/2992/#b9b2


"The solutions of all these equations should be "x"."

"Solutions" and "equations" are misnomers.

I meant to say - the result of all these expressions should be "x".

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:34 Created by dauti on 2015-07-09 13:30:04 Original: https://sourceforge.net/p/maxima/bugs/2992/#c4bc


...if |x|<=1, otherwise not:

(%i1) x:3.1; (%o1) 3.1 (%i2) asin(sin(x)); (%o2) .04159265358979317

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:38 Created by sslavi on 2015-07-09 14:24:46 Original: https://sourceforge.net/p/maxima/bugs/2992/#d7b6


I don't get your point. By definition the inverse of the inverse function of x is x, or (f^-1)^-1=f

If you refer to the fact that these functions are periodic, it doesn't change a thing. The (f^-1)^-1=f rule is still valid in the range of principal values of each of the above functions (which is where the arc functions are defined).

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:41 Created by dauti on 2015-07-09 14:55:52 Original: https://sourceforge.net/p/maxima/bugs/2992/#a888


|x| < 1 was wrong (my fault), in the case of asin(sin(x)), the critical point is %pi/2 (the example was correct). sin(x) is not a bijective function, therefore if |x|>%pi/2 asin(sin(x)) ist not equal x. One can not simplify asin(sin(x)) to x, if |x| > %pi/2.

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:44 Created by sslavi on 2015-07-09 15:10:31 Original: https://sourceforge.net/p/maxima/bugs/2992/#e5e9


Ok, then in order to cover all cases the above inverse functions might return x+2k%pi for sin(), cos() and x+k*%pi for tan(), cot(). Just thinking out loud.

Maxima sometimes warns that "Some solutions will be lost" when using arc functions in some cases. That should be the norm, IMO. So, another correct way of returning the above results could be like this:

(%i1) asin(sin(x)) solve: using arc-trig functions to get a solution. some solutions will be lost. (%o1) x

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:48 Created by sslavi on 2015-07-09 16:14:48 Original: https://sourceforge.net/p/maxima/bugs/2992/#1336


This is a very simple example of how the bug can introduce unnecessary complications into calculations.

Please check the attachment.

Attachments:

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:51 Created by robert_dodier on 2015-08-15 04:03:47 Original: https://sourceforge.net/p/maxima/bugs/2992/#8916


rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:55 Created by robert_dodier on 2015-08-15 04:03:47 Original: https://sourceforge.net/p/maxima/bugs/2992/#8522


The behavior shown in the screen shot is intentional. You can change the behavior of acos(cos(x)) etc either by making assumptions about x (restricting x so that cos is one-to-one), or by setting the triginverses flag to all. See ? triginverses for more info. As this is not a bug, I'm closing this report as "won't fix".

rtoy commented 2 weeks ago

Imported from SourceForge on 2024-07-04 17:02:58 Created by sslavi on 2015-08-24 22:20:57 Original: https://sourceforge.net/p/maxima/bugs/2992/#c8a7


Thank you for the info about triginverses flag. It indeed resolves the question.