RuleBasedIntegration / Rubi

Rubi for Mathematica
http://rulebasedintegration.org
MIT License
225 stars 22 forks source link

My first Rubi test: Int[Tan[Log[x]],x] #12

Closed Maxwell3e8 closed 5 years ago

Maxwell3e8 commented 5 years ago

Just downloaded Rubi to compare with Mathematica, after a couple of quick tests, Int[Tan[Log[x]],x] can't be evaluated, but works on Mathematica in terms of hypergeometric functions.

halirutan commented 5 years ago

Yes, there are things Rubi can't integrate, while Mathematica uses complicated algorithms that can return results in terms of hypergeometric functions. In your case, you can use:

expr = TrigToExp[Tan[Log[x]]]
Int[expr, x]

to get

-I x + 2 I x Hypergeometric2F1[-(I/2), 1, 1 - I/2, -x^(2 I)]

and show that

D[%, x] == expr // Simplify

(* True *)

Please see also this comment from Albert for a strongly related question.

Maxwell3e8 commented 5 years ago

Thanks, so it almost works! Would it make sense for Rubi to automatically try to apply some common transformations (using build-in Mathematica rules or its own) to try the integral in a few different forms?

halirutan commented 5 years ago

@Maxwell3e8 That needs to be decided by @AlbertRich since he is the driving force behind Rubi's integration rules.

AlbertRich commented 5 years ago

Thanks to your suggestion, I derived new rules for integrating expressions of the form (e x)^m Tan[d (a+b Log[c x^n])]^p. Since Tan[Log[x]] is a special case of that form, the next version of Rubi returns

-I*x + 2*I*x*Hypergeometric2F1[-I/2, 1, 1 - I/2, -x^(2*I)]

for its antiderivative. That is considerably simpler than the result returned by Mathematica 11.3 which involves two calls on Hypergeometric2F1.

AlbertRich commented 5 years ago

Also the next release of Rubi will have analogous rules for integrating expressions of the form (e x)^m Cot[d (a+b Log[c x^n])]^p, (e x)^m Tanh[d (a+b Log[c x^n])]^p, and (e x)^m Coth[d (a+b Log[c x^n])]^p.

AlbertRich commented 5 years ago

The currently available Rubi 4.16.1.0 is able to integrate Int[Tan[Log[x]],x] and expressions of the above form.