Re: Re: A harmless and amusing bug

*To*: mathgroup at smc.vnet.net*Subject*: [mg76338] Re: [mg76283] Re: A harmless and amusing bug*From*: DrMajorBob <drmajorbob at bigfoot.com>*Date*: Sun, 20 May 2007 02:22:39 -0400 (EDT)*References*: <f2jtne$cef$1@smc.vnet.net> <28846535.1179568968945.JavaMail.root@m35>*Reply-to*: drmajorbob at bigfoot.com

We're not supposed to copy/paste???? That's neither harmless NOR amusing. Bobby On Sat, 19 May 2007 03:31:09 -0500, dimitris <dimmechan at yahoo.com> wrote= : > I think everything is normal (or quite normal!). > > In[23]:= > y = x /. DSolve[Derivative[2][x][t] + 2*Derivative[1][x][t] + x[t] == = > Sin[t], x, t][[1]] > Out[23]= > Function[{t}, C[1]/E^t + (t*C[2])/E^t - Cos[t]/2] > > In[24]:= > z = Function[{t}, C[1]/E^t + (t*C[2])/E^t - Cos[t]/2] (*pasted > result*) > Out[24]= > Function[{t}, C[1]/E^t + (t*C[2])/E^t - Cos[t]/2] > > In[25]:= > y === z > Out[25]= > False > > In[32]:= > LeafCount /@ {y, z} > Out[32]= > {27, 29} > > In[33]:= > FullForm /@ {y, z} > Out[33]= > {Function[List[t],Plus[Times[Power[ > E,Times[-1, > t]],C[1]],Times[Power[E,Times[-1,t]],t,C[2]],Times[Rational[-1,2], > Cos[t]]]],Function[List[t],Plus[Times[Power[E,Times[-1,t]],C[ > 1]],Times[Power[E,Times[-1,t]],t,C[2]],Times[-1,Times[Cos[ > t],Power[2,-1]]]]]} > > The two expressions have different FullForm! So SameQ results in > False. > > What I don't understand however is that neither > > FullSimplify[y == z] > > nor > > FullSimplify[y == z, ComplexityFunction -> LeafCount] > > returns True as it should be! Something happens here. > > Anyway, what is the reason to use paste? > > In[34]:= > y1 = x /. DSolve[Derivative[2][x][t] + 2*Derivative[1][x][t] + x[t] = == > Sin[t], x, t][[1]] > Out[34]= > Function[{t}, C[1]/E^t + (t*C[2])/E^t - Cos[t]/2] > > In[35]:= > z1 = % > Out[35]= > Function[{t}, C[1]/E^t + (t*C[2])/E^t - Cos[t]/2] > > In[36]:= > FullSimplify[y1 == z1] > Out[36]= > True > > In[37]:= > y1 === z1 > Out[37]= > True > > In[38]:= > LeafCount /@ {y1, z1} > Out[38]= > {27, 27} > > Dimitris > > > / Fred Simons : >> I found this example in a very old notebook of mine and I do not >> remember if this has already been discussed in this group. >> >> The following seems to be a harmless and amusing bug. It happens both= in >> Mathematica 5 and in Mathematica 6 under Windows. >> >> Execute the following command: >> >> y = x /. DSolve[x''[t]+ 2 x'[t]+ x[t]==Sin[t], x, t][[1]] >> >> Copy the result, paste it in the following command and execute. >> >> z =pasted result >> >> Obviously, y equals z. However, >> >> SameQ[y,z] --> False >> >> So here we have an example of two different Mathematica expressions w= ith >> the property that on level 1 all subexpressions are equal: >> >> And @@ Table[y[[i]] === z[[i]], {i, 0,2}] --> True >> >> It also is an example of two different expressions that convert to th= e >> same string: >> >> Equal[ToString /@ {y,z}] --> True >> >> The expression y has more leaves than can be found at level -1, and >> anyway less than the number of leaves of the expression z: >> >> {LeafCount[#], Length[Level[#, {-1}, Heads->True]]}& /@ {y,z} --> >> {{27,25},{29,29}} >> >> Fred Simons >> Eindhoven University of Technology > > > -- = DrMajorBob at bigfoot.com