MathGroup Archive 1994

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

Search the Archive

re: Question about Cases command

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: re: Question about Cases command
  • From: olness at phyvms.physics.smu.edu (Fredrick Olness (214) 768-2500 or -2495, Fax -4095)
  • Date: 1 Jul 1994 18:19:22 -0400

If you are having trouble with pattern matching, a general solution is
to use the FullForm command.  9 times out of 10, this will solve the problem.

Fred Olness
olness at phyvms.physics.smu.edu

=========================================================
In[152]:=
myterms= {Derivative[1,2][a][x,y], Derivative[1,1][b][x,y]}

Out[152]=
  (1,2)         (1,1)
{a     [x, y], b     [x, y]}

In[155]:=
myterms //FullForm

Out[155]//FullForm=
List[Derivative[1, 2][a][x, y], Derivative[1, 1][b][x, y]]

In[156]:=
Cases[test, Derivative[__][a][__]]

Out[156]=
  (1,2)
{a     [x, y]}

=================================================================
=================================================================
From:	SMTP%"sherod at gauss.colorado.edu" 28-JUN-1994 17:16:56.69
To:	mathgroup at yoda.physics.unc.edu (Mathgroup)
CC:	
Subj:	Question about Cases command.

I am trying to grab a list of the derivatives of functions that
appears in a large list of differential equations.  I have been using
the Cases command to do this and have a question about some curious
behavior.

	Consider the list of two derivatives:

In[1]:= {Derivative[1,2][a][x,y], Derivative[1,1][b][x,y]}

           3       2
          d a     d b
Out[1]= {------, ------}
           1  2    1  1
         dx dy   dx dy


	I would like to select the derivatives of "a" .  First let's
	check the Head of the terms:

In[2]:= myterms = %;

In[3]:= Map[Head, myterms]

          (1,2)   (1,1)
Out[3]= {a     , b     }

	Now try to uses Cases:

In[4]:= Cases[myterms,_Derivative[__][a]]

Out[4]= {}

	Why didn't it select the "a" term out?  Try:

In[5]:= Cases[myterms, _Derivative[__][_]]

Out[5]= {}

In[6]:= Cases[myterms, _Derivative[__][__]]

           3       2
          d a     d b
Out[6]= {------, ------}
           1  2    1  1
         dx dy   dx dy

	Ok, now why must I use two underscores in this form?  ( In[6] )
	The "a" and the "b" are single elements.

	BTW. Here is something which works.

In[7]:= derivdepfn[deriv_] := Head[deriv][[1]];

In[9]:= Select[myterms, (derivdepfn[#1] === a) &]

           3
          d a
Out[9]= {------}
           1  2
         dx dy



Scott A. Herod
Program in Applied Mathematics
University of Colorado, Boulder
(sherod at newton.colorado.edu)








  • Prev by Date: Re: PowerPCs
  • Next by Date: Re: help number instruction
  • Previous by thread: Re: PowerPCs
  • Next by thread: Re: help number instruction