Re: Add the Logarithms (error in integral)
- To: mathgroup at smc.vnet.net
- Subject: [mg25143] Re: [mg25060] Add the Logarithms (error in integral)
- From: BobHanlon at aol.com
- Date: Sun, 10 Sep 2000 03:15:01 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 9/7/2000 10:59:20 PM, Jos.Bergervoet at philips.com writes: >I'm trying to integrate a function f over a triangle with vertices: >(0,0), (a,0), (0,b). My input is: > > f = 1/ Sqrt[1+x^2+y^2]^3 > g = Integrate[f, {y,0, b-b x/a} ] > h = Integrate[g, {x,0,a}] > N[ h /. {a->10, b->10} ] > >With a=b=10, the output for this positive(!) function is negative: > > Out[4]= -4.91074 + 0. I > >which is obviously wrong. > >Looking at the answer with FullSimplify[h] I see it contains 4 >logarithms (see answer at the end of this message). Is there any >way to add these logarithms? (into one logarithm with the product >of the original arguments?) > >FullSimplify refuses to do this. Is there another way? > Let a > 0 and b > 0 subst = {(Log[x_] + Log[y_]) -> Log[x*y], (Log[x_] - Log[y_]) -> Log[x/y], Sqrt[a^2 + a^4] -> a*Sqrt[1 + a^2]}; cond = (a > 0 && b > 0); f[x_, y_] := 1/Sqrt[1 + x^2 + y^2]^3; g[x_, a_, b_] := Evaluate[Simplify[Integrate[f[x, y], {y, 0, b(1 - x/a)}], cond]] h[a_, b_] := Evaluate[Simplify[ Simplify[PowerExpand[Integrate[g[x, a, b], {x, 0, a}]], cond] /. subst] //. subst] h[a, b] 1/2*I*Log[((a - I*Sqrt[1 + a^2]*b)* (I*b*(b + Sqrt[1 + b^2]) + a*(1 + b^2 + b*Sqrt[1 + b^2])))/ ((a + I*Sqrt[1 + a^2]*b)*(-I*b*(b + Sqrt[1 + b^2]) + a*(1 + b^2 + b*Sqrt[1 + b^2])))] h1010 = (h[10, 10] // N // Chop) 1.3724418046360918 Plot3D[h[a, b], {a, 0.01, 10}, {b, 0.01, 10}]; haa[a_] := Evaluate[FullSimplify[h[a, a], a > 0]] (haa[10] // N // Chop) == h1010 True Plot[{haa[a], Pi/2}, {a, 0.001, 40}, PlotStyle -> {RGBColor[0, 0, 1], {RGBColor[1, 0, 0], AbsoluteDashing[{5, 5}]}}, PlotRange -> All]; Needs["Graphics`Graphics`"]; LogLinearPlot[{haa[a], Pi/2}, {a, 10, 1000}, PlotStyle -> {RGBColor[0, 0, 1], {RGBColor[1, 0, 0], AbsoluteDashing[{5, 5}]}}, PlotRange -> All]; Bob Hanlon