Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: Re: Hold and Equal

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73771] Re: [mg73747] Re: Hold and Equal
  • From: Murray Eisenberg <murray at math.umass.edu>
  • Date: Wed, 28 Feb 2007 04:29:07 -0500 (EST)
  • Organization: Mathematics & Statistics, Univ. of Mass./Amherst
  • References: <erufqm$s7j$1@smc.vnet.net> <200702271048.FAA24024@smc.vnet.net>
  • Reply-to: murray at math.umass.edu

Aha!  I believe this approach _almost_ allows me to accomplish what I 
was REALLY trying to accomplish.  It certainly works in the example I 
gave.  If I encapsulate this in a function...

   formEquation[expr_, op_]:= HoldForm[expr=z]/.z\[Rule]op[expr]

... then

   formEquation[(a+b)^2,Identity]

will produce exactly what I want.

However, if I try something like the example I was really after (which I 
didn't mention in my original post, since I gave something simpler), it 
works in the direct version...

   HoldForm[Integrate[x^2,x] = z] /. z\[Rule]Integrate[x^2,x]

but not with the encapsulating function:

   formEquation[Integrate[x^2, x], Identity]

The latter produces the equation

   x^3/3 = x^3/2

whereas I want the left-hand side to be the unevaluated integral expression.

You can tell I'm struggling with Hold!  (One of the "last frontiers" in 
my Mathematica education.)

bghiggins at ucdavis.edu wrote:
> Murray,
> 
> Try this
> 
> 
> HoldForm[(a + b)^2 = z] /. z -> Expand[(a + b)^2]
> 
> 
> (a + b)^2 = a^2 + 2*a*b + b^2
> 
> Cheers,
> 
> Brian
> 
> 
> 
> On Feb 26, 3:20 am, Murray Eisenberg <mur... at math.umass.edu> wrote:
>> How can I produce in an Output cell (under program control) an
>> expression like the following,
>>
>>    (a+b)^2 = a^2+ 2 a b + b^2
>>
>> where instead of the usual Equal (==) I get a Set (=), as in traditional
>> math notation?  I want to input the unexpanded (a+b)^2 and have the
>> expansion done automatically.
>>
>> Of course, I can try something like the following:
>>
>>    (a+b)^2 == Expand[(a+b)^2])
>>
>> So how do I convert the == to =?  Of course
>>
>>    ((a + b)^2 == Expand[(a + b)^2]) /. Equal -> Set
>>
>> gives a Set::write error.  And
>>
>>    (Hold[(a + b)^2 == Expand[(a + b)^2]]) /. Equal -> Set
>>
>> doesn't actually evaluate the Expand part and leaves the "Hold" wrapper.
>>
>> --
>> Murray Eisenberg                     mur... at math.umass.edu
>> Mathematics & Statistics Dept.
>> Lederle Graduate Research Tower      phone 413 549-1020 (H)
>> University of Massachusetts                413 545-2859 (W)
>> 710 North Pleasant Street            fax   413 545-1801
>> Amherst, MA 01003-9305
> 
> 
> 

-- 
Murray Eisenberg                     murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305


  • Prev by Date: Re: all the possible minors of a matrix
  • Next by Date: Re: all the possible minors of a matrix
  • Previous by thread: Re: Hold and Equal
  • Next by thread: Re: Hold and Equal