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
- References:
- Re: Hold and Equal
- From: bghiggins@ucdavis.edu
- Re: Hold and Equal