Re: Definite Integration in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg74634] Re: Definite Integration in Mathematica
- From: "dimitris" <dimmechan at yahoo.com>
- Date: Thu, 29 Mar 2007 02:30:34 -0500 (EST)
Hi. I apologise for the delay. I will reply to your questions in this post; but I want the current post to serve as a sum up of this beautiful thread. So I apologise also for its considerable length and not anwering at once to your queries. First things first. (*change some default settings*) g == Options[Plot]; h == Options[ContourPlot]; k == Options[Plot3D]; $TextStyle == {FontFamily -> "Times", FontSize -> 12}; SetOptions[Plot, Axes -> False, Frame -> {True, True, False, False}, FrameTicks -> {Range[-4*Pi, 4*Pi, Pi], Automatic}]; SetOptions[ContourPlot, ContourShading -> False, PlotPoints -> 50, Contours -> 50, FrameTicks -> {Range[-2*Pi, 2*Pi, Pi], Automatic, None, None}]; SetOptions[Plot3D, PlotPoints -> 50, Ticks -> {Range[-2*Pi, 2*Pi, Pi], Automatic, Automatic}]; Let f[x_] :== 1/(2 + Cos[x]) Its plot Plot[f[x], {x, -4*Pi, 4*Pi}, PlotStyle -> Blue]; The indefinite integral by Mathematica F[x_] == Integrate[f[x], x] (2*ArcTan[Tan[x/2]/Sqrt[3]])/Sqrt[3] Check Simplify[D[F[x], x] ==== f[x]] True Its plot Show[Block[{$DisplayFunction == Identity}, (Plot[F[x], {x, #1[[1]], #1[[2]]}, PlotStyle -> Red] & ) /@ Partition[Range[-4*Pi, 4*Pi, Pi], 2, 1]]]; Contour plots and 3D plots. Show[GraphicsArray[Block[{$DisplayFunction == Identity}, (ContourPlot[#1[f[x + I*y]], {x, -2*Pi, 2*Pi}, {y, -3, 3}] & ) /@ {Re, Im}]], ImageSize -> 600]; Show[GraphicsArray[Block[{$DisplayFunction == Identity}, (ContourPlot[#1[F[x + I*y]], {x, -2*Pi, 2*Pi}, {y, -3, 3}] & ) /@ {Re, Im}]], ImageSize -> 600]; Show[GraphicsArray[Block[{$DisplayFunction == Identity}, (Plot3D[#1[f[x + I*y]], {x, -2*Pi, 2*Pi}, {y, -3, 3}] & ) /@ {Re, Im}]], ImageSize -> 600]; Show[GraphicsArray[Block[{$DisplayFunction == Identity}, (Plot3D[#1[F[x + I*y]], {x, -2*Pi, 2*Pi}, {y, -3, 3}] & ) /@ {Re, Im}]], ImageSize -> 600]; The function f has 4 poles in the complex domain withing the range [-4Pi,4Pi]. Indeed Reduce[Denominator[f[x]] ==== 0 && -4*Pi < Re[x] < 4*Pi, x] {ToRules[%]} % /. (x_ -> a_) :> x -> ComplexExpand[a] Show[Graphics[{PointSize[0.02], (Point[{Re[#1], Im[#1]}] & ) /@ (x /. %)}], Axes -> True, Ticks -> {Range[-4*Pi, 4*Pi, Pi], Automatic}, AxesLabel -> {"Re", "Im"}]; x ==== -2*Pi - ArcCos[-2] || x ==== 2*Pi - ArcCos[-2] || x ==== 4*Pi - ArcCos[-2] || x ==== -ArcCos[-2] || x ==== ArcCos[-2] || x ==== -4*Pi + ArcCos[-2] || x ==== -2*Pi + ArcCos[-2] || x ==== 2*Pi + ArcCos[-2] {{x -> -2*Pi - ArcCos[-2]}, {x -> 2*Pi - ArcCos[-2]}, {x -> 4*Pi - ArcCos[-2]}, {x -> -ArcCos[-2]}, {x -> ArcCos[-2]}, {x -> -4*Pi + ArcCos[-2]}, {x -> -2*Pi + ArcCos[-2]}, {x -> 2*Pi + ArcCos[-2]}} {{x -> -3*Pi - I*Log[2 - Sqrt[3]]}, {x -> Pi - I*Log[2 - Sqrt[3]]}, {x -> 3*Pi - I*Log[2 - Sqrt[3]]}, {x -> -Pi - I*Log[2 - Sqrt[3]]}, {x -> Pi + I*Log[2 - Sqrt[3]]}, {x - > -3*Pi + I*Log[2 - Sqrt[3]]}, {x -> -Pi + I*Log[2 - Sqrt[3]]}, {x -> 3*Pi + I*Log[2 - Sqrt[3]]}} (*plot to be displayed*) So the integrand has four singular poles that become branch points for the antiderivative. Connected in pairs these points make two branch cuts. And the real axis crosses them. Table[(Limit[F[x], x -> n*Pi, Direction -> #1] & ) /@ {-1, 1}, {n, -4, 4}] {{0, 0}, {-(Pi/Sqrt[3]), Pi/Sqrt[3]}, {0, 0}, {-(Pi/Sqrt[3]), Pi/ Sqrt[3]}, {0, 0}, {-(Pi/Sqrt[3]), Pi/Sqrt[3]}, {0, 0}, {-(Pi/Sqrt[3]), Pi/Sqrt[3]}, {0, 0}} Consider the definite integral in the range [-4Pi,4Pi]. Integrate[f[x], {x, -4*Pi, 4*Pi}] {N[%], NIntegrate[f[x], {x, -4*Pi, 4*Pi}]} (8*Pi)/Sqrt[3] {14.510394913873741, 14.510394913883049} Obviously (Integrate[f[x], {x, #1[[1]], #1[[2]]}] & ) /@ Partition[Range[-4*Pi, 4*Pi, Pi], 2, 1] Tr[%] {Pi/Sqrt[3], Pi/Sqrt[3], Pi/Sqrt[3], Pi/Sqrt[3], Pi/Sqrt[3], Pi/ Sqrt[3], Pi/Sqrt[3], Pi/Sqrt[3]} (8*Pi)/Sqrt[3] Let use a substitution in order to get an indefinite integral f[x]*dx % /. Cos[x] -> Cos[x/2]^2 - Sin[x/2]^2 Simplify[% /. x -> 2*ArcTan[z] /. dx -> 2*D[ArcTan[z], z]] Integrate[%, z] hand == % /. z -> Tan[x/2] Simplify[D[%, x]] Show[Block[{$DisplayFunction == Identity}, (Plot[%%, {x, #1[[1]], #1[[2]]}, PlotStyle -> Thickness[0.008]] & ) /@ Partition[Range[-2*Pi, 2*Pi, Pi], 2, 1]]]; hand ==== F[x] dx/(2 + Cos[x]) dx/(2 + Cos[x/2]^2 - Sin[x/2]^2) 2/(3 + z^2) (2*ArcTan[z/Sqrt[3]])/Sqrt[3] (2*ArcTan[Tan[x/2]/Sqrt[3]])/Sqrt[3] 1/(2 + Cos[x]) (*plot to be displayed*) True I.e. we get in this case (ussually this does not happen!) the result of Mathematica. BTW, the other CAS I use got also a similar antiferivative with jump discontinuities. >From an old book about Mathematica (Mathematica for Scientists and Enginners by R. Gass we got (but without further explanation...) FF[x_] == (-2*3^(1/2)*ArcTan[Sin[x]/(Cos[x] + 1)])/3 + (2*3^(1/2)*ArcTan[(3^(1/2)*Sin[x])/(3*(Cos[x] + 1))])/3 + (3^(1/2)*x)/3 D[FF[x], x]//Simplify x/Sqrt[3] - (2*ArcTan[Sin[x]/(1 + Cos[x])])/Sqrt[3] + (2*ArcTan[Sin[x]/ (Sqrt[3]*(1 + Cos[x]))])/Sqrt[3] 1/(2 + Cos[x]) as a continuous antiderivative in the real axis. I will be very glad if you could show me how exactly the author get previous antiderivative or what method in general would you follow in order to get a continuous antiderivative in the real axis. Plot[{FF[x], F[x]}, {x, -4*Pi, 4*Pi}, PlotStyle -> {Red, Blue}] Show[GraphicsArray[Block[{$DisplayFunction == Identity}, (ContourPlot[#1[FF[x + I*y]], {x, -2*Pi, 2*Pi}, {y, -4, 4}] & ) / @ {Re, Im}]], ImageSize -> 600]; Show[GraphicsArray[Block[{$DisplayFunction == Identity}, (Plot3D[#1[FF[x + I*y]], {x, -2*Pi, 2*Pi}, {y, -4, 4}] & ) /@ {Re, Im}]], ImageSize -> 600]; The two functions differ a piecewise constant function Plot[F[x] - FF[x], {x, -2*Pi, 2*Pi}, PlotRange -> All]; D[FF[x] - F[x], x] Simplify[%] (*plot to be displayed*) 1/Sqrt[3] - (2*(Cos[x]/(1 + Cos[x]) + Sin[x]^2/(1 + Cos[x])^2))/ (Sqrt[3]*(1 + Sin[x]^2/(1 + Cos[x])^2)) + (2*(Cos[x]/(Sqrt[3]*(1 + Cos[x])) + Sin[x]^2/(Sqrt[3]*(1 + Cos[x])^2)))/(Sqrt[3]*(1 + Sin[x]^2/(3*(1 + Cos[x])^2))) - Sec[x/2]^2/(3*(1 + (1/3)*Tan[x/2]^2)) 0 So the correct aplication of the Newton Leibniz formula is respectively FF[4*Pi] - FF[-4*Pi] (F[4*Pi] - Limit[F[x], x -> 3*Pi, Direction -> -1]) + (Limit[F[x], x - > 3*Pi, Direction -> 1] - Limit[F[x], x -> Pi, Direction -> -1]) + (Limit[F[x], x -> Pi, Direction -> 1] - Limit[F[x], x -> -Pi, Direction -> -1]) + (Limit[F[x], x -> -Pi, Direction -> 1] - Limit[F[x], x -> 3*Pi, Direction -> -1]) + (Limit[F[x], x -> -3*Pi, Direction -> 1] - F[-4*Pi]) (8*Pi)/Sqrt[3] (8*Pi)/Sqrt[3] It is time to answer your first second question > Unfortunately, I don't have Trott's book. Since it's very easy to obtain, > could you also please show us the continuous antiderivative for > 1/(5 + Cos[x]) obtained by Trott's method? As you see I chose another example (similar to Trott's) because I want to show also the continuous antiderivative by Gass' book. I don't know what you have understood but stating that > > But in case of recognizing the jump discontinuity and its position, it > > is very easy to obtain a continous antiderivative adding the piecewise > > constant (see the relevant example from Trott's book!) I really mean something like Fc[x_] :== Piecewise[{{F[x], Inequality[-4*Pi, LessEqual, x, Less, -3*Pi]}, {Pi/Sqrt[3], x ==== -3*Pi}, {F[x] + 2*(Pi/Sqrt[3]), -3*Pi < x < -Pi}, {4*(Pi/Sqrt[3]), x ==== - Pi}, {F[x] + 4*(Pi/Sqrt[3]), -Pi < x < Pi}, {6*(Pi/Sqrt[3]), x ==== Pi}, {F[x] + 6*(Pi/Sqrt[3]), Pi < x < 3*Pi}, {8*(Pi/Sqrt[3]), x ==== 3*Pi}, {F[x] + 8*(Pi/Sqrt[3]), Inequality[3*Pi, Less, x, LessEqual, 4*Pi]}}] I hope you are not dissapointed! Plot[Fc[x], {x, -4*Pi, 4*Pi}] Plot[{FF[x], F[x], Fc[x]}, {x, -4*Pi, 4*Pi}, PlotStyle -> {Red, Blue, Green}]; Of course Fc[4*Pi] - Fc[-4*Pi] (8*Pi)/Sqrt[3] But I am quite sure even if you are not dissapointed you will be right now! > You seem to be implying that Peter's method can be used to produce an > antiderivative, continuous on R, for 1/(5 + Cos[x]). I don't see how. Cou= ld > you please show us? Due to my enthousiasm of the moment forgot to add in rational functions below > > See this thread for a clever method by Peter Pein in order > > to get a continuous antiderivative with Mathematica. Hot weather! Also two or three days ago I was writting, I heard the news that I will be father, so don't misjudge me! Kind Regards Dimitris PS I would almost forget it! $TextStyle == {}; (SetOptions[Plot, #1] & ) /@ g; (SetOptions[ContourPlot, #1] & ) /@ h; (SetOptions[Plot3D, #1] & ) /@ k; Clear["Global`*"] =CF/=C7 David W.Cantrell =DD=E3=F1=E1=F8=E5: > "dimitris" <dimmechan at yahoo.com> wrote: > [snip] > > It's just happen in this case the antiderivative returned by the other > > CAS to be continuous in the real axis. For other integrals usually > > discontinuous antiderivatives are returned. For example > > > > (*other CAS*) > > int(1/(5+cos(x)),x); > > 1/6*6^(1/2)*arctan(1/3*tan(1/2*x)*6^(1/2)) > > > > (*mathematica*) > > Integrate[1/(5 + Cos[x]), x] > > ArcTan[Sqrt[2/3]*Tan[x/2]]/Sqrt[6] > > > > both have jump discontinuity at x==+/- n*Pi, n==odd. > > > > See this thread for a clever method by Peter Pein in order > > to get a continuous antiderivative with Mathematica. > > You seem to be implying that Peter's method can be used to produce an > antiderivative, continuous on R, for 1/(5 + Cos[x]). I don't see how. Cou= ld > you please show us? > > > But in case of recognizing the jump discontinuity and its position, it > > is very easy to obtain a continous antiderivative adding the piecewise > > constant (see the relevant example from Trott's book!) > > Unfortunately, I don't have Trott's book. Since it's very easy to obtain, > could you also please show us the continuous antiderivative for > 1/(5 + Cos[x]) obtained by Trott's method? > > David W. Cantrell