Simplify
, PossibleZeroQ
implementation...
@AlbertRich Thanks. That works. Do you know why when I print the rules using the following, it shows always as Removed[Int]
in there and not just Int
? Here is an example
$LoadShowSteps = False;
<< Rubi`
BeginPackage["Rubi`"];
Begin["`Private`"];
Do[
Print[InputForm[DownValues[Int][[n]]]]
,
{n, 1, 1}(*Length[DownValues[Int]]}*)
]
Which gives
HoldPattern[Removed["Int"][(u_.)*((a_) + (b_.)*(x_)^(n_.))^(p_.), x_Symbol]] :> Removed["Int"][u*(b*x^n)^p, x] /; FreeQ[{a, b, n, p}, x] && EqQ[a, 0]
Now I remove this as follows
BeginPackage["Rubi`"];
Begin["`Private`"];
Do[
res = InputForm[DownValues[Int][[n]]];
res = ToString[ReleaseHold[res]];
res = StringReplace[res, "Defer[Removed[\"Int\"]]" -> "Int"];
res = StringReplace[res, "Removed[\"Int\"]" -> "Int"];
Print[res]
,
{n, 1, 1}(*Length[DownValues[Int]]}*)
]
Which gives
Int[(u_.)*((a_) + (b_.)*(x_)^(n_.))^(p_.), x_Symbol] :>
Int[u*(b*x^n)^p, x] /; FreeQ[{a, b, n, p}, x] && EqQ[a, 0]
Starting from clean Kernel did not help. The Removed[Int]
is always there. It is not big deal as I can remove it, this is for just printing the rules, but I wondered why it happens.
You can't get closed form antiderivative. You could find approximate series solution.
(a x^2)/2 - (a^3 x^4)/12 + (a^5 x^6)/60 - (a^7 x^8)/315 + (
13 a^9 x^10)/25200 - (47 a^11 x^12)/598752 + (
15481 a^13 x^14)/1362160800 - (3947 a^15 x^16)/2554051500 + (
451939 a^17 x^18)/2273570208000 - (
23252857 a^19 x^20)/950352346944000 + (
186846623 a^21 x^22)/64568056512960000 - (
831520891 a^23 x^24)/2524611009656736000 + (
1108990801 a^25 x^26)/30644204599008000000 - (
143356511198507 a^27 x^28)/37217815504359602112000000 + (
920716137922619 a^29 x^30)/2312821392056632416960000000 +
C[1]
Here is a plot comparing the derivative of the above antiderivative above with the integrand showing good agreement. More terms gives better agreemeent.
ode = y'[x] == Sin[Sin[a*x]];
antiderivative = AsymptoticDSolveValue[ode, y[x], {x, 0, 30}]
Plot[Evaluate[{Sin[Sin[a*x]], D[antiderivative, x]} /. a -> 1], {x, -3, 3}]
The following Issue was recently posted on the Rubi's GitHub repository:
I posted the following response:
Yes, Rubi 4 is currently undergoing a major redesign that will significantly expand the class of mathematical expressions it can integrate, produce simpler antiderivatives, and provide more elegant derivations. Also it is necessary to perfect Rubi 4 before compiling its pattern matching rules into an if-then-else decision tree for the next release of Rubi.
I'm working fulltime on what has turned out to be a massive project. It's driven by my figuring out the math required to integrate expressions symbolically. I will release a new version of Rubi 4 as-soon-as it's perfected to my satisfaction. But it's impossible to predict when that will be, given the creative nature of this open-ended work.
Albert
@Gravifer Thanks for your interest in Rubi. As previously posted:
Rubi 4 is currently undergoing a major redesign that will significantly expand the class of mathematical expressions it can integrate, produce simpler antiderivatives, and provide more elegant derivations. Also it is necessary to perfect Rubi 4 before compiling its pattern matching rules into an if-then-else decision tree for the next release of Rubi.
I'm working fulltime on what has turned out to be a massive project. It's driven by my figuring out the math required to integrate expressions symbolically. I will release a new version of Rubi 4 as-soon-as it's perfected to my satisfaction. But it's impossible to predict when that will be, given the creative nature of this open-ended work.