Re: Why does this lead to an answer with complex numbers?
- To: mathgroup at smc.vnet.net
- Subject: [mg71497] Re: Why does this lead to an answer with complex numbers?
- From: "David W. Cantrell" <DWCantrell at sigmaxi.net>
- Date: Mon, 20 Nov 2006 18:12:00 -0500 (EST)
- Organization: NewsReader.Com Subscriber
- References: <ejosmm$n3k$1@smc.vnet.net> <ejrmr9$97b$1@smc.vnet.net> <ejs3fv$9ii$1@smc.vnet.net>
Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com> wrote:
> aaronfude at gmail.com wrote:
> > Hi,
> >
> > Thanks for all the answers. They were all very useful, even though I
> > have done my best to confuse everyone by leaving a beta in there which
> > had nothing to do with the problem.
> >
> > So I understand that the answer may be complex and the complex part is
> > constant which is in a certain sense valid for a indefinite integral.
> > But I very much need a real answer and I still can't quite extract.
> > Consider the following:
> >
> > \!\(\(\(\ \)\(Assuming[x > 0 && A > 0 && B > 0 && \ B < 1, \
> > FullSimplify[Integrate[Log[\@\(A^2 + x\^2\) - B*x\ ], \ x]]]\)\)\)
> >
> > The answer that I get is correct, but not very useful since it is
> > appears complex and I could find a way to determine the real part. Do
> > you have any suggestions?
For mine, see the end of this post.
> Hi Aaron,
>
> What version of Mathematica do you use? With Mathematica 5.2 I do not
> get any complex numbers for your integral.
Yes, you do. The mere fact that /I/ does not appear in the expression does
not mean that it is necessarily real. While there may be some special
values of A, B, and x which cause Out[1] to be real, it is generally
complex.
> In[1]:=
> Assuming[x > 0 && A > 0 && B > 0 && B < 1,
> FullSimplify[Integrate[Log[Sqrt[A^2 + x^2] - B*x], x]]]
>
> Out[1]=
> 1 2 2 2
> --------------- (2 Sqrt[-1 + B ] x (-1 + Log[-B x + Sqrt[A + x ]]) +
> 2
> 2 Sqrt[-1 + B ]
>
> 2
> Sqrt[-1 + B ] x
> A (2 ArcTanh[---------------] - 4 Log[A] - 4 Log[B] +
> A
>
> 2 2 2
> 4 (-1 + B) (1 + B) (A Sqrt[-1 + B ] - x + B Sqrt[A + x ])
>
> Log[-(----------------------------------------------------------)] +
> 2 2
> A Sqrt[-1 + B ] + (-1 + B ) x
>
> 2 2 2 2
> (-1 + B ) (A Sqrt[-1 + B ] + x + B Sqrt[A + x ])
> Log[-------------------------------------------------]))
> 2 2
> A Sqrt[-1 + B ] + x - B x
>
> In[2]:=
> FreeQ[%, I]
>
> Out[2]=
> True
[snip]
My suggestion is that you get an antiderivative using some work done by
hand. My result is
x*(Log[Sqrt[A^2 + x^2] - B*x] - 1) +
A/Sqrt[1 - B^2]*(ArcCot[A*B/Sqrt[(1 - B^2)*(A^2 + x^2)]] +
ArcTan[Sqrt[1 - B^2]*x/A])
the correctness of which is easily checked using Mathematica:
In[1]:= FullSimplify[D[x*(Log[Sqrt[A^2 + x^2] - B*x] - 1) +
A/Sqrt[1 - B^2]*(ArcCot[A*B/Sqrt[(1 - B^2)*(A^2 + x^2)]] +
ArcTan[Sqrt[1 - B^2]*x/A]), x], x > 0 && A > 0 && 0 < B < 1]
Out[1]= Log[(-B)*x + Sqrt[A^2 + x^2]]
Note that my antiderivative is not only real, but all its subexpressions
are real. Can anyone get Mathematica to find such an antiderivative
directly?
David
- Follow-Ups:
- Re: Re: Why does this lead to an answer with complex numbers?
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Re: Why does this lead to an answer with complex numbers?