| 1 | initial version |
I am not sure how I should interpret your criterion: do you want to allow a variable to appear more than once in the same monomial? Supposing you do, and supposing p is your polynomial expression, here's a fancy solution
[m for m in p.iterator() if sum(m({x:0}).is_zero() for x in (i_L, d, v_g, v_C)) == 1]
There's certainly many other, but I am afraid none is going to be very simple. A word of explanation:
for loops over each monomial. m, m({x:0}) evaluates the monomial at the point x=0, where x ranges over i_L, d, etc.is_zero() returns True, the variable is obviously in the monomial. True and False get converted to 0 and 1, thus sum(...) == 1 guarantees that the monomial contains exactly one of the variables i_l, d, etc.Thanks for this refreshing riddle :)
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.