Re: FULLSIMPLIFY and Subscripted Variables
- To: mathgroup at smc.vnet.net
- Subject: [mg25812] Re: [mg25799] FULLSIMPLIFY and Subscripted Variables
- From: "Arturas Acus" <acus at itpa.lt>
- Date: Sat, 28 Oct 2000 01:41:05 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Dear Group, Few weeks ago I noted that subscribted vars can affect simplification (indirectly, throught LeafCount function). Because recently there was some interest in the example I repeat it here in more readible form. In[1]:= inputSubscribted = FullForm[(1 - 2*Subscript[x, 0]^2 + 2*(-1 + Subscript[x, 0]^2)*Cos[2*F])* (-I*Cos[F] + Subscript[x, 0]*Sin[F])^2] Out[1]//FullForm= FullForm[(Complex[0, -1]*Cos[F] + Sin[F]*Subscript[x, 0])^2*(1 - 2*Subscript[x, 0]^2 + 2*Cos[2*F]*(-1 + Subscript[x, 0]^2))] In[2]:= inputSubscribtedSimplified = FullSimplify[(1 - 2*Subscript[x, 0]^2 + 2*(-1 + Subscript[x, 0]^2)*Cos[2*F])* (-I*Cos[F] + Subscript[x, 0]*Sin[F])^2] Out[2]= (Cos[F] + I*Sin[F]*Subscript[x, 0])^2*(-1 + 2*Cos[2*F] + 4*Sin[F]^2*Subscript[x, 0]^2) In[3]:= inputOrdinary = FullForm[(1 - 2*Subscript[x, 0]^2 + 2*(-1 + Subscript[x, 0]^2)*Cos[2*F])* (-I*Cos[F] + Subscript[x, 0]*Sin[F])^2 /. {Subscript[x, -1] -> xm1, Subscript[x, 1] -> xp1, Subscript[x, 0] -> x0}] Out[3]//FullForm= FullForm[(1 - 2*x0^2 + 2*(-1 + x0^2)*Cos[2*F])*(Complex[0, -1]*Cos[F] + x0*Sin[F])^2] In[4]:= inputOrdinarySimplified = FullSimplify[(1 - 2*Subscript[x, 0]^2 + 2*(-1 + Subscript[x, 0]^2)*Cos[2*F])* (-I*Cos[F] + Subscript[x, 0]*Sin[F])^2 /. {Subscript[x, -1] -> xm1, Subscript[x, 1] -> xp1, Subscript[x, 0] -> x0}] Out[4]= (1 - 2*x0^2 + 2*(-1 + x0^2)*Cos[2*F])*(-I*Cos[F] + x0*Sin[F])^2 Input is ok: In[5]:= Expand[TrigToExp[inputSubscribted /. {Subscript[x, -1] -> xm1, Subscript[x, 1] -> xp1, Subscript[x, 0] -> x0}]] === Expand[TrigToExp[inputOrdinary]] Out[5]= True When expanded simplified rezult is the same again. In[6]:= Expand[TrigToExp[inputSubscribtedSimplified /. {Subscript[x, -1] -> xm1, Subscript[x, 1] -> xp1, Subscript[x, 0] -> x0}]] === Expand[TrigToExp[inputOrdinarySimplified]] Out[6]= True In[7]:= {LeafCount[inputSubscribtedSimplified /. {Subscript[x, -1] -> xm1, Subscript[x, 1] -> xp1, Subscript[x, 0] -> x0}], LeafCount[inputSubscribtedSimplified], LeafCount[inputOrdinarySimplified]} Out[7]= {30, 34, 32} So, no errors and after substituting subscribted variables FullSimplify indeed find nicer solution. I suspect that manipulating with subscribted variables one can think examples, when FullSimplify would like one type of expressions and hate others, much like using ComplexityFunction, but much faster. > Date: Wed, 25 Oct 2000 03:53:53 -0400 (EDT) > From: Blimbaum Jerry DLPC <BlimbaumJE at ncsc.navy.mil> To: mathgroup at smc.vnet.net > To: mathgroup at smc.vnet.net > Subject: [mg25812] [mg25799] FULLSIMPLIFY and Subscripted Variables > Within the past few weeks an example was shown for using > FullSimplify on an equation using the variable x_subscript0. If I've done > the work correctly, I just want to show that Mathematica produced an > 'incorrect' result using x_subscript that is fixed if the Utilities Notation > is used first. Here is the example: > > > expr= (-I*Cos[F] + Sin[F]*Subscript[x, 0])^2*(1 - 2*Subscript[x, > 0]^2 + 2*Cos[2*F]*(-1 + Subscript[x, 0]^2)) > > The example submitted to Mathgroup performed a FullSimplify on this > expression using the subscripted x and just x to show that Mathematica got a > so called 'nicer' form of the simplified expression when using a subscripted > variable. I tested this out in the following way to verify it: > > expr1=expr//Expand > > expr1//FullSimplify > expr2=%//Expand > > expr1==expr2 > > The results using x only returned True for expr1==expr2, however it > didnt when using x_subscript0, i.e. the FullSimplify was wrong for the > subscripted x. Then I repeated the above steps but first loaded the > UtilitiesNotation and then Symbolize[x_] and then the above steps returned > True for expr1==expr2... > > Jerry Blimbaum NSWC Panama City, Fl > > > > > Dr. Arturas Acus Institute of Theoretical Physics and Astronomy Gostauto 12, 2600,Vilnius Lithuania E-mail: acus at itpa.lt Fax: 370-2-225361 Tel: 370-2-612906