[Date Index] [Thread Index] [Author Index]
Re: how to find n in expression x^n using a pattern?
steve wrote: >I am learning patterns in Mathemtica, and I thought this will be easy. > >suppose you are given a factored expression, such as x^n(x^2+2)(x^3+4) >where 'n' above can be any number, including zero (i.e. there is no >(x) as a separate factor). I need to find 'n', which can be >0,1,2,3,..etc.. > >i.e I need to find the power of the factor x by itself if it exist in >the expression. not (x^n+anything), just (x^n) byitself. > >For example > >p= x (x^2+2) ---> here n=1 > >I tried this > >p /. x^n_(any_) -> n > >This did not work since x^1 does not match pattern x^n_. I would have >worked if I had x^2 (x^3+2) for example. > >I know that I need to use something like x^_:1 to make it match x, >which >is really x^1, but I do not know how to use it in a replacement rule, >becuase >when I write > >p /. (x^n_:1)(any_) -> n > >it is an error. > >If I write > >p /. (x^_:1)(any_) -> _ > >I do not get back anything. > >Next I tried the Cases command, and again had no luck. > >The main problem is that Mathematica makes a difference between >x, x^1, and x^2, etc... when it comes to matching with pattern x^n_ > >any idea how to do this? >thanks, >steve > > > Why not do something like this , it sounds quite simplistic but it works :) Clear[p] p[x_] = x ^5(x^3 + 2x^2 + 3x - 13) sol2 = Solve[p[x] == 0, x] y = x /. sol2 n = Count[y, 0] Best regards -- Pratik Desai Graduate Student UMBC Department of Mechanical Engineering Phone: 410 455 8134