title: scipy.stats.multivariate_normal raising `LinAlgError: singular matrix` even though my covariance matrix is invertible
body: <p>I am having trouble trying to use <code>scipy.stats.multivariate_normal</code>, hopefully one of you might be able to help.</p>
  
  <p>I have a 2x2 matrix which is possible to find the inverse of using <code>numpy.linalg.inv()</code>, however when I attempt to use it as the covariance matrix in <code>multivariate_normal</code> I receive a <code>LinAlgError</code> stating that it is a singular matrix:</p>
  
  <pre><code>In [89]: cov = np.array([[3.2e5**2, 3.2e5*0.103*-0.459],[3.2e5*0.103*-0.459, 0.103**2]])
  
  In [90]: np.linalg.inv(cov)
  Out[90]:
  array([[  1.23722158e-11,   1.76430200e-05],
         [  1.76430200e-05,   1.19418880e+02]])
  
  In [91]: multivariate_normal([0,0], cov)
  ---------------------------------------------------------------------------
  LinAlgError                               Traceback (most recent call last)
  &lt;ipython-input-91-44a6625beda5&gt; in &lt;module&gt;()
  ----&gt; 1 multivariate_normal([0,0], cov)
  
  /mnt/ssd/Enthought_jli199/Canopy_64bit/User/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __call__(self, mean, cov, allow_singular, seed)
      421         return multivariate_normal_frozen(mean, cov,
      422                                           allow_singular=allow_singular,
  --&gt; 423                                           seed=seed)
      424
      425     def _logpdf(self, x, mean, prec_U, log_det_cov, rank):
  
  /mnt/ssd/Enthought_jli199/Canopy_64bit/User/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __init__(self, mean, cov, allow_singular, seed)
      591         """
      592         self.dim, self.mean, self.cov = _process_parameters(None, mean, cov)
  --&gt; 593         self.cov_info = _PSD(self.cov, allow_singular=allow_singular)
      594         self._dist = multivariate_normal_gen(seed)
      595
  
  /mnt/ssd/Enthought_jli199/Canopy_64bit/User/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __init__(self, M, cond, rcond, lower, check_finite, allow_singular)
      217         d = s[s &gt; eps]
      218         if len(d) &lt; len(s) and not allow_singular:
  --&gt; 219             raise np.linalg.LinAlgError('singular matrix')
      220         s_pinv = _pinv_1d(s, eps)
      221         U = np.multiply(u, np.sqrt(s_pinv))
  
  LinAlgError: singular matrix
  </code></pre>