Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: Pattern matching problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg88538] Re: Pattern matching problem
  • From: dh <dh at metrohm.ch>
  • Date: Thu, 8 May 2008 04:11:17 -0400 (EDT)
  • References: <fvs2kf$eo4$1@smc.vnet.net>


Hi Charlie,

use ReplaceAll (/.) instead of Count. ReplaceAll treats any piece at 

most once. Here is an example, where "expression" is your expression. We 

prevent any evaluation of the found multiplicity by my[..] and use Total 

to add all arguments to my:

t=expression/. D[u[x],{x,i_}]^k_.:>my[i k]

Cases[t,my[x_]:>x,Infinity]//Total

hope this helps, Daniel



Charlie Brummitt wrote:

> Hi all,

> Here is my problem: Given a polynomial in the variables u[x,t] and its

> spatial derivatives (for example, the polynomial could be 1 + u +

> u_xx*u_xxx^2), count the number of spatial derivatives with multiplicity.

> That is, after writing the above polynomial as

> 

> 

> 1 + u + u_xx * u_xxx * u_xxx

> 

> the output should be 2 + 3 + 3 (basically, you count the number of x's).

> 

> I have tried implementing this using a pattern matching approach. Here is

> what I tried:

> 

> f[equation_ ] :=  Sum[ k * j * Count[ equation , D[ u[x, t], {x, j} ] ^ k ,

> {0, \infinity} ], {j, 1, 50}, {k, 1, 50}]

> 

> This fails to work on, for example, the input u_xx^2, because it outputs 6

> when it should output 4. This is because the u_xx is counted (+2 to the

> sum), and the u_xx^2 is counted (+4 to the sum). This is because the u_xx is

> nested inside the Power[    , 2] in its representation in Mathematica and so

> it gets counted too many times in my formula. I can't seem to figure out a

> way to use the "provided that" operator /; to make this formula work.

> 

> I've also tried doing some replacement methods, but to no success.

> 

> Thanks for any help you may be able to provide.

> 

> -Charlie

> 

> 




  • Prev by Date: Re: Intersection of surfaces
  • Next by Date: Re: Trouble computing conjugates
  • Previous by thread: Re: Pattern matching problem
  • Next by thread: Re: Pattern matching problem