Re: Generalization of Variables ?
- To: mathgroup at smc.vnet.net
- Subject: [mg109239] Re: Generalization of Variables ?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 18 Apr 2010 05:59:36 -0400 (EDT)
variables[expr_] := Union[ Cases[ expr, _Symbol?(! NumericQ[#] &), Infinity]] expr = x + E^y + Sin[x*Pi]; variables[expr] {x,y} Bob Hanlon ---- Jack L Goldberg 1 <jackgold at umich.edu> wrote: ============= Hi Folks, The built-in command "Variables" does not give the (naively expected) answer when it is called with functions such as x + Sin[x]. This behavior is mentioned in the description of "Variables". I have constructed a generalization of "Variables" which works as expected - I think? I would appreciated a critique of this code which addresses these issues: a) Is there a situation in which it fails? b) If the code works, can it be improved. Question b) is asked because I am not fully acquainted with all of Mathematica's commands. Here is the code. variables[f_]:= Flatten[ Union[ Cases[ Map[N,Level[f,{-1},z_Symbol]]/.True->{} ] I have tried "variables" on functions coded in the obvious manner, say, Sin[x]+Exp[x^2], Sin[x+y]-z^2, etc. and a few esoteric examples. Jack