Python Numpy Error Function
Contents |
2/sqrt(pi)*integral(exp(-t**2), t=0..z). Parameters:x
Python Erfc
: ndarray Input array. Returns:res : ndarray The values of
Module 'scipy' Has No Attribute 'special'
the error function at the given points x. See also erfc, erfinv, erfcinv Notes The cumulative of the unit normal distribution scipy erfinv is given by Phi(z) = 1/2[1 + erf(z/sqrt(2))]. References [R200]http://en.wikipedia.org/wiki/Error_function [R201]Milton Abramowitz and Irene A. Stegun, eds. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. New York: Dover, 1972. http://www.math.sfu.ca/~cbm/aands/page_297.htm [R202]Steven G. Johnson, Faddeeva W function implementation. http://ab-initio.mit.edu/Faddeeva Previous topic scipy.special.multigammaln Next topic scipy.special.erfc © Copyright 2008-2009, The Scipy community. Last updated on May 11, 2014. Created using Sphinx 1.2.2.
here for a quick overview of the site Help Center Detailed answers to any questions you might have
Python Cumulative Distribution Function
Meta Discuss the workings and policies of this site About Us scipy special Learn more about Stack Overflow the company Business Learn more about hiring developers or posting ads with python error handling best practices us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 6.2 million programmers, just https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.special.erf.html like you, helping each other. Join them; it only takes a minute: Sign up command for inverse ERF function in python [closed] up vote 7 down vote favorite What is the command to calculate Inverse Error function (erf) of a function in a python and which module is needed to import? python python-2.7 python-3.x numpy share|improve http://stackoverflow.com/questions/31266249/command-for-inverse-erf-function-in-python this question asked Jul 7 '15 at 10:37 Naitik Mathur 442 closed as unclear what you're asking by jonrsharpe, ekad, cel, HaveNoDisplayName, Soner Gönül Jul 7 '15 at 14:50 Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question. add a comment| 2 Answers 2 active oldest votes up vote 10 down vote For the inverse error function, scipy.special has erfinv: http://docs.scipy.org/doc/scipy/reference/generated/scipy.special.erfinv.html#scipy.special.erfinv In [4]: from scipy.special import erfinv In [5]: erfinv(1) Out[5]: inf In [6]: erfinv(0.4) Out[6]: 0.37080715859355784 share|improve this answer answered Jul 7 '15 at 10:41 xnx 11.1k31541 add a comment| up vote 0 down vote I suggest to use scipy, a library that uses numpy. the module you need to import to use is erfinv: from scipy.special import er
19 January 2009 by John The question came up on StackOverflow this morning how to compute the error function erf(x) in Python. The standard answer for how to compute anything numerical in Python is "Look in SciPy." However, this person didn't want to take on http://www.johndcook.com/blog/2009/01/19/stand-alone-error-function-erf/ the dependence on SciPy. I've seen variations on this question come up http://www.physics.nyu.edu/pine/pymanual/html/chap9/chap9_scipy.html in several different contexts lately, including questions about computing the normal distribution function, so I thought I'd write up a solution.Here's a Python implementation of erf(x) based on formula 7.1.26 from A&S. The maximum error is below 1.5 × 10-7.import math def erf(x): # constants a1 = 0.254829592 a2 = error function -0.284496736 a3 = 1.421413741 a4 = -1.453152027 a5 = 1.061405429 p = 0.3275911 # Save the sign of x sign = 1 if x < 0: sign = -1 x = abs(x) # A & S 7.1.26 t = 1.0/(1.0 + p*x) y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*math.exp(-x*x) return sign*yThis problem is typical in two ways: python numpy error A&S has a solution, and you've got to know a little background before you can use it.The formula given in A&S is only good for x ≥ 0. That's no problem if you know that the error function is an odd function, i.e. erf(-x) = -erf(x). But if you're an engineer who has never heard of the error function but needs to use it, it may take a while to figure out how to handle negative inputs.One other thing that someone just picking up A&S might not know is the best way to evaluate polynomials. The formula appears as 1 - (a1t1 + a2t2 + a3t3 + a4t4 + a5t5)exp(-x2), which is absolutely correct. But directly evaluating an nth order polynomial takes O(n2) operations, while the factorization used in the code above uses O(n) operations. This technique is known as Horner's method. Categories : Computing Math PythonTags : Python Special functionsBookmark the permalink Post navigationPrevious PostDraw a bigger pictureNext PostStand-alone normal (Gaussian) distribution function 14 thoughts on “Stand-alone error function erf(x)” Sergey Fomel 19 January 2009 at 16:21 erf is actually a standard function in
Python interface for numerical libraries and routines originally written in Fortran, C, or C++. Thus, SciPy lets you take advantage of the decades of work that has gone into creating and optimizing numerical routines for science and engineering. Because the Fortran, C, or C++ code that Python accesses is compiled, these routines typically run very fast. Therefore, there is no real downside--no speed penalty--for using Python in these cases. We have already encountered one of SciPy's routines, scipy.optimize.leastsq, for fitting nonlinear functions to experimental data, which was introduced in the the chapter on Curve Fitting. Here we will provide a further introduction to a number of other SciPy packages, in particular those on special functions, numerical integration, including routines for numerically solving ordinary differential equations (ODEs), discrete Fourier transforms, linear algebra, and solving non-linear equations. Our introduction to these capabilities does not include extensive background on the numerical methods employed; that is a topic for another text. Here we simply introduce the SciPy routines for performing some of the more frequently required numerical tasks. One final note: SciPy makes extensive use of NumPy arrays, so NumPy should always be imported with SciPy 9.1. Special functions¶ SciPy provides a plethora of special functions, including Bessel functions (and routines for finding their zeros, derivatives, and integrals), error functions, the gamma function, Legendre, Laguerre, and Hermite polynomials (and other polynomial functions), Mathieu functions, many statistical functions, and a number of other functions. Most are contained in the scipy.special library, and each has its own special arguments and syntax, depending on the vagaries of the particular function. We demonstrate a number of them in the code below that produces a plot of the different functions called. For more information, you should consult the Sc