Re: Mathematica question
- To: mathgroup at smc.vnet.net
- Subject: [mg124799] Re: Mathematica question
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Tue, 7 Feb 2012 04:04:30 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
On 2/6/12 at 2:39 AM, hcohl001 at gmail.com (Howie) wrote:
>Let's say you've got an expression
>expr = {Sin[x] + x^2 - x^2*Cos[x], x^3 (1 + x^2) - x^3, x^4 - x^3}
>What does this mean?
>Table[expr[[j]] // FullSimplify[#, $assumptions] & /@ # & // Expand
>// @ # &, {j, 3}]
Until $assumptions is defined, it doesn't mean much. But perhaps
this is a typo and it should be the built-in symbol
$Assumptions. If so and $Assumptions has not been modified from
the default value the expression above has been made needlessly complex.
That is
Table[expr[[j]]//FullSimplify[#, $Assumptions]&, {j,3}]
is exactly equivalent to
Table[expr[[j]]//FullSimplify, {j,3]
which is exactly equivalent to
expr//FullSimplify
That is
In[5]:= (Table[
expr[[j]] // FullSimplify[#, $Assumptions] & /@ # & //
Expand //@ # &, {j, 3}]) == (expr // FullSimplify // Expand)
Out[5]= True
>I am new to Mathematica as far as these more complicated expressions
>are concerned.
>Can you explain symbol by symbol?
The # is a place holder in a pure function
The & is used to define a pure function.
So
=46ullSimplify[#, $assumptions] &
is a pure function that when used as
=46ullSimplify[#, $assumptions] &[expr]
or
=46ullSimplify[#, $assumptions] &@ expr
simply does a full simplification of expr
The /@ is short hand for Map, i.e.
=46ullSimplify[#, $assumptions] &/@expr is short hand for
Map[FullSimplify[#, $assumptions] &, expr]
But since FullSimplify does what it can on any expression, there
is no need to Map FullSimplify to each element of a list. That is,
Map[FullSimplify[#, $Assumptions] &, expr]
does the same as
=46ullSimpify[expr]
or
=46ullSimplify@expr (* pre-fix form *)
or
expr//FullSimplify (* post fix form *)
The same observations apply to Expand