MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mantaining the same form

On 2012-01-07 10:16:36 +0000, Miguel Gil said:

> At a function in which one parameter is an expression "expr", 
> Mathematica 8.0 evaluates or simplifies the value of "expr" when it is 
> introduced.
> How is that Mathematica keep the same form of the "expr" introduced?.
> Example:
> In []: MyFunction [expr_]: = expr;
> MyFunction [(Sin [2x], Tan [y]) / (x * Sec [y]^2)]
> Out []: (Cos [y]^2 (Sin [2x], Tan [y]) / x
> I want to get the same expression (Sin [2x], Tan [y]) / (x * Sec [y]^2)
> Clearly, the input expression and modified expression are equivalent, 
> but are not equal.
> For example, if we were to apply the rule of L'Hopital or the theorem 
> Schwarz  the results would be erroneous.

I tried everything I could think of, but couldn't write any function 
that would just pass on the expression unchanged:

In[264]:= exprHeld[e_] := Hold[e]

In[265]:= exprHeld[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]
Out[265]= Hold[(Cos[y] Sin[2 x] Sin[y])/x]

In[266]:= holdAll[e_] := HoldAll[e]

holdAll[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]
Out[267]= HoldAll[(Cos[y] Sin[2 x] Sin[y])/x]

In[268]:= holdComplete[e_] := HoldComplete[e]

In[269]:= holdComplete[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]
Out[269]= HoldComplete[(Cos[y] Sin[2 x] Sin[y])/x]

In[270]:= uneval[e_] := Unevaluated[e];

In[271]:= uneval[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]
Out[271]= (Cos[y] Sin[2 x] Sin[y])/x

In[272]:= Hold[Unevaluated[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]]
Out[272]= Hold[Unevaluated[(Sin[2 x] Tan[y])/(x Sec[y]^2)]]

In[273]:= holdUneval[e_] := Hold[Unevaluated[e]]

In[274]:= holdUneval[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]

Out[274]= Hold[Unevaluated[(Cos[y] Sin[2 x] Sin[y])/x]]

In[278]:= ToString[HoldComplete @ ((Sin[2 x] * Tan[y])/(x * Sec[y]^2)), 
Out[278]= "HoldComplete[(Sin[2*x]*Tan[y])/(x*Sec[y]^2)]"

In[279]:= heldString[e_] := ToExpression[
   ToString[HoldComplete @ e, InputForm],

In[280]:= heldString[(Sin[2 x] * Tan[y])/(x * Sec[y]^2)]

Out[280]= HoldComplete[(Cos[y] Sin[2 x] Sin[y])/x]

  • Prev by Date: Re: Sorting coefficients
  • Next by Date: Re: Help! Mathematica 7 notebook is not working in Mathematica
  • Previous by thread: Mantaining the same form
  • Next by thread: Re: Mantaining the same form