Re: Re: Re: How to simplify to a result that is real
- To: mathgroup at smc.vnet.net
- Subject: [mg50769] Re: [mg50750] Re: [mg50735] Re: How to simplify to a result that is real
- From: Andrzej Kozlowski <andrzej at akikoz.net>
- Date: Sun, 19 Sep 2004 21:39:27 -0400 (EDT)
- References: <cidt38$brv$1@smc.vnet.net> <200409180948.FAA00572@smc.vnet.net> <200409190755.DAA17960@smc.vnet.net> <1C034D6C-0A39-11D9-A57C-000A95B4967A@akikoz.net>
- Sender: owner-wri-mathgroup at wolfram.com
Actually, I think your question is more interesting that I had at first
realized. Having thought about this I now think that when you evaluate
ComplexExpand[exp[a,b,c,...],TargetFunctions->{Re,Im}], where a,b,c,...
are parameters, the following thing happens. First
ComplexExpand[exp[a,b,c,...],{a,b,c,...},TargetFunctions->{Re,Im}] is
evaluated in terms of Re[a], Im[a], Re[b], Im[b] ...and then all the
Im[a],Im[b] are set to 0 and all Re[a],Re[b] ... are set to a, b ....
That is why they do not appear in the final answer. I came to this
conclusion by considering the following puzzle:
ComplexExpand[a/(b + c*I), TargetFunctions -> {Re}]
(a*b)/(2*b*(b + I*c) - (b + I*c)^2) -
(I*a*c)/(2*b*(b + I*c) - (b + I*c)^2)
ComplexExpand[a/(b + c*I), TargetFunctions -> {Im}]
(a*b)/((b + I*c)^2 - 2*I*(b + I*c)*c) -
(I*a*c)/((b + I*c)^2 - 2*I*(b + I*c)*c)
The puzzle is: why are these answers different and how are they arrived
at?
My answer is that they are evaluated as follows:
ComplexExpand[a/(b + c*I), {a, b, c},
TargetFunctions -> {Re}] /. {Re[a] -> a, Re[b] -> b,
Re[c] -> c}
(a*b)/(2*b*(b + I*c) - (b + I*c)^2) -
(I*a*c)/(2*b*(b + I*c) - (b + I*c)^2)
ComplexExpand[a/(b + c*I), {a, b, c},
TargetFunctions -> {Im}] /. {Im[a] -> 0, Im[b] -> 0,
Im[c] -> 0}
(a*b)/((b + I*c)^2 - 2*I*(b + I*c)*c) -
(I*a*c)/((b + I*c)^2 - 2*I*(b + I*c)*c)
Note that the very long expression resulting from evaluating
ComplexExpand[a/(b + c*I), {a, b, c},
TargetFunctions -> {Re}]
does indeed contain only terms of the form Re[a] ...
and the expression resulting form evaluating:
ComplexExpand[a/(b + c*I), {a, b, c},
TargetFunctions -> {Im}]
only terms of the frm Im[a], Im[b] ....
Andrzej
On 19 Sep 2004, at 21:40, Andrzej Kozlowski wrote:
> I am not sure if I have understood you correctly, but normally,
> ComplexExpand[expression, TargetFunctions -> {Re, Im}] will explicitly
> include Re and Im only if expression contains some symbols that are
> specified to be complex, e.g:
>
> ComplexExpand[(a + b*I)/(c + d*I), TargetFunctions ->
> {Im, Re}]
>
> (a*c)/(c^2 + d^2) + I*((b*c)/(c^2 + d^2) -
> (a*d)/(c^2 + d^2)) + (b*d)/(c^2 + d^2)
>
>
> but here explicit Re and Im are present:
>
> ComplexExpand[(a + b*I)/(c + d*I), {a},
> TargetFunctions -> {Im, Re}]
>
>
> (Im[a]*d)/(c^2 + d^2) + (b*d)/(c^2 + d^2) +
> (c*Re[a])/(c^2 + d^2) + I*((Im[a]*c)/(c^2 + d^2) +
> (b*c)/(c^2 + d^2) - (d*Re[a])/(c^2 + d^2))
>
>
>
> With other target functions this is not necessarily always the case,
> e.g.
>
> ComplexExpand[(a + b*I)/(c + d*I), TargetFunctions ->
> {Abs}]
>
> (a*c)/Abs[c + I*d]^2 + I*((b*c)/Abs[c + I*d]^2 -
> (a*d)/Abs[c + I*d]^2) + (b*d)/Abs[c + I*d]^2
>
> Andrzej Kozlowski
> Chiba, Japan
> http://www.akikoz.net/~andrzej/
> http://www.mimuw.edu.pl/~akoz/
>
>
>
> On 19 Sep 2004, at 16:55, DrBob wrote:
>
>> *This message was transferred with a trial version of CommuniGate(tm)
>> Pro*
>> It's interesting that the output of ComplexExpand[ch, TargetFunctions
>> -> {Re, Im}] in this case doesn't include Re or Im. What is
>> ComplexExpand really doing, here?
>>
>> Bobby
>>
>> On Sat, 18 Sep 2004 05:48:55 -0400 (EDT), Peter Valko
>> <p-valko at tamu.edu> wrote:
>>
>>> Richard Chen <richard at doubleprime.com> wrote in message
>>> news:<cidt38$brv$1 at smc.vnet.net>...
>>>> The command:
>>>>
>>>> Integrate[1/(1 + e Cos[t]), {t, 0, a},
>>>> Assumptions -> {-1 < e < 1, 0 < a < Pi}]
>>>>
>>>> leads to a complex valued result. I could not make
>>>> mathematica to render the result in a form that is
>>>> purely real. ComplexExpand, Refine all do not seem to work.
>>>>
>>>> Does anyone know how to make mathematica to simplify this
>>>> result into a real form?
>>>>
>>>> Thanks for any info.
>>>>
>>>> Richard
>>>
>>>
>>>
>>> Richard,
>>>
>>> I think this will work:
>>>
>>>
>>> ch = Integrate[1/(1 + e Cos[t]), {t, 0, a}, Assumptions -> {-1 < e <
>>> 1, 0 < a < Pi}]
>>>
>>> FullSimplify[ComplexExpand[ch, TargetFunctions -> {Re, Im}], {-1 < e
>>> <
>>> 1, 0 < a < Pi}]
>>>
>>>
>>> The result is
>>>
>>> (-2*ArcTan[((-1 + e)*Tan[a/2])/Sqrt[1 - e^2]])/Sqrt[1 - e^2]
>>>
>>>
>>> Peter
>>>
>>>
>>>
>>
>>
>>
>> --
>> DrBob at bigfoot.com
>> www.eclecticdreams.net
>>
>>
>
- References:
- Re: How to simplify to a result that is real
- From: p-valko@tamu.edu (Peter Valko)
- Re: Re: How to simplify to a result that is real
- From: DrBob <drbob@bigfoot.com>
- Re: How to simplify to a result that is real