Waldek Hebisch schrieb: > > email@example.com wrote: > > > > Waldek Hebisch schrieb: > > > > > > (1) -> integrate((asin(x/a)*asin(x/a)^(1/2))/((-1*x^2+a^2)^(1/2)), x) > > > > > > +-------------------+ > > > x 2 | x > > > 2atan(------------) |2atan(------------) > > > +---------+ | +---------+ > > > | 2 2 | | 2 2 > > > \|- x + a \| \|- x + a > > > (1) ------------------------------------------ > > > +-+ > > > 5\|2 > > > Type: Union(Expression(Integer),...) > > > (2) -> integrate(acos((x/(x+1))^(1/2)), x) > > > > > > +-----+ > > > 1 | x +-----+ > > > (2) (x + 1)atan(----------------) + |----- \|x + 1 > > > +-----+ \|x + 1 > > > | x +-----+ > > > |----- \|x + 1 > > > \|x + 1 > > > Type: Union(Expression(Integer),...) > > > > > > > These are correct antiderivatives for integrands > > > > INT(ATAN(x/SQRT(a^2 - x^2))^(3/2)/SQRT(a^2 - x^2), x) = > > 2/5*ATAN(x/SQRT(a^2 - x^2))^(5/2) > > > > INT(ATAN(1/(SQRT(x/(x+1))*SQRT(x+1))), x) = > > (x+1)*ATAN(1/(SQRT(x/(x+1))*SQRT(x+1))) + SQRT(x/(x+1))*SQRT(x+1) > > > > that differ from the original ones in the omission of piecewise constant > > prefactors. I guess such a rewriting of integrands in FriCAS could take > > place as a preparatory step or, perhaps more likely, implicitly during > > their passage through the Risch mill. > > Note that as real functions asin(x/a) and atan(x/sqrt(a^2 - x^2)) are > defined on the same domain (that is for a > 0 interval [-a, a]) and > take the same values. > > The same for acos((x/(x+1))^(1/2)) and atan((x/(x+1))^(1/2)*(x+1)^(1/2)). > > FriCAS assumes that functions to integrate are real and ATM uniformly > performs such changes. > > You of course may have your own opinion, but IME for complex > integration paths one usualy wants to choose version which > is analytic along the path (if possible). This usually > requires separate resoning.
Even when the integration variable and parameter 'a' are restricted to the real axis, neither of these two antiderivatives can be verified by differentiation, on FriCAS or elsewhere. But it is up to you to decide if they are integrated 'correctly' within the framework of FriCAS, of whose 'peculiarities' users should be made aware. They will happily be accepted as correct if you count them as such. Nobody can deny that FriCAS integrates them in some sense.
I think users specifying an integration path that traverses the complex plane must be required to know what they are trying to do, making sure that the actual branch cuts (if any) of their antiderivative are compatible with their objective.
> > Note that if you consider functions as defined in complex plane, > but having branch cuts, than antiderivatives are incorrect for > simple fact that discontinous functions have nontrivial > distributional part of derivative. >
I do not accept this: this is not what Maple, Derive, and Mathematica are doing, and their approach is self-consistent as far as I can see. All multivalued functions on the complex plane are restricted to one Riemannian sheet by introducing branch cuts, in order to render them single-valued. This allows for numerical evaluation consistent with a symbolic computation. The functions also have values on the branch cuts, which are taken to belong to one of the sheets (usually such that counter-clockwise continuity around branch points is preserved). Functional equations will be affected by the cuts made, and those invalidated (like ln(z) = -ln(1/z)) cannot be used by the system. Differentiation is done within the respective continuous sheet (the steps introduced by the branch cuts therefore not giving rise to delta peaks), and one stays entirely within the beautiful framework of complex analysis. In particular, any function that differentiates back to a given integrand is a valid antiderivative.