Re: (Not trivial) Definite Integration of a rational function
- To: mathgroup at smc.vnet.net
- Subject: [mg74770] Re: (Not trivial) Definite Integration of a rational function
- From: "Valeri Astanoff" <astanoff at gmail.com>
- Date: Wed, 4 Apr 2007 04:10:14 -0400 (EDT)
- References: <euslob$9nf$1@smc.vnet.net>
On 3 avr, 06:38, "dimitris" <dimmec... at yahoo.com> wrote: > I think it is time to open a new thread about integration, isn't it? > > Anyway...Here we go..(Mathematica 5.2 is used). > > f = HoldForm[Integrate[(2*x)/((x + 1)*(x^3 + 3*x^2 + 2*x + 1)), {x, 0, > Infinity}]] > > We have > > ReleaseHold[f /. Integrate[h_, {x_, a_, b_}] :> Plot[h, {x, a, 10}]] > (*plot*) > > ReleaseHold[f /. Integrate -> NIntegrate] (*numerical estimation with > machine precision*) > 0.3712169752602472 > > Attempts to get an analytic result failed. > > Timing[ReleaseHold[f]] > {145.969*Second, Integrate[(2*x)/((1 + x)*(1 + 2*x + 3*x^2 + x^3)), > {x, 0, Infinity}]} > > Timing[ReleaseHold[f /. Integrate[h___] :> Integrate[h, > GenerateConditions -> False]]] > {144.765*Second, Integrate[(2*x)/((1 + x)*(1 + 2*x + 3*x^2 + x^3)), > {x, 0, Infinity}, GenerateConditions -> False]} > > ( > > BTW, Mathematica version 4 returns Infinity for this definite > integral. I think this happens because a partial fraction > decomposition is performed and the integrand is written > > Apart[(2*x)/((x + 1)*(x^3 + 3*x^2 + 2*x + 1))] > -(2/(1 + x)) + (2*(1 + 2*x + x^2))/(1 + 2*x + 3*x^2 + x^3) > > and after it integrates definitely each term of last sum > > (Integrate[#1, {x, 0, Infinity}] & ) /@ % > Integrate::idiv: Integral of 1/(1 + x) does not converge on > {0,Infinity}. > Integrate::idiv: Integral of (1 + x)^2/(1 + 2*x + 3*x^2 + x^3) does > not \ > converge on {0,Infinity}. > Integrate[-(2/(1 + x)), {x, 0, Infinity}] + Integrate[(2*(1 + 2*x + > x^2))/(1 + 2*x + 3*x^2 + x^3), {x, 0, Infinity}] > > One additional curious thing is it doesn't show the relevant warning > message for convergence... > ) > > Let see the antiderivative > > ReleaseHold[f /. Integrate[h_, {x_, a_, b_}] :> Integrate[h, x]] > Together[D[%, x]] > Plot[%%, {x, 0, 10}]; (*plot*) > > 2*(-Log[1 + x] + RootSum[1 + 2*#1 + 3*#1^2 + #1^3 & , (Log[x - #1] + > 2*Log[x - #1]*#1 + Log[x - #1]*#1^2)/ > (2 + 6*#1 + 3*#1^2) & ]) > (2*x)/((1 + x)*(1 + 2*x + 3*x^2 + x^3)) > > I wonder why Mathematica since it gets the indefinite integral, it > fails to evaluate > the definite integral. Any ideas? > > Since both the integrand and the antiderivative posses no > singularities/discontinuities > in the integration range I proceed to get the definite integral by > application of the Newton-Leibniz > formula > > This time we get finally the definite integral > > Timing[Limit[F, x -> Infinity] - Limit[F, x -> 0]] > Simplify[%[[2]]] > N[%]//Chop > > {176.90699999999998*Second, -2*RootSum[1 + 2*#1 + 3*#1^2 + #1^3 & , > (Log[-#1] + 2*Log[-#1]*#1 + Log[-#1]*#1^2)/(2 + 6*#1 + 3*#1^2) > & ]} > > -2*RootSum[1 + 2*#1 + 3*#1^2 + #1^3 & , (Log[-#1] + 2*Log[-#1]*#1 + > Log[-#1]*#1^2)/(2 + 6*#1 + 3*#1^2) & ] > 0.37121697526024766 > > But timings like this look quite unreasonable for integrals like this > (at least for me!). > > Do you have other ideas of getting this definite integral (with better > time performances > if possible)? > > It is also looks quite strange that in two other CAS (the one can be > freely downloaded from Internet) > I got directly the definite integral in a couple of seconds. > > Any explanation about previous time performance of Limit will be > greatly appreciate. > > Trying to write down the result > > -2*RootSum[1 + 2*#1 + 3*#1^2 + #1^3 & , (Log[-#1] + 2*Log[-#1]*#1 + > Log[-#1]*#1^2)/(2 + 6*#1 + 3*#1^2) & ] > > in a expanded format (i e no RootSum object; of course I am aware that > it will be lost the compacteness > that RootSum offers) I tried > > Tr[Simplify[(-2*((Log[-#1] + 2*Log[-#1]*#1 + Log[-#1]*#1^2)/(2 + 6*#1 > + 3*#1^2)) & ) /@ > (x /. Solve[(1 + 2*#1 + 3*#1^2 + #1^3 & )[x] == 0, x])]] > Chop[N[%]] > > -((2*(12 + 2^(1/3)*(27 - 3*Sqrt[69])^(2/3) + 6*3^(1/3)*(2/(9 - > Sqrt[69]))^(2/3))* > Log[1 + (2/(27 - 3*Sqrt[69]))^(1/3) + ((1/2)*(9 - > Sqrt[69]))^(1/3)/3^(2/3)])/ > (3*(6 + 2^(1/3)*(27 - 3*Sqrt[69])^(2/3) + 6*3^(1/3)*(2/(9 - > Sqrt[69]))^(2/3)))) - > (2*(8*I*(9 - Sqrt[69])^(2/3) + 2^(1/3)*3^(1/6)*(2*2^(1/3)*3^(1/6)*(- > I + Sqrt[3]) + > (9 - Sqrt[69])^(1/3)*(-9 - 3*I*Sqrt[3] + I*Sqrt[23] + > Sqrt[69])))* > Log[1 + (-1 + I*Sqrt[3])/(2^(2/3)*(27 - 3*Sqrt[69])^(1/3)) - ((1 + > I*Sqrt[3])*((1/2)*(9 - Sqrt[69]))^(1/3))/(2*3^(2/3))])/ > (3*(4*I*(9 - Sqrt[69])^(2/3) + 2^(1/3)*3^(1/6)*(2*2^(1/3)*3^(1/6)*(- > I + Sqrt[3]) + > (9 - Sqrt[69])^(1/3)*(-9 - 3*I*Sqrt[3] + I*Sqrt[23] + > Sqrt[69])))) - > (2*(8*(9 - Sqrt[69])^(2/3) + 2^(1/3)*3^(1/6)*(2*I*2^(1/3)*3^(1/6)*(I > + Sqrt[3]) + > (9 - Sqrt[69])^(1/3)*(-9*I - 3*Sqrt[3] + Sqrt[23] + > I*Sqrt[69])))* > Log[1 + (-1 - I*Sqrt[3])/(2^(2/3)*(27 - 3*Sqrt[69])^(1/3)) + (I*(I > + Sqrt[3])*((1/2)*(9 - Sqrt[69]))^(1/3))/(2*3^(2/3))])/ > (3*(4*(9 - Sqrt[69])^(2/3) + > 2^(1/3)*3^(1/6)*(2*I*2^(1/3)*3^(1/6)*(I + Sqrt[3]) + > (9 - Sqrt[69])^(1/3)*(-9*I - 3*Sqrt[3] + Sqrt[23] + > I*Sqrt[69])))) > 0.3712169752602468 > > Am I missing something simpler than this setting? > Is it a built -in function that RootSum and this function acts like > the pair {RootReduce,ToRadicals} below? > > Reduce[1 + 2*x + 3*x^2 + x^3 == 0, Reals] > ToRadicals[%] > RootReduce[%] > > x == Root[1 + 2*#1 + 3*#1^2 + #1^3 & , 1] > x == -1 - (2/(3*(9 - Sqrt[69])))^(1/3) - ((1/2)*(9 - Sqrt[69]))^(1/3)/ > 3^(2/3) > x == Root[1 + 2*#1 + 3*#1^2 + #1^3 & , 1] > > Thanks! > > Dimitris Good day, This is my [non-orthodox] way to help mma get an exact result: In[1]:=xx = x /. Solve[(x^3+3*x^2+2*x+1) == 0]; In[2]:=xx//N Out[2]={-2.324717957244746,-0.3376410213776268-0.5622795120623013*I,-0.3376410213776268+0.5622795120623013*I} In[3]:=t=(x-a)(x-(b-I*c))(x-(b+I*c)); In[4]:=bc=First@Solve[b+c*I == xx[[2]] && b-c*I == xx[[3]]]; In[5]:=(i=Integrate[2x/((x+1)t),{x,0,\[Infinity]}, Assumptions->a<0 && b<0 && c<0])//Timing Out[5]={5.531*Second,-((2*(1+a)*(-c^2+(a-b)*(b+b^2+c^2))*ArcTan[b/c] +2*a*c*((1+b)^2+c^2)*Log[-a]- (1+a)*((-c^2+(a-b)*(b+b^2+c^2))*Pi+c*(a+b^2+c^2)*Log[b^2+c^2]))/ ((1+a)*c*((a-b)^2+c^2)*((1+b)^2+c^2)))} In[6]:=(i /. a -> xx[[1]] /. bc//Simplify)//Timing Out[6]={4.813*Second,-((1/(36*(-5175+623*Sqrt[69])))*((9- Sqrt[69])^(4/3)* (3*2^(1/3)*3^(1/6)*(2*2^(1/3)*3^(1/6)*(-36*Sqrt[3]+13*Sqrt[23])+(9- Sqrt[69])^(1/3)*(-25+3*Sqrt[69]))*Pi+ 6*2^(1/3)*3^(1/6)*(2*2^(1/3)*3^(1/6)*(36*Sqrt[3]-13*Sqrt[23]) +(25-3*Sqrt[69])*(9-Sqrt[69])^(1/3))* ArcTan[(-12*(9- Sqrt[69])^(2/3)+6^(1/3)*(2*(27-3*Sqrt[69])^(1/3)-2^(1/3)*(-9+Sqrt[69])))/ (3*2^(2/3)*3^(1/3)*(3*Sqrt[3]- Sqrt[23])-6*3^(1/6)*(18-2*Sqrt[69])^(1/3))]- 432*2^(2/3)*3^(1/3)*Log[1+(2/(27-3*Sqrt[69]))^(1/3)+((1/2)*(9- Sqrt[69]))^(1/3)/3^(2/3)]+ 52*2^(2/3)*3^(5/6)*Sqrt[23]*Log[1+(2/(27-3*Sqrt[69]))^(1/3)+((1/2)*(9- Sqrt[69]))^(1/3)/3^(2/3)]+ 50*3^(2/3)*(18-2*Sqrt[69])^(1/3)*Log[1+(2/(27-3*Sqrt[69]))^(1/3)+ ((1/2)*(9-Sqrt[69]))^(1/3)/3^(2/3)]- 18*3^(1/6)*Sqrt[23]*(18-2*Sqrt[69])^(1/3)*Log[1+(2/ (27-3*Sqrt[69]))^(1/3)+((1/2)*(9-Sqrt[69]))^(1/3)/3^(2/3)]- 414*(9-Sqrt[69])^(2/3)*Log[1+(2/(27-3*Sqrt[69]))^(1/3)+((1/2)*(9- Sqrt[69]))^(1/3)/3^(2/3)]+ 50*Sqrt[69]*(9-Sqrt[69])^(2/3)*Log[1+(2/(27-3*Sqrt[69]))^(1/3)+ ((1/2)*(9-Sqrt[69]))^(1/3)/3^(2/3)]+ 216*2^(2/3)*3^(1/3)*Log[-((-4*(9- Sqrt[69])^(4/3)+2^(1/3)*3^(1/6)*(-32*Sqrt[3]+12*Sqrt[23]-2^(1/3)*Sqrt[23]* (27-3*Sqrt[69])^(2/3)+ 7*2^(1/3)*3^(1/6)*(9-Sqrt[69])^(2/3)))/(6*(9- Sqrt[69])^(4/3)))]-26*2^(2/3)*3^(5/6)*Sqrt[23]* Log[-((-4*(9- Sqrt[69])^(4/3)+2^(1/3)*3^(1/6)*(-32*Sqrt[3]+12*Sqrt[23]-2^(1/3)*Sqrt[23]*(27-3*Sqrt[69])^(2/3)+ 7*2^(1/3)*3^(1/6)*(9-Sqrt[69])^(2/3)))/(6*(9- Sqrt[69])^(4/3)))]-25*3^(2/3)*(18-2*Sqrt[69])^(1/3)* Log[-((-4*(9- Sqrt[69])^(4/3)+2^(1/3)*3^(1/6)*(-32*Sqrt[3]+12*Sqrt[23]-2^(1/3)*Sqrt[23]*(27-3*Sqrt[69])^(2/3)+ 7*2^(1/3)*3^(1/6)*(9-Sqrt[69])^(2/3)))/(6*(9-Sqrt[69])^(4/3)))] +9*3^(1/6)*Sqrt[23]*(18-2*Sqrt[69])^(1/3)* Log[-((-4*(9- Sqrt[69])^(4/3)+2^(1/3)*3^(1/6)*(-32*Sqrt[3]+12*Sqrt[23]-2^(1/3)*Sqrt[23]*(27-3*Sqrt[69])^(2/3)+ 7*2^(1/3)*3^(1/6)*(9-Sqrt[69])^(2/3)))/(6*(9-Sqrt[69])^(4/3)))]-414*(9- Sqrt[69])^(2/3)* Log[-((-4*(9- Sqrt[69])^(4/3)+2^(1/3)*3^(1/6)*(-32*Sqrt[3]+12*Sqrt[23]-2^(1/3)*Sqrt[23]*(27-3*Sqrt[69])^(2/3)+ 7*2^(1/3)*3^(1/6)*(9-Sqrt[69])^(2/3)))/(6*(9-Sqrt[69])^(4/3)))] +50*Sqrt[69]*(9-Sqrt[69])^(2/3)* Log[-((-4*(9- Sqrt[69])^(4/3)+2^(1/3)*3^(1/6)*(-32*Sqrt[3]+12*Sqrt[23]-2^(1/3)*Sqrt[23]*(27-3*Sqrt[69])^(2/3)+ 7*2^(1/3)*3^(1/6)*(9-Sqrt[69])^(2/3)))/(6*(9-Sqrt[69])^(4/3)))])))} In[7]:=%//N Out[7]={4.813 Second, 0.371217} In[8]:=$Version Out[8]=5.1 for Microsoft Windows(January 28,2005) V.Astanoff