1
$\begingroup$

From an expression describing a mathematical function, I would like to extract its parameters. For example, from the expression 4 Sin[2 a x^2 + b x + c], assuming that x is the function variable, I would like to have {a,b,c}.

I tried using patterns with FixedPoint and the TreeForm to select the leaves with heads corresponding to Symbol (but x), but unfortunately unsuccessfully.

$\endgroup$
2

1 Answer 1

6
$\begingroup$
expr = 4 Sin[2 a π x^2 + b x + c] + d E^f;

Cases[Level[expr, {-1}], Except[x, _Symbol?(! NumericQ[#] &)]] // Union

(*  {a, b, c, d, f}  *)

Or

Cases[Level[expr, {-1}], Except[x | _?NumericQ, _Symbol]] // Union

(*  {a, b, c, d, f}  *)
$\endgroup$
2
  • $\begingroup$ Works great, thank you ! Be careful to delete duplicates if there is twice a symbol occurring. $\endgroup$
    – Mammouth
    Commented Mar 8, 2016 at 18:39
  • $\begingroup$ @Mammouth - use Union instead of Sort. Modified above. $\endgroup$
    – Bob Hanlon
    Commented Mar 8, 2016 at 18:41

Not the answer you're looking for? Browse other questions tagged or ask your own question.