[Date Index]
[Thread Index]
[Author Index]
RE: Re: General--Exponential simplifications by default
*To*: mathgroup at smc.vnet.net
*Subject*: [mg69120] RE: [mg69073] Re: General--Exponential simplifications by default
*From*: "Valko, Peter" <valko at pe.tamu.edu>
*Date*: Wed, 30 Aug 2006 06:34:28 -0400 (EDT)
*Sender*: owner-wri-mathgroup at wolfram.com
Andrzej:
You tried to convince me that Denominator[] and Numerator[] evaluates
its argument in a standard way and then they find the positive and
negative powers.
I tried to convince you, that Denominator[] and Numerator[] do something
more: practically intermitting a Simplify[] operation before really
getting to do the real job.
Proof:
If I write
1/Sqrt[2]
or I write
Evaluate[1/Sqrt[2]]
I still get
1/Sqrt[2] (in input form) or Power[2,Rational[-1,2]] (in full form).
However, when I ask for
Numerator[1/Sqrt[2]]
I get
Sqrt[2] (in input form) or Power[2, Rational[1, 2]] (in full form)
so "it is pretty clear" that Numerator[] and Denominator[] are doing
something secret after evaluating the argument and before really finding
the Numerator and Denominator.
Your "solution" suggesting to use
Numerator[Unevaluated[1/Sqrt[2]]]
does something else than just preventing the evaluation of
1/Sqrt[2]
(because we already agreed that the evaluation does not do anything to
the expression 1/Sqrt[2]).
What it really prevents is the simplification of the unevaluated or the
evaluated expression, because (I guess) an Unevaluated[expression] is
left intact by Simplify[].
Or am I missing something?
-----Original Message-----
From: Andrzej Kozlowski [mailto:akoz at mimuw.edu.pl]
To: mathgroup at smc.vnet.net
Subject: [mg69120] Re: [mg69073] Re: General--Exponential simplifications by
default
Pro* The statement about FullForm you are quoting is "true", at best,
only in a "certain sense":
FullForm does "not affect" evaluation "inside" FullForm, as in:
FullForm[2^2]//InputForm
FullForm[4]
But of course it does affect evaluation "outside" FullForm, as in:
FullForm[2]^2//InputForm
FullForm[2]^2
This is the reason why you also get:
{Numerator[#],Denominator[#]}&@FullForm[2/3]//InputForm
{FullForm[2/3], 1}
which I think makes pretty clear what happened also in your example.
Andrzej Kozlowski
On 29 Aug 2006, at 08:26, p-valko at tamu.edu wrote:
> Thanks and basically I agree. However, a funny side effect is the
> following:
>
> Denominator[Exp[x] /. x -> -2 ]
> gives
> E^2
>
> but
>
> Denominator[FullForm[Exp[x]] /. x -> -2 ] gives
> 1
>
> In other words, wrapping the FullForm around an expression changes its
> "meaning".
> This contradicts the statement that
>>> FullForm acts as a "wrapper", which affects printing, but not
>>> evaluation.<<
> Or am I missing something?
>
>
>
> Andrzej Kozlowski wrote:
>> I do not consider any of these examples "a contradiction". What needs
>> to be understood is the difference between certain Mathematica
>> expressions before and after they are evaluated. In the case of your
>> examples consider:
>>
>>
>> Numerator[Unevaluated[Exp[-x]]]
>>
>> E^(-x)
>>
>> vs
>>
>> Numerator[Exp[-x]]
>>
>> 1
>>
>>
>> Numerator[Unevaluated[1/Sqrt[2]]]
>>
>> 1
>>
>> vs
>>
>> Numerator[1/Sqrt[2]]
>>
>> Sqrt[2]
>>
>> The cause of the apparent problem is that Numerator does not hold its
>> argument, so whiteout Unevaluated you are getting the numerator of
>> the whatever your expression evaluates to, not of your actual input.
>> TO get the latter you simply need to use Unevaluated. This is no
>> different from:
>>
>>
>> Numerator[3/6]
>>
>> 1
>>
>> Numerator[Unevaluated[3/6]]
>>
>> 3
>>
>> If this is not a contradiction than neither are the other examples.
>> Understanding the process of evaluation is perhaps the most important
>> thing when using functional languages (not just Mathematica, the same
>> sort of things occur, perhaps in an even more striking way, in
>> languages like Lisp ).
>>
>> Andrzej Kozlowski
>>
>>
>>
>> On 27 Aug 2006, at 07:24, p-valko at tamu.edu wrote:
>>
>>> Daniel,
>>> Could you tell me why the contradiction?:
>>>
>>> In[14]:=Exp[-x]//InputForm
>>> Out[14]//InputForm=E^(-x)
>>>
>>> In[15]:=Numerator[Exp[-x]]//InputForm
>>> Out[15]//InputForm=1
>>>
>>> Mathematica automatically turns it into Power[E, Times[-1, x]], but
>>> the user beleives that the exponent is in the numerator.
>>> What you see is not what you get!
>>>
>>>
>>> My favorite contradiction is the following:
>>>
>>> In[24]:=Numerator[1/Sqrt[2]]//InputForm
>>> Out[24]//InputForm=Sqrt[2]
>>>
>>> In[25]:=Denominator[1/Sqrt[2]]//InputForm
>>> Out[25]//InputForm=2
>>>
>>> I think "Numerator" and "Denominator" should not be allowed to do
>>> whatever they want. Too much liberty here...
>>>
>>> Peter
>>>
>>>
>>> Daniel Lichtblau wrote:
>>>> guillaume_evin at yahoo.fr wrote:
>>>>> Hi !
>>>>>
>>>>> I want to avoid simplifications when Mathematica integrates
>>>>> expressions with exponential terms. For example, I have :
>>>>>
>>>>> In[8]= Espcond[y_] = Integrate[x*Densx[x, y], {x, 0,
>>>>> Infinity}, Assumptions -> alpha > 0]
>>>>> Out[8]= E^(-2eta y)(-theta + E^(eta y)(2+theta))/(2alpha)
>>>>>
>>>>> I do not want to have a factorization by E^(-2eta y). More
>>>>> precisely I would like to have the following result:
>>>>> Out[8]= (-theta E^(-2eta y)+ E^(-eta y)(2+theta))/(2alpha)
>>>>>
>>>>> I guess there is a way to tackle this problem with
>>>>> "ComplexityFunction" and "Simplify", but I tried different things
>>>>> such as "ComplexityFunction -> (Count[{#1}, Exp_, ∞] &)" in
>>>>> the "Simplify" function but no change appears.
>>>>>
>>>>> Is someone could give me some tricks on how tu use the
>>>>> "ComplexityFunction" ?
>>>>>
>>>>> Thank you in advance.
>>>>>
>>>>> Guillaume
>>>>>
>>>>> Link to the forum page for this post:
>>>>> http://www.mathematica-users.org/webMathematica/wiki/wiki.jsp?
>>>>> pageName=Special:Forum_ViewTopic&pid=12974#p12974
>>>>> Posted through http://www.mathematica-users.org [[postId=12974]]
>>>>
>>>>
>>>> Could Collect with respect to powers of the exponential.
>>>>
>>>> In[59]:= ee = E^(-2eta*y)*(-theta + E^(eta*y)(2+theta))/(2*alpha);
>>>>
>>>> In[60]:= InputForm[Collect[ee, Exp[eta*y]]] Out[60]//InputForm=
>>>> -theta/(2*alpha*E^(2*eta*y)) + (2 + theta)/(2*alpha*E^(eta*y))
>>>>
>>>> Daniel Lichtblau
>>>> Wolfram Research
>>>
>
Prev by Date:
**Re: RE: Re: General--Difficulties in Understanding Mathematica Syntax**
Next by Date:
**Re: Re: General--Exponential simplifications by default**
Previous by thread:
**Re: General--Exponential simplifications by default**
Next by thread:
**Re: Re: General--Exponential simplifications by default**
| |