I only use maxima a couple of times per year, so I may have a pilot error. However, it seems that "radcan" may have a bug. I am using it to compare the differentiated result of an integral against the expression that is integrated.
After using "ratsimp" on the differentiated integral result - which when evaluated for a specific set of parameters shows equality with the expression to be integrated - "radcan" is invoked and equality is lost.
Thank you for any help - hope I have submitted this in the proper manner.
I have seen a similar result in other cases using ctensor and sqrt factors of differences.
When radcan switches a sign of a factor in the sqrt to cancel with another factor, it should multiply the sqrt by i so that this sign change is remembered. If an even number of sign changes of divison were made the i s would cancel. but if an even number of sign changes of products made a square the result should be the product of two i , which will be minus and not a plus. If it chooses plus instead of minus the result has changed.
This is correct behavior by radcan. The bug is that it is not documented in the manual.
See the original paper or this discussion thread.
Basically, the problem is that
sqrt
is a multivalued function.A simpler example where radcan(ex) doesn't match ex numerically: