Sam Blake schrieb:
For fun I have been implementing the rational integral routines from Bronstein's Symbolic Integration I in Mathematica. As part of my
testing I stumbled across the following example integral
\int x/(2 + 4 x + 5 x^2 + 2 x^3 + x^4) dx
Rubi does well on this example
In[66]:= Int[x/(2 + 4 x + 5 x^2 + 2 x^3 + x^4), x]
Out[66]= -(ArcTan[(1 + 2 x)/Sqrt[7 - 4 Sqrt[2]]]/(
2 Sqrt[2 (7 - 4 Sqrt[2])])) +
ArcTan[(1 + 2 x)/Sqrt[7 + 4 Sqrt[2]]]/(2 Sqrt[2 (7 + 4 Sqrt[2])]) -
ArcTanh[(7 + 4 (1/2 + x)^2)/(4 Sqrt[2])]/(2 Sqrt[2])
While my rational function integrator returns
In[67]:= IntegrateRational[x/(2 + 4 x + 5 x^2 + 2 x^3 + x^4), x]
Out[67]= 1/2 (((-1 + I Sqrt[7 - 4 Sqrt[2]]) Log[
1/2 (1 - I Sqrt[7 - 4 Sqrt[2]]) + x])/(
2 (2 + 5/2 (-1 + I Sqrt[7 - 4 Sqrt[2]]) +
3/4 (-1 + I Sqrt[7 - 4 Sqrt[2]])^2 +
1/4 (-1 + I Sqrt[7 - 4 Sqrt[2]])^3)) + ((-1 -
I Sqrt[7 - 4 Sqrt[2]]) Log[
1/2 (1 + I Sqrt[7 - 4 Sqrt[2]]) + x])/(
2 (2 + 5/2 (-1 - I Sqrt[7 - 4 Sqrt[2]]) +
3/4 (-1 - I Sqrt[7 - 4 Sqrt[2]])^2 +
1/4 (-1 - I Sqrt[7 - 4 Sqrt[2]])^3)) + ((-1 +
I Sqrt[7 + 4 Sqrt[2]]) Log[
1/2 (1 - I Sqrt[7 + 4 Sqrt[2]]) + x])/(
2 (2 + 5/2 (-1 + I Sqrt[7 + 4 Sqrt[2]]) +
3/4 (-1 + I Sqrt[7 + 4 Sqrt[2]])^2 +
1/4 (-1 + I Sqrt[7 + 4 Sqrt[2]])^3)) + ((-1 -
I Sqrt[7 + 4 Sqrt[2]]) Log[
1/2 (1 + I Sqrt[7 + 4 Sqrt[2]]) + x])/(
2 (2 + 5/2 (-1 - I Sqrt[7 + 4 Sqrt[2]]) +
3/4 (-1 - I Sqrt[7 + 4 Sqrt[2]])^2 +
1/4 (-1 - I Sqrt[7 + 4 Sqrt[2]])^3)))
I find similar results from AXIOM and FriCAS. Is this a limitation of Rioboo's algorithm?
This is an interesting example. Derive 6.10 also solves the integral in
real terms:
INT(x/(2 + 4*x + 5*x^2 + 2*x^3 + x^4), x)
SQRT(238 - 136*SQRT(2))*ATAN(SQRT(119 - 68*SQRT(2))*(2*x + 1)/17)/68
- SQRT(136*SQRT(2) + 238)*ATAN(SQRT(68*SQRT(2) + 119)*(2*x + 1)/17)/68
+ SQRT(2)*LN((x^2 + x - SQRT(2) + 2)/(x^2 + x + SQRT(2) + 2))/8
as it starts by factoring the denominator:
2 + 4*x + 5*x^2 + 2*x^3 + x^4 =
(x^2 + x + SQRT(2) + 2)*(x^2 + x - SQRT(2) + 2)
and then expands the integrand into partial fractions. Indeed, the
cubic resolvent of the denominator factors as (y - 4)*(y^2 - y - 4).
By contrast, FriCAS 1.3.9 returns a whopping:
((34^(1/2)*((-102)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)^
2+(-68)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%
E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+((-102)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+5))^(1/2)+((-34)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%
E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+(-34)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)))*log(((164*34^(1/2)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+38*34^(1/2))*rootOf((136*
rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+(38*34^(1/2)*rootOf((544*%%E0^4+
(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+5*34^(1/2)))*((-102)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(
136*%%E1^3+(-5)*%%E1+1))/136,%%E1)^2+(-68)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%
%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+((-102)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+5))^(1/2)+((5576*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+1292)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^
2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)^2+(5576*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+
(-170))*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+(1292*
rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(-170)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(52*x+(-42)))))+(((-1)*34^(1/2)*((-102)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%
E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)^2+(-68)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%
E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+((-102)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+5))^(1/2)+((-34)*
rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+(-34)*rootOf((544*%%
E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)))*log((((-164)*34^(1/2)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(-38)*34^(1/2))*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%
E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+((-38)*34^(1/2)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(-5)*34^(1/2)))*((-102)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+
1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)^2+(-68)*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)*rootOf((
136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)+((-102)*rootOf((544*%%E0^4+(
-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+5))^(1/2)+((5576*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+1292)*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(136*%%E1^2+(-5))
*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)+(136*%%E1^3+(-5)*%%E1+1))/136,%%E1)^2+(5576*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(-170))*rootOf((136*rootOf((544*%%E0^4+(-20)*%%E0^2+4*%%E0+1)/544,%%E0)^3+136*%%E1*rootOf((544*%%E0^4+(-
20)*%%E0^2+4*%%E0+1)/544,%%E0)^2+(1
which is the sum of three logarithms involving many nested rootOf()s
where the %%En denote local variables. The quartic of the inner
rootOf() factors as:
544*z^4 - 20*z^2 + 4*z + 1 =
1/17*(68*SQRT(2)*z^2 + 34*z + 3*SQRT(2) - 1)
*(68*SQRT(2)*z^2 - 34*z + 3*SQRT(2) + 1)
and its cubic resolvent is (34*y - 3)*(272*y^2 + 34*y + 1).
Let's see if FriCAS version 1.3.10 will do better.
Martin.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)