title: NotImplementedError in Sympy's solve
body: <p>I'm reading an article about Bloom filters, <a href="https://en.wikipedia.org/wiki/Bloom_filter" rel="noreferrer">https://en.wikipedia.org/wiki/Bloom_filter</a>, in which an expression is derived for the optimal number of hash functions. I'd like to reproduce the computation for the simplified case that <code>m</code> = <code>n</code>, that is, I'd like to determine the minimum of the function</p>
  
  <pre><code>(1-exp(-x))**x
  </code></pre>
  
  <p>which, from the article, should occur at <code>x = ln(2)</code>. I tried doing this with <code>sympy</code> as follows:</p>
  
  <pre><code>In [1]: from sympy import *
  
  In [2]: x, y, z = symbols('x y z')
  
  In [3]: init_printing(use_unicode=True)
  
  In [8]: from sympy.solvers import solve
  
  In [9]: solve(diff((1-exp(-x))**x,x), x)
  </code></pre>
  
  <p>However, I get a</p>
  
  <pre><code>NotImplementedError: multiple generators [x, exp(x), log(1 - exp(-x))]
  No algorithms are implemented to solve equation x*exp(-x)/(1 - exp(-x)) + log(1 - exp(-x))
  </code></pre>
  
  <p>I would just like to double-check whether Sympy really cannot solve this problem? Perhaps I need to add additional constraints/assumptions on <code>x</code>?</p>