title: Passing arguments to fsolve
body: <p>I'm solving a nonlinear equation with many constants.<br>
  I created a function for solving like:</p>
  
  <pre><code>def terminalV(Vt, data):
      from numpy import sqrt
      ro_p, ro, D_p, mi, g = (i for i in data)
      y = sqrt((4*g*(ro_p - ro)*D_p)/(3*C_d(Re(data, Vt))*ro)) - Vt
      return y
  </code></pre>
  
  <p>Then I want to do:</p>
  
  <pre><code>data = (1800, 994.6, 0.208e-3, 8.931e-4, 9.80665)
  Vt0 = 1
  Vt = fsolve(terminalV, Vt0, args=data)
  </code></pre>
  
  <p>But <code>fsolve</code> is unpacking <code>data</code> and passing too many arguments to <code>terminalV</code> function, so I get:</p>
  
  <blockquote>
    <p>TypeError: terminalV() takes exactly 2 arguments (6 given)</p>
  </blockquote>
  
  <p>So, my question can I somehow pass a tuple to the function called by <code>fsolve()</code>?</p>