{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# SciPy\n", "\n", "SciPy is a collection of numerical algorithms with python interfaces. In many cases, these interfaces are wrappers around standard numerical libraries that have been developed in the community and are used with other languages. Usually detailed references are available to explain the implementation.\n", "\n", "There are many subpackages. Generally, you load the subpackages separately, e.g.\n", "\n", "```\n", "from scipy import linalg, optimize\n", "```\n", "then you have access to the methods in those namespaces\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Numerical Methods \n", "\n", "One thing to keep in mind -- all numerical methods have strengths and weaknesses, and make assumptions. You should always do some research into the method to understand what it is doing.\n", "\n", "It is also always a good idea to run a new method on some test where you know the answer, to make sure it is behaving as expected." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we'll do some integrals of the form\n", "\n", "$$I = \\int_a^b f(x) dx$$\n", "\n", "We can imagine two situations:\n", "* our function $f(x)$ is given by an analytic expression. This gives us the freedom to pick our integration points, and in general can allow us to optimize our result and get high accuracy\n", "* our function $f(x)$ is defined on at a set of (possibly regular spaced) points. \n", "\n", "In numerical analysis, the term _quadrature_ is used to describe any integration method that represents the integral as the weighted sum of a discrete number of points." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on package scipy.integrate in scipy:\n", "\n", "NAME\n", " scipy.integrate\n", "\n", "DESCRIPTION\n", " =============================================\n", " Integration and ODEs (:mod:`scipy.integrate`)\n", " =============================================\n", " \n", " .. currentmodule:: scipy.integrate\n", " \n", " Integrating functions, given function object\n", " ============================================\n", " \n", " .. autosummary::\n", " :toctree: generated/\n", " \n", " quad -- General purpose integration\n", " dblquad -- General purpose double integration\n", " tplquad -- General purpose triple integration\n", " nquad -- General purpose n-dimensional integration\n", " fixed_quad -- Integrate func(x) using Gaussian quadrature of order n\n", " quadrature -- Integrate with given tolerance using Gaussian quadrature\n", " romberg -- Integrate func using Romberg integration\n", " quad_explain -- Print information for use of quad\n", " newton_cotes -- Weights and error coefficient for Newton-Cotes integration\n", " IntegrationWarning -- Warning on issues during integration\n", " \n", " Integrating functions, given fixed samples\n", " ==========================================\n", " \n", " .. autosummary::\n", " :toctree: generated/\n", " \n", " trapz -- Use trapezoidal rule to compute integral.\n", " cumtrapz -- Use trapezoidal rule to cumulatively compute integral.\n", " simps -- Use Simpson's rule to compute integral from samples.\n", " romb -- Use Romberg Integration to compute integral from\n", " -- (2**k + 1) evenly-spaced samples.\n", " \n", " .. seealso::\n", " \n", " :mod:`scipy.special` for orthogonal polynomials (special) for Gaussian\n", " quadrature roots and weights for other weighting factors and regions.\n", " \n", " Integrators of ODE systems\n", " ==========================\n", " \n", " .. autosummary::\n", " :toctree: generated/\n", " \n", " odeint -- General integration of ordinary differential equations.\n", " ode -- Integrate ODE using VODE and ZVODE routines.\n", " complex_ode -- Convert a complex-valued ODE to real-valued and integrate.\n", " solve_bvp -- Solve a boundary value problem for a system of ODEs.\n", "\n", "PACKAGE CONTENTS\n", " _bvp\n", " _dop\n", " _ode\n", " _odepack\n", " _quadpack\n", " _test_multivariate\n", " _test_odeint_banded\n", " lsoda\n", " odepack\n", " quadpack\n", " quadrature\n", " setup\n", " vode\n", "\n", "CLASSES\n", " builtins.UserWarning(builtins.Warning)\n", " scipy.integrate.quadpack.IntegrationWarning\n", " builtins.object\n", " scipy.integrate._ode.ode\n", " scipy.integrate._ode.complex_ode\n", " \n", " class IntegrationWarning(builtins.UserWarning)\n", " | Warning on issues during integration.\n", " | \n", " | Method resolution order:\n", " | IntegrationWarning\n", " | builtins.UserWarning\n", " | builtins.Warning\n", " | builtins.Exception\n", " | builtins.BaseException\n", " | builtins.object\n", " | \n", " | Data descriptors defined here:\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", " | \n", " | ----------------------------------------------------------------------\n", " | Methods inherited from builtins.UserWarning:\n", " | \n", " | __init__(self, /, *args, **kwargs)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | __new__(*args, **kwargs) from builtins.type\n", " | Create and return a new object. See help(type) for accurate signature.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Methods inherited from builtins.BaseException:\n", " | \n", " | __delattr__(self, name, /)\n", " | Implement delattr(self, name).\n", " | \n", " | __getattribute__(self, name, /)\n", " | Return getattr(self, name).\n", " | \n", " | __reduce__(...)\n", " | helper for pickle\n", " | \n", " | __repr__(self, /)\n", " | Return repr(self).\n", " | \n", " | __setattr__(self, name, value, /)\n", " | Implement setattr(self, name, value).\n", " | \n", " | __setstate__(...)\n", " | \n", " | __str__(self, /)\n", " | Return str(self).\n", " | \n", " | with_traceback(...)\n", " | Exception.with_traceback(tb) --\n", " | set self.__traceback__ to tb and return self.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors inherited from builtins.BaseException:\n", " | \n", " | __cause__\n", " | exception cause\n", " | \n", " | __context__\n", " | exception context\n", " | \n", " | __dict__\n", " | \n", " | __suppress_context__\n", " | \n", " | __traceback__\n", " | \n", " | args\n", " \n", " class complex_ode(ode)\n", " | A wrapper of ode for complex systems.\n", " | \n", " | This functions similarly as `ode`, but re-maps a complex-valued\n", " | equation system to a real-valued one before using the integrators.\n", " | \n", " | Parameters\n", " | ----------\n", " | f : callable ``f(t, y, *f_args)``\n", " | Rhs of the equation. t is a scalar, ``y.shape == (n,)``.\n", " | ``f_args`` is set by calling ``set_f_params(*args)``.\n", " | jac : callable ``jac(t, y, *jac_args)``\n", " | Jacobian of the rhs, ``jac[i,j] = d f[i] / d y[j]``.\n", " | ``jac_args`` is set by calling ``set_f_params(*args)``.\n", " | \n", " | Attributes\n", " | ----------\n", " | t : float\n", " | Current time.\n", " | y : ndarray\n", " | Current variable values.\n", " | \n", " | Examples\n", " | --------\n", " | For usage examples, see `ode`.\n", " | \n", " | Method resolution order:\n", " | complex_ode\n", " | ode\n", " | builtins.object\n", " | \n", " | Methods defined here:\n", " | \n", " | __init__(self, f, jac=None)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | integrate(self, t, step=0, relax=0)\n", " | Find y=y(t), set y as an initial condition, and return y.\n", " | \n", " | set_initial_value(self, y, t=0.0)\n", " | Set initial conditions y(t) = y.\n", " | \n", " | set_integrator(self, name, **integrator_params)\n", " | Set integrator by name.\n", " | \n", " | Parameters\n", " | ----------\n", " | name : str\n", " | Name of the integrator\n", " | integrator_params\n", " | Additional parameters for the integrator.\n", " | \n", " | set_solout(self, solout)\n", " | Set callable to be called at every successful integration step.\n", " | \n", " | Parameters\n", " | ----------\n", " | solout : callable\n", " | ``solout(t, y)`` is called at each internal integrator step,\n", " | t is a scalar providing the current independent position\n", " | y is the current soloution ``y.shape == (n,)``\n", " | solout should return -1 to stop integration\n", " | otherwise it should return None or 0\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors defined here:\n", " | \n", " | y\n", " | \n", " | ----------------------------------------------------------------------\n", " | Methods inherited from ode:\n", " | \n", " | set_f_params(self, *args)\n", " | Set extra parameters for user-supplied function f.\n", " | \n", " | set_jac_params(self, *args)\n", " | Set extra parameters for user-supplied function jac.\n", " | \n", " | successful(self)\n", " | Check if integration was successful.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors inherited from ode:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", " \n", " class ode(builtins.object)\n", " | A generic interface class to numeric integrators.\n", " | \n", " | Solve an equation system :math:`y'(t) = f(t,y)` with (optional) ``jac = df/dy``.\n", " | \n", " | *Note*: The first two arguments of ``f(t, y, ...)`` are in the\n", " | opposite order of the arguments in the system definition function used\n", " | by `scipy.integrate.odeint`.\n", " | \n", " | Parameters\n", " | ----------\n", " | f : callable ``f(t, y, *f_args)``\n", " | Right-hand side of the differential equation. t is a scalar,\n", " | ``y.shape == (n,)``.\n", " | ``f_args`` is set by calling ``set_f_params(*args)``.\n", " | `f` should return a scalar, array or list (not a tuple).\n", " | jac : callable ``jac(t, y, *jac_args)``, optional\n", " | Jacobian of the right-hand side, ``jac[i,j] = d f[i] / d y[j]``.\n", " | ``jac_args`` is set by calling ``set_jac_params(*args)``.\n", " | \n", " | Attributes\n", " | ----------\n", " | t : float\n", " | Current time.\n", " | y : ndarray\n", " | Current variable values.\n", " | \n", " | See also\n", " | --------\n", " | odeint : an integrator with a simpler interface based on lsoda from ODEPACK\n", " | quad : for finding the area under a curve\n", " | \n", " | Notes\n", " | -----\n", " | Available integrators are listed below. They can be selected using\n", " | the `set_integrator` method.\n", " | \n", " | \"vode\"\n", " | \n", " | Real-valued Variable-coefficient Ordinary Differential Equation\n", " | solver, with fixed-leading-coefficient implementation. It provides\n", " | implicit Adams method (for non-stiff problems) and a method based on\n", " | backward differentiation formulas (BDF) (for stiff problems).\n", " | \n", " | Source: http://www.netlib.org/ode/vode.f\n", " | \n", " | .. warning::\n", " | \n", " | This integrator is not re-entrant. You cannot have two `ode`\n", " | instances using the \"vode\" integrator at the same time.\n", " | \n", " | This integrator accepts the following parameters in `set_integrator`\n", " | method of the `ode` class:\n", " | \n", " | - atol : float or sequence\n", " | absolute tolerance for solution\n", " | - rtol : float or sequence\n", " | relative tolerance for solution\n", " | - lband : None or int\n", " | - uband : None or int\n", " | Jacobian band width, jac[i,j] != 0 for i-lband <= j <= i+uband.\n", " | Setting these requires your jac routine to return the jacobian\n", " | in packed format, jac_packed[i-j+uband, j] = jac[i,j]. The\n", " | dimension of the matrix must be (lband+uband+1, len(y)).\n", " | - method: 'adams' or 'bdf'\n", " | Which solver to use, Adams (non-stiff) or BDF (stiff)\n", " | - with_jacobian : bool\n", " | This option is only considered when the user has not supplied a\n", " | Jacobian function and has not indicated (by setting either band)\n", " | that the Jacobian is banded. In this case, `with_jacobian` specifies\n", " | whether the iteration method of the ODE solver's correction step is\n", " | chord iteration with an internally generated full Jacobian or\n", " | functional iteration with no Jacobian.\n", " | - nsteps : int\n", " | Maximum number of (internally defined) steps allowed during one\n", " | call to the solver.\n", " | - first_step : float\n", " | - min_step : float\n", " | - max_step : float\n", " | Limits for the step sizes used by the integrator.\n", " | - order : int\n", " | Maximum order used by the integrator,\n", " | order <= 12 for Adams, <= 5 for BDF.\n", " | \n", " | \"zvode\"\n", " | \n", " | Complex-valued Variable-coefficient Ordinary Differential Equation\n", " | solver, with fixed-leading-coefficient implementation. It provides\n", " | implicit Adams method (for non-stiff problems) and a method based on\n", " | backward differentiation formulas (BDF) (for stiff problems).\n", " | \n", " | Source: http://www.netlib.org/ode/zvode.f\n", " | \n", " | .. warning::\n", " | \n", " | This integrator is not re-entrant. You cannot have two `ode`\n", " | instances using the \"zvode\" integrator at the same time.\n", " | \n", " | This integrator accepts the same parameters in `set_integrator`\n", " | as the \"vode\" solver.\n", " | \n", " | .. note::\n", " | \n", " | When using ZVODE for a stiff system, it should only be used for\n", " | the case in which the function f is analytic, that is, when each f(i)\n", " | is an analytic function of each y(j). Analyticity means that the\n", " | partial derivative df(i)/dy(j) is a unique complex number, and this\n", " | fact is critical in the way ZVODE solves the dense or banded linear\n", " | systems that arise in the stiff case. For a complex stiff ODE system\n", " | in which f is not analytic, ZVODE is likely to have convergence\n", " | failures, and for this problem one should instead use DVODE on the\n", " | equivalent real system (in the real and imaginary parts of y).\n", " | \n", " | \"lsoda\"\n", " | \n", " | Real-valued Variable-coefficient Ordinary Differential Equation\n", " | solver, with fixed-leading-coefficient implementation. It provides\n", " | automatic method switching between implicit Adams method (for non-stiff\n", " | problems) and a method based on backward differentiation formulas (BDF)\n", " | (for stiff problems).\n", " | \n", " | Source: http://www.netlib.org/odepack\n", " | \n", " | .. warning::\n", " | \n", " | This integrator is not re-entrant. You cannot have two `ode`\n", " | instances using the \"lsoda\" integrator at the same time.\n", " | \n", " | This integrator accepts the following parameters in `set_integrator`\n", " | method of the `ode` class:\n", " | \n", " | - atol : float or sequence\n", " | absolute tolerance for solution\n", " | - rtol : float or sequence\n", " | relative tolerance for solution\n", " | - lband : None or int\n", " | - uband : None or int\n", " | Jacobian band width, jac[i,j] != 0 for i-lband <= j <= i+uband.\n", " | Setting these requires your jac routine to return the jacobian\n", " | in packed format, jac_packed[i-j+uband, j] = jac[i,j].\n", " | - with_jacobian : bool\n", " | *Not used.*\n", " | - nsteps : int\n", " | Maximum number of (internally defined) steps allowed during one\n", " | call to the solver.\n", " | - first_step : float\n", " | - min_step : float\n", " | - max_step : float\n", " | Limits for the step sizes used by the integrator.\n", " | - max_order_ns : int\n", " | Maximum order used in the nonstiff case (default 12).\n", " | - max_order_s : int\n", " | Maximum order used in the stiff case (default 5).\n", " | - max_hnil : int\n", " | Maximum number of messages reporting too small step size (t + h = t)\n", " | (default 0)\n", " | - ixpr : int\n", " | Whether to generate extra printing at method switches (default False).\n", " | \n", " | \"dopri5\"\n", " | \n", " | This is an explicit runge-kutta method of order (4)5 due to Dormand &\n", " | Prince (with stepsize control and dense output).\n", " | \n", " | Authors:\n", " | \n", " | E. Hairer and G. Wanner\n", " | Universite de Geneve, Dept. de Mathematiques\n", " | CH-1211 Geneve 24, Switzerland\n", " | e-mail: ernst.hairer@math.unige.ch, gerhard.wanner@math.unige.ch\n", " | \n", " | This code is described in [HNW93]_.\n", " | \n", " | This integrator accepts the following parameters in set_integrator()\n", " | method of the ode class:\n", " | \n", " | - atol : float or sequence\n", " | absolute tolerance for solution\n", " | - rtol : float or sequence\n", " | relative tolerance for solution\n", " | - nsteps : int\n", " | Maximum number of (internally defined) steps allowed during one\n", " | call to the solver.\n", " | - first_step : float\n", " | - max_step : float\n", " | - safety : float\n", " | Safety factor on new step selection (default 0.9)\n", " | - ifactor : float\n", " | - dfactor : float\n", " | Maximum factor to increase/decrease step size by in one step\n", " | - beta : float\n", " | Beta parameter for stabilised step size control.\n", " | - verbosity : int\n", " | Switch for printing messages (< 0 for no messages).\n", " | \n", " | \"dop853\"\n", " | \n", " | This is an explicit runge-kutta method of order 8(5,3) due to Dormand\n", " | & Prince (with stepsize control and dense output).\n", " | \n", " | Options and references the same as \"dopri5\".\n", " | \n", " | Examples\n", " | --------\n", " | \n", " | A problem to integrate and the corresponding jacobian:\n", " | \n", " | >>> from scipy.integrate import ode\n", " | >>>\n", " | >>> y0, t0 = [1.0j, 2.0], 0\n", " | >>>\n", " | >>> def f(t, y, arg1):\n", " | ... return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]\n", " | >>> def jac(t, y, arg1):\n", " | ... return [[1j*arg1, 1], [0, -arg1*2*y[1]]]\n", " | \n", " | The integration:\n", " | \n", " | >>> r = ode(f, jac).set_integrator('zvode', method='bdf')\n", " | >>> r.set_initial_value(y0, t0).set_f_params(2.0).set_jac_params(2.0)\n", " | >>> t1 = 10\n", " | >>> dt = 1\n", " | >>> while r.successful() and r.t < t1:\n", " | ... print(r.t+dt, r.integrate(r.t+dt))\n", " | (1, array([-0.71038232+0.23749653j, 0.40000271+0.j ]))\n", " | (2.0, array([ 0.19098503-0.52359246j, 0.22222356+0.j ]))\n", " | (3.0, array([ 0.47153208+0.52701229j, 0.15384681+0.j ]))\n", " | (4.0, array([-0.61905937+0.30726255j, 0.11764744+0.j ]))\n", " | (5.0, array([ 0.02340997-0.61418799j, 0.09523835+0.j ]))\n", " | (6.0, array([ 0.58643071+0.339819j, 0.08000018+0.j ]))\n", " | (7.0, array([-0.52070105+0.44525141j, 0.06896565+0.j ]))\n", " | (8.0, array([-0.15986733-0.61234476j, 0.06060616+0.j ]))\n", " | (9.0, array([ 0.64850462+0.15048982j, 0.05405414+0.j ]))\n", " | (10.0, array([-0.38404699+0.56382299j, 0.04878055+0.j ]))\n", " | \n", " | References\n", " | ----------\n", " | .. [HNW93] E. Hairer, S.P. Norsett and G. Wanner, Solving Ordinary\n", " | Differential Equations i. Nonstiff Problems. 2nd edition.\n", " | Springer Series in Computational Mathematics,\n", " | Springer-Verlag (1993)\n", " | \n", " | Methods defined here:\n", " | \n", " | __init__(self, f, jac=None)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | integrate(self, t, step=0, relax=0)\n", " | Find y=y(t), set y as an initial condition, and return y.\n", " | \n", " | set_f_params(self, *args)\n", " | Set extra parameters for user-supplied function f.\n", " | \n", " | set_initial_value(self, y, t=0.0)\n", " | Set initial conditions y(t) = y.\n", " | \n", " | set_integrator(self, name, **integrator_params)\n", " | Set integrator by name.\n", " | \n", " | Parameters\n", " | ----------\n", " | name : str\n", " | Name of the integrator.\n", " | integrator_params\n", " | Additional parameters for the integrator.\n", " | \n", " | set_jac_params(self, *args)\n", " | Set extra parameters for user-supplied function jac.\n", " | \n", " | set_solout(self, solout)\n", " | Set callable to be called at every successful integration step.\n", " | \n", " | Parameters\n", " | ----------\n", " | solout : callable\n", " | ``solout(t, y)`` is called at each internal integrator step,\n", " | t is a scalar providing the current independent position\n", " | y is the current soloution ``y.shape == (n,)``\n", " | solout should return -1 to stop integration\n", " | otherwise it should return None or 0\n", " | \n", " | successful(self)\n", " | Check if integration was successful.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors defined here:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", " | \n", " | y\n", "\n", "FUNCTIONS\n", " cumtrapz(y, x=None, dx=1.0, axis=-1, initial=None)\n", " Cumulatively integrate y(x) using the composite trapezoidal rule.\n", " \n", " Parameters\n", " ----------\n", " y : array_like\n", " Values to integrate.\n", " x : array_like, optional\n", " The coordinate to integrate along. If None (default), use spacing `dx`\n", " between consecutive elements in `y`.\n", " dx : int, optional\n", " Spacing between elements of `y`. Only used if `x` is None.\n", " axis : int, optional\n", " Specifies the axis to cumulate. Default is -1 (last axis).\n", " initial : scalar, optional\n", " If given, uses this value as the first value in the returned result.\n", " Typically this value should be 0. Default is None, which means no\n", " value at ``x[0]`` is returned and `res` has one element less than `y`\n", " along the axis of integration.\n", " \n", " Returns\n", " -------\n", " res : ndarray\n", " The result of cumulative integration of `y` along `axis`.\n", " If `initial` is None, the shape is such that the axis of integration\n", " has one less value than `y`. If `initial` is given, the shape is equal\n", " to that of `y`.\n", " \n", " See Also\n", " --------\n", " numpy.cumsum, numpy.cumprod\n", " quad: adaptive quadrature using QUADPACK\n", " romberg: adaptive Romberg quadrature\n", " quadrature: adaptive Gaussian quadrature\n", " fixed_quad: fixed-order Gaussian quadrature\n", " dblquad: double integrals\n", " tplquad: triple integrals\n", " romb: integrators for sampled data\n", " ode: ODE integrators\n", " odeint: ODE integrators\n", " \n", " Examples\n", " --------\n", " >>> from scipy import integrate\n", " >>> import matplotlib.pyplot as plt\n", " \n", " >>> x = np.linspace(-2, 2, num=20)\n", " >>> y = x\n", " >>> y_int = integrate.cumtrapz(y, x, initial=0)\n", " >>> plt.plot(x, y_int, 'ro', x, y[0] + 0.5 * x**2, 'b-')\n", " >>> plt.show()\n", " \n", " dblquad(func, a, b, gfun, hfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08)\n", " Compute a double integral.\n", " \n", " Return the double (definite) integral of ``func(y, x)`` from ``x = a..b``\n", " and ``y = gfun(x)..hfun(x)``.\n", " \n", " Parameters\n", " ----------\n", " func : callable\n", " A Python function or method of at least two variables: y must be the\n", " first argument and x the second argument.\n", " a, b : float\n", " The limits of integration in x: `a` < `b`\n", " gfun : callable\n", " The lower boundary curve in y which is a function taking a single\n", " floating point argument (x) and returning a floating point result: a\n", " lambda function can be useful here.\n", " hfun : callable\n", " The upper boundary curve in y (same requirements as `gfun`).\n", " args : sequence, optional\n", " Extra arguments to pass to `func`.\n", " epsabs : float, optional\n", " Absolute tolerance passed directly to the inner 1-D quadrature\n", " integration. Default is 1.49e-8.\n", " epsrel : float, optional\n", " Relative tolerance of the inner 1-D integrals. Default is 1.49e-8.\n", " \n", " Returns\n", " -------\n", " y : float\n", " The resultant integral.\n", " abserr : float\n", " An estimate of the error.\n", " \n", " See also\n", " --------\n", " quad : single integral\n", " tplquad : triple integral\n", " nquad : N-dimensional integrals\n", " fixed_quad : fixed-order Gaussian quadrature\n", " quadrature : adaptive Gaussian quadrature\n", " odeint : ODE integrator\n", " ode : ODE integrator\n", " simps : integrator for sampled data\n", " romb : integrator for sampled data\n", " scipy.special : for coefficients and roots of orthogonal polynomials\n", " \n", " fixed_quad(func, a, b, args=(), n=5)\n", " Compute a definite integral using fixed-order Gaussian quadrature.\n", " \n", " Integrate `func` from `a` to `b` using Gaussian quadrature of\n", " order `n`.\n", " \n", " Parameters\n", " ----------\n", " func : callable\n", " A Python function or method to integrate (must accept vector inputs).\n", " a : float\n", " Lower limit of integration.\n", " b : float\n", " Upper limit of integration.\n", " args : tuple, optional\n", " Extra arguments to pass to function, if any.\n", " n : int, optional\n", " Order of quadrature integration. Default is 5.\n", " \n", " Returns\n", " -------\n", " val : float\n", " Gaussian quadrature approximation to the integral\n", " none : None\n", " Statically returned value of None\n", " \n", " \n", " See Also\n", " --------\n", " quad : adaptive quadrature using QUADPACK\n", " dblquad : double integrals\n", " tplquad : triple integrals\n", " romberg : adaptive Romberg quadrature\n", " quadrature : adaptive Gaussian quadrature\n", " romb : integrators for sampled data\n", " simps : integrators for sampled data\n", " cumtrapz : cumulative integration for sampled data\n", " ode : ODE integrator\n", " odeint : ODE integrator\n", " \n", " newton_cotes(rn, equal=0)\n", " Return weights and error coefficient for Newton-Cotes integration.\n", " \n", " Suppose we have (N+1) samples of f at the positions\n", " x_0, x_1, ..., x_N. Then an N-point Newton-Cotes formula for the\n", " integral between x_0 and x_N is:\n", " \n", " :math:`\\int_{x_0}^{x_N} f(x)dx = \\Delta x \\sum_{i=0}^{N} a_i f(x_i)\n", " + B_N (\\Delta x)^{N+2} f^{N+1} (\\xi)`\n", " \n", " where :math:`\\xi \\in [x_0,x_N]`\n", " and :math:`\\Delta x = \\frac{x_N-x_0}{N}` is the average samples spacing.\n", " \n", " If the samples are equally-spaced and N is even, then the error\n", " term is :math:`B_N (\\Delta x)^{N+3} f^{N+2}(\\xi)`.\n", " \n", " Parameters\n", " ----------\n", " rn : int\n", " The integer order for equally-spaced data or the relative positions of\n", " the samples with the first sample at 0 and the last at N, where N+1 is\n", " the length of `rn`. N is the order of the Newton-Cotes integration.\n", " equal : int, optional\n", " Set to 1 to enforce equally spaced data.\n", " \n", " Returns\n", " -------\n", " an : ndarray\n", " 1-D array of weights to apply to the function at the provided sample\n", " positions.\n", " B : float\n", " Error coefficient.\n", " \n", " Notes\n", " -----\n", " Normally, the Newton-Cotes rules are used on smaller integration\n", " regions and a composite rule is used to return the total integral.\n", " \n", " nquad(func, ranges, args=None, opts=None, full_output=False)\n", " Integration over multiple variables.\n", " \n", " Wraps `quad` to enable integration over multiple variables.\n", " Various options allow improved integration of discontinuous functions, as\n", " well as the use of weighted integration, and generally finer control of the\n", " integration process.\n", " \n", " Parameters\n", " ----------\n", " func : callable\n", " The function to be integrated. Has arguments of ``x0, ... xn``,\n", " ``t0, tm``, where integration is carried out over ``x0, ... xn``, which\n", " must be floats. Function signature should be\n", " ``func(x0, x1, ..., xn, t0, t1, ..., tm)``. Integration is carried out\n", " in order. That is, integration over ``x0`` is the innermost integral,\n", " and ``xn`` is the outermost.\n", " If performance is a concern, this function may be a ctypes function of\n", " the form::\n", " \n", " f(int n, double args[n])\n", " \n", " where ``n`` is the number of extra parameters and args is an array\n", " of doubles of the additional parameters. This function may then\n", " be compiled to a dynamic/shared library then imported through\n", " ``ctypes``, setting the function's argtypes to ``(c_int, c_double)``,\n", " and the function's restype to ``(c_double)``. Its pointer may then be\n", " passed into `nquad` normally.\n", " This allows the underlying Fortran library to evaluate the function in\n", " the innermost integration calls without callbacks to Python, and also\n", " speeds up the evaluation of the function itself.\n", " ranges : iterable object\n", " Each element of ranges may be either a sequence of 2 numbers, or else\n", " a callable that returns such a sequence. ``ranges[0]`` corresponds to\n", " integration over x0, and so on. If an element of ranges is a callable,\n", " then it will be called with all of the integration arguments available,\n", " as well as any parametric arguments. e.g. if \n", " ``func = f(x0, x1, x2, t0, t1)``, then ``ranges[0]`` may be defined as\n", " either ``(a, b)`` or else as ``(a, b) = range0(x1, x2, t0, t1)``.\n", " args : iterable object, optional\n", " Additional arguments ``t0, ..., tn``, required by `func`, `ranges`, and\n", " ``opts``.\n", " opts : iterable object or dict, optional\n", " Options to be passed to `quad`. May be empty, a dict, or\n", " a sequence of dicts or functions that return a dict. If empty, the\n", " default options from scipy.integrate.quad are used. If a dict, the same\n", " options are used for all levels of integraion. If a sequence, then each\n", " element of the sequence corresponds to a particular integration. e.g.\n", " opts[0] corresponds to integration over x0, and so on. If a callable, \n", " the signature must be the same as for ``ranges``. The available\n", " options together with their default values are:\n", " \n", " - epsabs = 1.49e-08\n", " - epsrel = 1.49e-08\n", " - limit = 50\n", " - points = None\n", " - weight = None\n", " - wvar = None\n", " - wopts = None\n", " \n", " For more information on these options, see `quad` and `quad_explain`.\n", " \n", " full_output : bool, optional\n", " Partial implementation of ``full_output`` from scipy.integrate.quad. \n", " The number of integrand function evaluations ``neval`` can be obtained \n", " by setting ``full_output=True`` when calling nquad.\n", " \n", " Returns\n", " -------\n", " result : float\n", " The result of the integration.\n", " abserr : float\n", " The maximum of the estimates of the absolute error in the various\n", " integration results.\n", " out_dict : dict, optional\n", " A dict containing additional information on the integration. \n", " \n", " See Also\n", " --------\n", " quad : 1-dimensional numerical integration\n", " dblquad, tplquad : double and triple integrals\n", " fixed_quad : fixed-order Gaussian quadrature\n", " quadrature : adaptive Gaussian quadrature\n", " \n", " Examples\n", " --------\n", " >>> from scipy import integrate\n", " >>> func = lambda x0,x1,x2,x3 : x0**2 + x1*x2 - x3**3 + np.sin(x0) + (\n", " ... 1 if (x0-.2*x3-.5-.25*x1>0) else 0)\n", " >>> points = [[lambda x1,x2,x3 : 0.2*x3 + 0.5 + 0.25*x1], [], [], []]\n", " >>> def opts0(*args, **kwargs):\n", " ... return {'points':[0.2*args[2] + 0.5 + 0.25*args[0]]}\n", " >>> integrate.nquad(func, [[0,1], [-1,1], [.13,.8], [-.15,1]],\n", " ... opts=[opts0,{},{},{}], full_output=True)\n", " (1.5267454070738633, 2.9437360001402324e-14, {'neval': 388962})\n", " \n", " >>> scale = .1\n", " >>> def func2(x0, x1, x2, x3, t0, t1):\n", " ... return x0*x1*x3**2 + np.sin(x2) + 1 + (1 if x0+t1*x1-t0>0 else 0)\n", " >>> def lim0(x1, x2, x3, t0, t1):\n", " ... return [scale * (x1**2 + x2 + np.cos(x3)*t0*t1 + 1) - 1,\n", " ... scale * (x1**2 + x2 + np.cos(x3)*t0*t1 + 1) + 1]\n", " >>> def lim1(x2, x3, t0, t1):\n", " ... return [scale * (t0*x2 + t1*x3) - 1,\n", " ... scale * (t0*x2 + t1*x3) + 1]\n", " >>> def lim2(x3, t0, t1):\n", " ... return [scale * (x3 + t0**2*t1**3) - 1,\n", " ... scale * (x3 + t0**2*t1**3) + 1]\n", " >>> def lim3(t0, t1):\n", " ... return [scale * (t0+t1) - 1, scale * (t0+t1) + 1]\n", " >>> def opts0(x1, x2, x3, t0, t1):\n", " ... return {'points' : [t0 - t1*x1]}\n", " >>> def opts1(x2, x3, t0, t1):\n", " ... return {}\n", " >>> def opts2(x3, t0, t1):\n", " ... return {}\n", " >>> def opts3(t0, t1):\n", " ... return {}\n", " >>> integrate.nquad(func2, [lim0, lim1, lim2, lim3], args=(0,0),\n", " ... opts=[opts0, opts1, opts2, opts3])\n", " (25.066666666666666, 2.7829590483937256e-13)\n", " \n", " odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0, ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0, hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12, mxords=5, printmessg=0)\n", " Integrate a system of ordinary differential equations.\n", " \n", " Solve a system of ordinary differential equations using lsoda from the\n", " FORTRAN library odepack.\n", " \n", " Solves the initial value problem for stiff or non-stiff systems\n", " of first order ode-s::\n", " \n", " dy/dt = func(y, t0, ...)\n", " \n", " where y can be a vector.\n", " \n", " *Note*: The first two arguments of ``func(y, t0, ...)`` are in the\n", " opposite order of the arguments in the system definition function used\n", " by the `scipy.integrate.ode` class.\n", " \n", " Parameters\n", " ----------\n", " func : callable(y, t0, ...)\n", " Computes the derivative of y at t0.\n", " y0 : array\n", " Initial condition on y (can be a vector).\n", " t : array\n", " A sequence of time points for which to solve for y. The initial\n", " value point should be the first element of this sequence.\n", " args : tuple, optional\n", " Extra arguments to pass to function.\n", " Dfun : callable(y, t0, ...)\n", " Gradient (Jacobian) of `func`.\n", " col_deriv : bool, optional\n", " True if `Dfun` defines derivatives down columns (faster),\n", " otherwise `Dfun` should define derivatives across rows.\n", " full_output : bool, optional\n", " True if to return a dictionary of optional outputs as the second output\n", " printmessg : bool, optional\n", " Whether to print the convergence message\n", " \n", " Returns\n", " -------\n", " y : array, shape (len(t), len(y0))\n", " Array containing the value of y for each desired time in t,\n", " with the initial value `y0` in the first row.\n", " infodict : dict, only returned if full_output == True\n", " Dictionary containing additional output information\n", " \n", " ======= ============================================================\n", " key meaning\n", " ======= ============================================================\n", " 'hu' vector of step sizes successfully used for each time step.\n", " 'tcur' vector with the value of t reached for each time step.\n", " (will always be at least as large as the input times).\n", " 'tolsf' vector of tolerance scale factors, greater than 1.0,\n", " computed when a request for too much accuracy was detected.\n", " 'tsw' value of t at the time of the last method switch\n", " (given for each time step)\n", " 'nst' cumulative number of time steps\n", " 'nfe' cumulative number of function evaluations for each time step\n", " 'nje' cumulative number of jacobian evaluations for each time step\n", " 'nqu' a vector of method orders for each successful step.\n", " 'imxer' index of the component of largest magnitude in the\n", " weighted local error vector (e / ewt) on an error return, -1\n", " otherwise.\n", " 'lenrw' the length of the double work array required.\n", " 'leniw' the length of integer work array required.\n", " 'mused' a vector of method indicators for each successful time step:\n", " 1: adams (nonstiff), 2: bdf (stiff)\n", " ======= ============================================================\n", " \n", " Other Parameters\n", " ----------------\n", " ml, mu : int, optional\n", " If either of these are not None or non-negative, then the\n", " Jacobian is assumed to be banded. These give the number of\n", " lower and upper non-zero diagonals in this banded matrix.\n", " For the banded case, `Dfun` should return a matrix whose\n", " rows contain the non-zero bands (starting with the lowest diagonal).\n", " Thus, the return matrix `jac` from `Dfun` should have shape\n", " ``(ml + mu + 1, len(y0))`` when ``ml >=0`` or ``mu >=0``.\n", " The data in `jac` must be stored such that ``jac[i - j + mu, j]``\n", " holds the derivative of the `i`th equation with respect to the `j`th\n", " state variable. If `col_deriv` is True, the transpose of this\n", " `jac` must be returned.\n", " rtol, atol : float, optional\n", " The input parameters `rtol` and `atol` determine the error\n", " control performed by the solver. The solver will control the\n", " vector, e, of estimated local errors in y, according to an\n", " inequality of the form ``max-norm of (e / ewt) <= 1``,\n", " where ewt is a vector of positive error weights computed as\n", " ``ewt = rtol * abs(y) + atol``.\n", " rtol and atol can be either vectors the same length as y or scalars.\n", " Defaults to 1.49012e-8.\n", " tcrit : ndarray, optional\n", " Vector of critical points (e.g. singularities) where integration\n", " care should be taken.\n", " h0 : float, (0: solver-determined), optional\n", " The step size to be attempted on the first step.\n", " hmax : float, (0: solver-determined), optional\n", " The maximum absolute step size allowed.\n", " hmin : float, (0: solver-determined), optional\n", " The minimum absolute step size allowed.\n", " ixpr : bool, optional\n", " Whether to generate extra printing at method switches.\n", " mxstep : int, (0: solver-determined), optional\n", " Maximum number of (internally defined) steps allowed for each\n", " integration point in t.\n", " mxhnil : int, (0: solver-determined), optional\n", " Maximum number of messages printed.\n", " mxordn : int, (0: solver-determined), optional\n", " Maximum order to be allowed for the non-stiff (Adams) method.\n", " mxords : int, (0: solver-determined), optional\n", " Maximum order to be allowed for the stiff (BDF) method.\n", " \n", " See Also\n", " --------\n", " ode : a more object-oriented integrator based on VODE.\n", " quad : for finding the area under a curve.\n", " \n", " Examples\n", " --------\n", " The second order differential equation for the angle `theta` of a\n", " pendulum acted on by gravity with friction can be written::\n", " \n", " theta''(t) + b*theta'(t) + c*sin(theta(t)) = 0\n", " \n", " where `b` and `c` are positive constants, and a prime (') denotes a\n", " derivative. To solve this equation with `odeint`, we must first convert\n", " it to a system of first order equations. By defining the angular\n", " velocity ``omega(t) = theta'(t)``, we obtain the system::\n", " \n", " theta'(t) = omega(t)\n", " omega'(t) = -b*omega(t) - c*sin(theta(t))\n", " \n", " Let `y` be the vector [`theta`, `omega`]. We implement this system\n", " in python as:\n", " \n", " >>> def pend(y, t, b, c):\n", " ... theta, omega = y\n", " ... dydt = [omega, -b*omega - c*np.sin(theta)]\n", " ... return dydt\n", " ...\n", " \n", " We assume the constants are `b` = 0.25 and `c` = 5.0:\n", " \n", " >>> b = 0.25\n", " >>> c = 5.0\n", " \n", " For initial conditions, we assume the pendulum is nearly vertical\n", " with `theta(0)` = `pi` - 0.1, and it initially at rest, so\n", " `omega(0)` = 0. Then the vector of initial conditions is\n", " \n", " >>> y0 = [np.pi - 0.1, 0.0]\n", " \n", " We generate a solution 101 evenly spaced samples in the interval\n", " 0 <= `t` <= 10. So our array of times is:\n", " \n", " >>> t = np.linspace(0, 10, 101)\n", " \n", " Call `odeint` to generate the solution. To pass the parameters\n", " `b` and `c` to `pend`, we give them to `odeint` using the `args`\n", " argument.\n", " \n", " >>> from scipy.integrate import odeint\n", " >>> sol = odeint(pend, y0, t, args=(b, c))\n", " \n", " The solution is an array with shape (101, 2). The first column\n", " is `theta(t)`, and the second is `omega(t)`. The following code\n", " plots both components.\n", " \n", " >>> import matplotlib.pyplot as plt\n", " >>> plt.plot(t, sol[:, 0], 'b', label='theta(t)')\n", " >>> plt.plot(t, sol[:, 1], 'g', label='omega(t)')\n", " >>> plt.legend(loc='best')\n", " >>> plt.xlabel('t')\n", " >>> plt.grid()\n", " >>> plt.show()\n", " \n", " quad(func, a, b, args=(), full_output=0, epsabs=1.49e-08, epsrel=1.49e-08, limit=50, points=None, weight=None, wvar=None, wopts=None, maxp1=50, limlst=50)\n", " Compute a definite integral.\n", " \n", " Integrate func from `a` to `b` (possibly infinite interval) using a\n", " technique from the Fortran library QUADPACK.\n", " \n", " Parameters\n", " ----------\n", " func : function\n", " A Python function or method to integrate. If `func` takes many\n", " arguments, it is integrated along the axis corresponding to the\n", " first argument.\n", " If the user desires improved integration performance, then f may\n", " instead be a ``ctypes`` function of the form:\n", " \n", " f(int n, double args[n]),\n", " \n", " where ``args`` is an array of function arguments and ``n`` is the\n", " length of ``args``. ``f.argtypes`` should be set to\n", " ``(c_int, c_double)``, and ``f.restype`` should be ``(c_double,)``.\n", " a : float\n", " Lower limit of integration (use -numpy.inf for -infinity).\n", " b : float\n", " Upper limit of integration (use numpy.inf for +infinity).\n", " args : tuple, optional\n", " Extra arguments to pass to `func`.\n", " full_output : int, optional\n", " Non-zero to return a dictionary of integration information.\n", " If non-zero, warning messages are also suppressed and the\n", " message is appended to the output tuple.\n", " \n", " Returns\n", " -------\n", " y : float\n", " The integral of func from `a` to `b`.\n", " abserr : float\n", " An estimate of the absolute error in the result.\n", " infodict : dict\n", " A dictionary containing additional information.\n", " Run scipy.integrate.quad_explain() for more information.\n", " message\n", " A convergence message.\n", " explain\n", " Appended only with 'cos' or 'sin' weighting and infinite\n", " integration limits, it contains an explanation of the codes in\n", " infodict['ierlst']\n", " \n", " Other Parameters\n", " ----------------\n", " epsabs : float or int, optional\n", " Absolute error tolerance.\n", " epsrel : float or int, optional\n", " Relative error tolerance.\n", " limit : float or int, optional\n", " An upper bound on the number of subintervals used in the adaptive\n", " algorithm.\n", " points : (sequence of floats,ints), optional\n", " A sequence of break points in the bounded integration interval\n", " where local difficulties of the integrand may occur (e.g.,\n", " singularities, discontinuities). The sequence does not have\n", " to be sorted.\n", " weight : float or int, optional\n", " String indicating weighting function. Full explanation for this\n", " and the remaining arguments can be found below.\n", " wvar : optional\n", " Variables for use with weighting functions.\n", " wopts : optional\n", " Optional input for reusing Chebyshev moments.\n", " maxp1 : float or int, optional\n", " An upper bound on the number of Chebyshev moments.\n", " limlst : int, optional\n", " Upper bound on the number of cycles (>=3) for use with a sinusoidal\n", " weighting and an infinite end-point.\n", " \n", " See Also\n", " --------\n", " dblquad : double integral\n", " tplquad : triple integral\n", " nquad : n-dimensional integrals (uses `quad` recursively)\n", " fixed_quad : fixed-order Gaussian quadrature\n", " quadrature : adaptive Gaussian quadrature\n", " odeint : ODE integrator\n", " ode : ODE integrator\n", " simps : integrator for sampled data\n", " romb : integrator for sampled data\n", " scipy.special : for coefficients and roots of orthogonal polynomials\n", " \n", " Notes\n", " -----\n", " \n", " **Extra information for quad() inputs and outputs**\n", " \n", " If full_output is non-zero, then the third output argument\n", " (infodict) is a dictionary with entries as tabulated below. For\n", " infinite limits, the range is transformed to (0,1) and the\n", " optional outputs are given with respect to this transformed range.\n", " Let M be the input argument limit and let K be infodict['last'].\n", " The entries are:\n", " \n", " 'neval'\n", " The number of function evaluations.\n", " 'last'\n", " The number, K, of subintervals produced in the subdivision process.\n", " 'alist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " left end points of the subintervals in the partition of the\n", " integration range.\n", " 'blist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " right end points of the subintervals.\n", " 'rlist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " integral approximations on the subintervals.\n", " 'elist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " moduli of the absolute error estimates on the subintervals.\n", " 'iord'\n", " A rank-1 integer array of length M, the first L elements of\n", " which are pointers to the error estimates over the subintervals\n", " with ``L=K`` if ``K<=M/2+2`` or ``L=M+1-K`` otherwise. Let I be the\n", " sequence ``infodict['iord']`` and let E be the sequence\n", " ``infodict['elist']``. Then ``E[I[1]], ..., E[I[L]]`` forms a\n", " decreasing sequence.\n", " \n", " If the input argument points is provided (i.e. it is not None),\n", " the following additional outputs are placed in the output\n", " dictionary. Assume the points sequence is of length P.\n", " \n", " 'pts'\n", " A rank-1 array of length P+2 containing the integration limits\n", " and the break points of the intervals in ascending order.\n", " This is an array giving the subintervals over which integration\n", " will occur.\n", " 'level'\n", " A rank-1 integer array of length M (=limit), containing the\n", " subdivision levels of the subintervals, i.e., if (aa,bb) is a\n", " subinterval of ``(pts[1], pts[2])`` where ``pts[0]`` and ``pts[2]``\n", " are adjacent elements of ``infodict['pts']``, then (aa,bb) has level l\n", " if ``|bb-aa| = |pts[2]-pts[1]| * 2**(-l)``.\n", " 'ndin'\n", " A rank-1 integer array of length P+2. After the first integration\n", " over the intervals (pts[1], pts[2]), the error estimates over some\n", " of the intervals may have been increased artificially in order to\n", " put their subdivision forward. This array has ones in slots\n", " corresponding to the subintervals for which this happens.\n", " \n", " **Weighting the integrand**\n", " \n", " The input variables, *weight* and *wvar*, are used to weight the\n", " integrand by a select list of functions. Different integration\n", " methods are used to compute the integral with these weighting\n", " functions. The possible values of weight and the corresponding\n", " weighting functions are.\n", " \n", " ========== =================================== =====================\n", " ``weight`` Weight function used ``wvar``\n", " ========== =================================== =====================\n", " 'cos' cos(w*x) wvar = w\n", " 'sin' sin(w*x) wvar = w\n", " 'alg' g(x) = ((x-a)**alpha)*((b-x)**beta) wvar = (alpha, beta)\n", " 'alg-loga' g(x)*log(x-a) wvar = (alpha, beta)\n", " 'alg-logb' g(x)*log(b-x) wvar = (alpha, beta)\n", " 'alg-log' g(x)*log(x-a)*log(b-x) wvar = (alpha, beta)\n", " 'cauchy' 1/(x-c) wvar = c\n", " ========== =================================== =====================\n", " \n", " wvar holds the parameter w, (alpha, beta), or c depending on the weight\n", " selected. In these expressions, a and b are the integration limits.\n", " \n", " For the 'cos' and 'sin' weighting, additional inputs and outputs are\n", " available.\n", " \n", " For finite integration limits, the integration is performed using a\n", " Clenshaw-Curtis method which uses Chebyshev moments. For repeated\n", " calculations, these moments are saved in the output dictionary:\n", " \n", " 'momcom'\n", " The maximum level of Chebyshev moments that have been computed,\n", " i.e., if ``M_c`` is ``infodict['momcom']`` then the moments have been\n", " computed for intervals of length ``|b-a| * 2**(-l)``,\n", " ``l=0,1,...,M_c``.\n", " 'nnlog'\n", " A rank-1 integer array of length M(=limit), containing the\n", " subdivision levels of the subintervals, i.e., an element of this\n", " array is equal to l if the corresponding subinterval is\n", " ``|b-a|* 2**(-l)``.\n", " 'chebmo'\n", " A rank-2 array of shape (25, maxp1) containing the computed\n", " Chebyshev moments. These can be passed on to an integration\n", " over the same interval by passing this array as the second\n", " element of the sequence wopts and passing infodict['momcom'] as\n", " the first element.\n", " \n", " If one of the integration limits is infinite, then a Fourier integral is\n", " computed (assuming w neq 0). If full_output is 1 and a numerical error\n", " is encountered, besides the error message attached to the output tuple,\n", " a dictionary is also appended to the output tuple which translates the\n", " error codes in the array ``info['ierlst']`` to English messages. The\n", " output information dictionary contains the following entries instead of\n", " 'last', 'alist', 'blist', 'rlist', and 'elist':\n", " \n", " 'lst'\n", " The number of subintervals needed for the integration (call it ``K_f``).\n", " 'rslst'\n", " A rank-1 array of length M_f=limlst, whose first ``K_f`` elements\n", " contain the integral contribution over the interval\n", " ``(a+(k-1)c, a+kc)`` where ``c = (2*floor(|w|) + 1) * pi / |w|``\n", " and ``k=1,2,...,K_f``.\n", " 'erlst'\n", " A rank-1 array of length ``M_f`` containing the error estimate\n", " corresponding to the interval in the same position in\n", " ``infodict['rslist']``.\n", " 'ierlst'\n", " A rank-1 integer array of length ``M_f`` containing an error flag\n", " corresponding to the interval in the same position in\n", " ``infodict['rslist']``. See the explanation dictionary (last entry\n", " in the output tuple) for the meaning of the codes.\n", " \n", " Examples\n", " --------\n", " Calculate :math:`\\int^4_0 x^2 dx` and compare with an analytic result\n", " \n", " >>> from scipy import integrate\n", " >>> x2 = lambda x: x**2\n", " >>> integrate.quad(x2, 0, 4)\n", " (21.333333333333332, 2.3684757858670003e-13)\n", " >>> print(4**3 / 3.) # analytical result\n", " 21.3333333333\n", " \n", " Calculate :math:`\\int^\\infty_0 e^{-x} dx`\n", " \n", " >>> invexp = lambda x: np.exp(-x)\n", " >>> integrate.quad(invexp, 0, np.inf)\n", " (1.0, 5.842605999138044e-11)\n", " \n", " >>> f = lambda x,a : a*x\n", " >>> y, err = integrate.quad(f, 0, 1, args=(1,))\n", " >>> y\n", " 0.5\n", " >>> y, err = integrate.quad(f, 0, 1, args=(3,))\n", " >>> y\n", " 1.5\n", " \n", " Calculate :math:`\\int^1_0 x^2 + y^2 dx` with ctypes, holding\n", " y parameter as 1::\n", " \n", " testlib.c =>\n", " double func(int n, double args[n]){\n", " return args[0]*args[0] + args[1]*args[1];}\n", " compile to library testlib.*\n", " \n", " ::\n", " \n", " from scipy import integrate\n", " import ctypes\n", " lib = ctypes.CDLL('/home/.../testlib.*') #use absolute path\n", " lib.func.restype = ctypes.c_double\n", " lib.func.argtypes = (ctypes.c_int,ctypes.c_double)\n", " integrate.quad(lib.func,0,1,(1))\n", " #(1.3333333333333333, 1.4802973661668752e-14)\n", " print((1.0**3/3.0 + 1.0) - (0.0**3/3.0 + 0.0)) #Analytic result\n", " # 1.3333333333333333\n", " \n", " quad_explain(output=)\n", " Print extra information about integrate.quad() parameters and returns.\n", " \n", " Parameters\n", " ----------\n", " output : instance with \"write\" method, optional\n", " Information about `quad` is passed to ``output.write()``.\n", " Default is ``sys.stdout``.\n", " \n", " Returns\n", " -------\n", " None\n", " \n", " quadrature(func, a, b, args=(), tol=1.49e-08, rtol=1.49e-08, maxiter=50, vec_func=True, miniter=1)\n", " Compute a definite integral using fixed-tolerance Gaussian quadrature.\n", " \n", " Integrate `func` from `a` to `b` using Gaussian quadrature\n", " with absolute tolerance `tol`.\n", " \n", " Parameters\n", " ----------\n", " func : function\n", " A Python function or method to integrate.\n", " a : float\n", " Lower limit of integration.\n", " b : float\n", " Upper limit of integration.\n", " args : tuple, optional\n", " Extra arguments to pass to function.\n", " tol, rtol : float, optional\n", " Iteration stops when error between last two iterates is less than\n", " `tol` OR the relative change is less than `rtol`.\n", " maxiter : int, optional\n", " Maximum order of Gaussian quadrature.\n", " vec_func : bool, optional\n", " True or False if func handles arrays as arguments (is\n", " a \"vector\" function). Default is True.\n", " miniter : int, optional\n", " Minimum order of Gaussian quadrature.\n", " \n", " Returns\n", " -------\n", " val : float\n", " Gaussian quadrature approximation (within tolerance) to integral.\n", " err : float\n", " Difference between last two estimates of the integral.\n", " \n", " See also\n", " --------\n", " romberg: adaptive Romberg quadrature\n", " fixed_quad: fixed-order Gaussian quadrature\n", " quad: adaptive quadrature using QUADPACK\n", " dblquad: double integrals\n", " tplquad: triple integrals\n", " romb: integrator for sampled data\n", " simps: integrator for sampled data\n", " cumtrapz: cumulative integration for sampled data\n", " ode: ODE integrator\n", " odeint: ODE integrator\n", " \n", " romb(y, dx=1.0, axis=-1, show=False)\n", " Romberg integration using samples of a function.\n", " \n", " Parameters\n", " ----------\n", " y : array_like\n", " A vector of ``2**k + 1`` equally-spaced samples of a function.\n", " dx : float, optional\n", " The sample spacing. Default is 1.\n", " axis : int, optional\n", " The axis along which to integrate. Default is -1 (last axis).\n", " show : bool, optional\n", " When `y` is a single 1-D array, then if this argument is True\n", " print the table showing Richardson extrapolation from the\n", " samples. Default is False.\n", " \n", " Returns\n", " -------\n", " romb : ndarray\n", " The integrated result for `axis`.\n", " \n", " See also\n", " --------\n", " quad : adaptive quadrature using QUADPACK\n", " romberg : adaptive Romberg quadrature\n", " quadrature : adaptive Gaussian quadrature\n", " fixed_quad : fixed-order Gaussian quadrature\n", " dblquad : double integrals\n", " tplquad : triple integrals\n", " simps : integrators for sampled data\n", " cumtrapz : cumulative integration for sampled data\n", " ode : ODE integrators\n", " odeint : ODE integrators\n", " \n", " romberg(function, a, b, args=(), tol=1.48e-08, rtol=1.48e-08, show=False, divmax=10, vec_func=False)\n", " Romberg integration of a callable function or method.\n", " \n", " Returns the integral of `function` (a function of one variable)\n", " over the interval (`a`, `b`).\n", " \n", " If `show` is 1, the triangular array of the intermediate results\n", " will be printed. If `vec_func` is True (default is False), then\n", " `function` is assumed to support vector arguments.\n", " \n", " Parameters\n", " ----------\n", " function : callable\n", " Function to be integrated.\n", " a : float\n", " Lower limit of integration.\n", " b : float\n", " Upper limit of integration.\n", " \n", " Returns\n", " -------\n", " results : float\n", " Result of the integration.\n", " \n", " Other Parameters\n", " ----------------\n", " args : tuple, optional\n", " Extra arguments to pass to function. Each element of `args` will\n", " be passed as a single argument to `func`. Default is to pass no\n", " extra arguments.\n", " tol, rtol : float, optional\n", " The desired absolute and relative tolerances. Defaults are 1.48e-8.\n", " show : bool, optional\n", " Whether to print the results. Default is False.\n", " divmax : int, optional\n", " Maximum order of extrapolation. Default is 10.\n", " vec_func : bool, optional\n", " Whether `func` handles arrays as arguments (i.e whether it is a\n", " \"vector\" function). Default is False.\n", " \n", " See Also\n", " --------\n", " fixed_quad : Fixed-order Gaussian quadrature.\n", " quad : Adaptive quadrature using QUADPACK.\n", " dblquad : Double integrals.\n", " tplquad : Triple integrals.\n", " romb : Integrators for sampled data.\n", " simps : Integrators for sampled data.\n", " cumtrapz : Cumulative integration for sampled data.\n", " ode : ODE integrator.\n", " odeint : ODE integrator.\n", " \n", " References\n", " ----------\n", " .. [1] 'Romberg's method' http://en.wikipedia.org/wiki/Romberg%27s_method\n", " \n", " Examples\n", " --------\n", " Integrate a gaussian from 0 to 1 and compare to the error function.\n", " \n", " >>> from scipy import integrate\n", " >>> from scipy.special import erf\n", " >>> gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2)\n", " >>> result = integrate.romberg(gaussian, 0, 1, show=True)\n", " Romberg integration of from [0, 1]\n", " \n", " ::\n", " \n", " Steps StepSize Results\n", " 1 1.000000 0.385872\n", " 2 0.500000 0.412631 0.421551\n", " 4 0.250000 0.419184 0.421368 0.421356\n", " 8 0.125000 0.420810 0.421352 0.421350 0.421350\n", " 16 0.062500 0.421215 0.421350 0.421350 0.421350 0.421350\n", " 32 0.031250 0.421317 0.421350 0.421350 0.421350 0.421350 0.421350\n", " \n", " The final result is 0.421350396475 after 33 function evaluations.\n", " \n", " >>> print(\"%g %g\" % (2*result, erf(1)))\n", " 0.842701 0.842701\n", " \n", " simps(y, x=None, dx=1, axis=-1, even='avg')\n", " Integrate y(x) using samples along the given axis and the composite\n", " Simpson's rule. If x is None, spacing of dx is assumed.\n", " \n", " If there are an even number of samples, N, then there are an odd\n", " number of intervals (N-1), but Simpson's rule requires an even number\n", " of intervals. The parameter 'even' controls how this is handled.\n", " \n", " Parameters\n", " ----------\n", " y : array_like\n", " Array to be integrated.\n", " x : array_like, optional\n", " If given, the points at which `y` is sampled.\n", " dx : int, optional\n", " Spacing of integration points along axis of `y`. Only used when\n", " `x` is None. Default is 1.\n", " axis : int, optional\n", " Axis along which to integrate. Default is the last axis.\n", " even : {'avg', 'first', 'str'}, optional\n", " 'avg' : Average two results:1) use the first N-2 intervals with\n", " a trapezoidal rule on the last interval and 2) use the last\n", " N-2 intervals with a trapezoidal rule on the first interval.\n", " \n", " 'first' : Use Simpson's rule for the first N-2 intervals with\n", " a trapezoidal rule on the last interval.\n", " \n", " 'last' : Use Simpson's rule for the last N-2 intervals with a\n", " trapezoidal rule on the first interval.\n", " \n", " See Also\n", " --------\n", " quad: adaptive quadrature using QUADPACK\n", " romberg: adaptive Romberg quadrature\n", " quadrature: adaptive Gaussian quadrature\n", " fixed_quad: fixed-order Gaussian quadrature\n", " dblquad: double integrals\n", " tplquad: triple integrals\n", " romb: integrators for sampled data\n", " cumtrapz: cumulative integration for sampled data\n", " ode: ODE integrators\n", " odeint: ODE integrators\n", " \n", " Notes\n", " -----\n", " For an odd number of samples that are equally spaced the result is\n", " exact if the function is a polynomial of order 3 or less. If\n", " the samples are not equally spaced, then the result is exact only\n", " if the function is a polynomial of order 2 or less.\n", " \n", " solve_bvp(fun, bc, x, y, p=None, S=None, fun_jac=None, bc_jac=None, tol=0.001, max_nodes=1000, verbose=0)\n", " Solve a boundary-value problem for a system of ODEs.\n", " \n", " This function numerically solves a first order system of ODEs subject to\n", " two-point boundary conditions::\n", " \n", " dy / dx = f(x, y, p) + S * y / (x - a), a <= x <= b\n", " bc(y(a), y(b), p) = 0\n", " \n", " Here x is a 1-dimensional independent variable, y(x) is a n-dimensional\n", " vector-valued function and p is a k-dimensional vector of unknown\n", " parameters which is to be found along with y(x). For the problem to be\n", " determined there must be n + k boundary conditions, i.e. bc must be\n", " (n + k)-dimensional function.\n", " \n", " The last singular term in the right-hand side of the system is optional.\n", " It is defined by an n-by-n matrix S, such that the solution must satisfy\n", " S y(a) = 0. This condition will be forced during iterations, so it must not\n", " contradict boundary conditions. See [2]_ for the explanation how this term\n", " is handled when solving BVPs numerically.\n", " \n", " Problems in a complex domain can be solved as well. In this case y and p\n", " are considered to be complex, and f and bc are assumed to be complex-valued\n", " functions, but x stays real. Note that f and bc must be complex\n", " differentiable (satisfy Cauchy-Riemann equations [4]_), otherwise you\n", " should rewrite your problem for real and imaginary parts separately. To\n", " solve a problem in a complex domain, pass an initial guess for y with a\n", " complex data type (see below).\n", " \n", " Parameters\n", " ----------\n", " fun : callable\n", " Right-hand side of the system. The calling signature is ``fun(x, y)``,\n", " or ``fun(x, y, p)`` if parameters are present. All arguments are\n", " ndarray: ``x`` with shape (m,), ``y`` with shape (n, m), meaning that\n", " ``y[:, i]`` corresponds to ``x[i]``, and ``p`` with shape (k,). The\n", " return value must be an array with shape (n, m) and with the same\n", " layout as ``y``.\n", " bc : callable\n", " Function evaluating residuals of the boundary conditions. The calling\n", " signature is ``bc(ya, yb)``, or ``bc(ya, yb, p)`` if parameters are\n", " present. All arguments are ndarray: ``ya`` and ``yb`` with shape (n,),\n", " and ``p`` with shape (k,). The return value must be an array with\n", " shape (n + k,).\n", " x : array_like, shape (m,)\n", " Initial mesh. Must be a strictly increasing sequence of real numbers\n", " with ``x[0]=a`` and ``x[-1]=b``.\n", " y : array_like, shape (n, m)\n", " Initial guess for the function values at the mesh nodes, i-th column\n", " corresponds to ``x[i]``. For problems in a complex domain pass `y`\n", " with a complex data type (even if the initial guess is purely real).\n", " p : array_like with shape (k,) or None, optional\n", " Initial guess for the unknown parameters. If None (default), it is\n", " assumed that the problem doesn't depend on any parameters.\n", " S : array_like with shape (n, n) or None\n", " Matrix defining the singular term. If None (default), the problem is\n", " solved without the singular term.\n", " fun_jac : callable or None, optional\n", " Function computing derivatives of f with respect to y and p. The\n", " calling signature is ``fun_jac(x, y)``, or ``fun_jac(x, y, p)`` if\n", " parameters are present. The return must contain 1 or 2 elements in the\n", " following order:\n", " \n", " * df_dy : array_like with shape (n, n, m) where an element\n", " (i, j, q) equals to d f_i(x_q, y_q, p) / d (y_q)_j.\n", " * df_dp : array_like with shape (n, k, m) where an element\n", " (i, j, q) equals to d f_i(x_q, y_q, p) / d p_j.\n", " \n", " Here q numbers nodes at which x and y are defined, whereas i and j\n", " number vector components. If the problem is solved without unknown\n", " parameters df_dp should not be returned.\n", " \n", " If `fun_jac` is None (default), the derivatives will be estimated\n", " by the forward finite differences.\n", " bc_jac : callable or None, optional\n", " Function computing derivatives of bc with respect to ya, yb and p.\n", " The calling signature is ``bc_jac(ya, yb)``, or ``bc_jac(ya, yb, p)``\n", " if parameters are present. The return must contain 2 or 3 elements in\n", " the following order:\n", " \n", " * dbc_dya : array_like with shape (n, n) where an element (i, j)\n", " equals to d bc_i(ya, yb, p) / d ya_j.\n", " * dbc_dyb : array_like with shape (n, n) where an element (i, j)\n", " equals to d bc_i(ya, yb, p) / d yb_j.\n", " * dbc_dp : array_like with shape (n, k) where an element (i, j)\n", " equals to d bc_i(ya, yb, p) / d p_j.\n", " \n", " If the problem is solved without unknown parameters dbc_dp should not\n", " be returned.\n", " \n", " If `bc_jac` is None (default), the derivatives will be estimated by\n", " the forward finite differences.\n", " tol : float, optional\n", " Desired tolerance of the solution. If we define ``r = y' - f(x, y)``\n", " where y is the found solution, then the solver tries to achieve on each\n", " mesh interval ``norm(r / (1 + abs(f)) < tol``, where ``norm`` is\n", " estimated in a root mean squared sense (using a numerical quadrature\n", " formula). Default is 1e-3.\n", " max_nodes : int, optional\n", " Maximum allowed number of the mesh nodes. If exceeded, the algorithm\n", " terminates. Default is 1000.\n", " verbose : {0, 1, 2}, optional\n", " Level of algorithm's verbosity:\n", " \n", " * 0 (default) : work silently.\n", " * 1 : display a termination report.\n", " * 2 : display progress during iterations.\n", " \n", " Returns\n", " -------\n", " Bunch object with the following fields defined:\n", " sol : PPoly\n", " Found solution for y as `scipy.interpolate.PPoly` instance, a C1\n", " continuous cubic spline.\n", " p : ndarray or None, shape (k,)\n", " Found parameters. None, if the parameters were not present in the\n", " problem.\n", " x : ndarray, shape (m,)\n", " Nodes of the final mesh.\n", " y : ndarray, shape (n, m)\n", " Solution values at the mesh nodes.\n", " yp : ndarray, shape (n, m)\n", " Solution derivatives at the mesh nodes.\n", " rms_residuals : ndarray, shape (m - 1,)\n", " RMS values of the relative residuals over each mesh interval (see the\n", " description of `tol` parameter).\n", " niter : int\n", " Number of completed iterations.\n", " status : int\n", " Reason for algorithm termination:\n", " \n", " * 0: The algorithm converged to the desired accuracy.\n", " * 1: The maximum number of mesh nodes is exceeded.\n", " * 2: A singular Jacobian encountered when solving the collocation\n", " system.\n", " \n", " message : string\n", " Verbal description of the termination reason.\n", " success : bool\n", " True if the algorithm converged to the desired accuracy (``status=0``).\n", " \n", " Notes\n", " -----\n", " This function implements a 4-th order collocation algorithm with the\n", " control of residuals similar to [1]_. A collocation system is solved\n", " by a damped Newton method with an affine-invariant criterion function as\n", " described in [3]_.\n", " \n", " Note that in [1]_ integral residuals are defined without normalization\n", " by interval lengths. So their definition is different by a multiplier of\n", " h**0.5 (h is an interval length) from the definition used here.\n", " \n", " .. versionadded:: 0.18.0\n", " \n", " References\n", " ----------\n", " .. [1] J. Kierzenka, L. F. Shampine, \"A BVP Solver Based on Residual\n", " Control and the Maltab PSE\", ACM Trans. Math. Softw., Vol. 27,\n", " Number 3, pp. 299-316, 2001.\n", " .. [2] L.F. Shampine, P. H. Muir and H. Xu, \"A User-Friendly Fortran BVP\n", " Solver\".\n", " .. [3] U. Ascher, R. Mattheij and R. Russell \"Numerical Solution of\n", " Boundary Value Problems for Ordinary Differential Equations\".\n", " .. [4] `Cauchy-Riemann equations\n", " `_ on\n", " Wikipedia.\n", " \n", " Examples\n", " --------\n", " In the first example we solve Bratu's problem::\n", " \n", " y'' + k * exp(y) = 0\n", " y(0) = y(1) = 0\n", " \n", " for k = 1.\n", " \n", " We rewrite the equation as a first order system and implement its\n", " right-hand side evaluation::\n", " \n", " y1' = y2\n", " y2' = -exp(y1)\n", " \n", " >>> def fun(x, y):\n", " ... return np.vstack((y[1], -np.exp(y[0])))\n", " \n", " Implement evaluation of the boundary condition residuals:\n", " \n", " >>> def bc(ya, yb):\n", " ... return np.array([ya[0], yb[0]])\n", " \n", " Define the initial mesh with 5 nodes:\n", " \n", " >>> x = np.linspace(0, 1, 5)\n", " \n", " This problem is known to have two solutions. To obtain both of them we\n", " use two different initial guesses for y. We denote them by subscripts\n", " a and b.\n", " \n", " >>> y_a = np.zeros((2, x.size))\n", " >>> y_b = np.zeros((2, x.size))\n", " >>> y_b[0] = 3\n", " \n", " Now we are ready to run the solver.\n", " \n", " >>> from scipy.integrate import solve_bvp\n", " >>> res_a = solve_bvp(fun, bc, x, y_a)\n", " >>> res_b = solve_bvp(fun, bc, x, y_b)\n", " \n", " Let's plot the two found solutions. We take an advantage of having the\n", " solution in a spline form to produce a smooth plot.\n", " \n", " >>> x_plot = np.linspace(0, 1, 100)\n", " >>> y_plot_a = res_a.sol(x_plot)[0]\n", " >>> y_plot_b = res_b.sol(x_plot)[0]\n", " >>> import matplotlib.pyplot as plt\n", " >>> plt.plot(x_plot, y_plot_a, label='y_a')\n", " >>> plt.plot(x_plot, y_plot_b, label='y_b')\n", " >>> plt.legend()\n", " >>> plt.xlabel(\"x\")\n", " >>> plt.ylabel(\"y\")\n", " >>> plt.show()\n", " \n", " We see that the two solutions have similar shape, but differ in scale\n", " significantly.\n", " \n", " In the second example we solve a simple Sturm-Liouville problem::\n", " \n", " y'' + k**2 * y = 0\n", " y(0) = y(1) = 0\n", " \n", " It is known that a non-trivial solution y = A * sin(k * x) is possible for\n", " k = pi * n, where n is an integer. To establish the normalization constant\n", " A = 1 we add a boundary condition::\n", " \n", " y'(0) = k\n", " \n", " Again we rewrite our equation as a first order system and implement its\n", " right-hand side evaluation::\n", " \n", " y1' = y2\n", " y2' = -k**2 * y1\n", " \n", " >>> def fun(x, y, p):\n", " ... k = p[0]\n", " ... return np.vstack((y[1], -k**2 * y[0]))\n", " \n", " Note that parameters p are passed as a vector (with one element in our\n", " case).\n", " \n", " Implement the boundary conditions:\n", " \n", " >>> def bc(ya, yb, p):\n", " ... k = p[0]\n", " ... return np.array([ya[0], yb[0], ya[1] - k])\n", " \n", " Setup the initial mesh and guess for y. We aim to find the solution for\n", " k = 2 * pi, to achieve that we set values of y to approximately follow\n", " sin(2 * pi * x):\n", " \n", " >>> x = np.linspace(0, 1, 5)\n", " >>> y = np.zeros((2, x.size))\n", " >>> y[0, 1] = 1\n", " >>> y[0, 3] = -1\n", " \n", " Run the solver with 6 as an initial guess for k.\n", " \n", " >>> sol = solve_bvp(fun, bc, x, y, p=[6])\n", " \n", " We see that the found k is approximately correct:\n", " \n", " >>> sol.p[0]\n", " 6.28329460046\n", " \n", " And finally plot the solution to see the anticipated sinusoid:\n", " \n", " >>> x_plot = np.linspace(0, 1, 100)\n", " >>> y_plot = sol.sol(x_plot)[0]\n", " >>> plt.plot(x_plot, y_plot)\n", " >>> plt.xlabel(\"x\")\n", " >>> plt.ylabel(\"y\")\n", " >>> plt.show()\n", " \n", " tplquad(func, a, b, gfun, hfun, qfun, rfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08)\n", " Compute a triple (definite) integral.\n", " \n", " Return the triple integral of ``func(z, y, x)`` from ``x = a..b``,\n", " ``y = gfun(x)..hfun(x)``, and ``z = qfun(x,y)..rfun(x,y)``.\n", " \n", " Parameters\n", " ----------\n", " func : function\n", " A Python function or method of at least three variables in the\n", " order (z, y, x).\n", " a, b : float\n", " The limits of integration in x: `a` < `b`\n", " gfun : function\n", " The lower boundary curve in y which is a function taking a single\n", " floating point argument (x) and returning a floating point result:\n", " a lambda function can be useful here.\n", " hfun : function\n", " The upper boundary curve in y (same requirements as `gfun`).\n", " qfun : function\n", " The lower boundary surface in z. It must be a function that takes\n", " two floats in the order (x, y) and returns a float.\n", " rfun : function\n", " The upper boundary surface in z. (Same requirements as `qfun`.)\n", " args : tuple, optional\n", " Extra arguments to pass to `func`.\n", " epsabs : float, optional\n", " Absolute tolerance passed directly to the innermost 1-D quadrature\n", " integration. Default is 1.49e-8.\n", " epsrel : float, optional\n", " Relative tolerance of the innermost 1-D integrals. Default is 1.49e-8.\n", " \n", " Returns\n", " -------\n", " y : float\n", " The resultant integral.\n", " abserr : float\n", " An estimate of the error.\n", " \n", " See Also\n", " --------\n", " quad: Adaptive quadrature using QUADPACK\n", " quadrature: Adaptive Gaussian quadrature\n", " fixed_quad: Fixed-order Gaussian quadrature\n", " dblquad: Double integrals\n", " nquad : N-dimensional integrals\n", " romb: Integrators for sampled data\n", " simps: Integrators for sampled data\n", " ode: ODE integrators\n", " odeint: ODE integrators\n", " scipy.special: For coefficients and roots of orthogonal polynomials\n", " \n", " trapz(y, x=None, dx=1.0, axis=-1)\n", " Integrate along the given axis using the composite trapezoidal rule.\n", " \n", " Integrate `y` (`x`) along given axis.\n", " \n", " Parameters\n", " ----------\n", " y : array_like\n", " Input array to integrate.\n", " x : array_like, optional\n", " The sample points corresponding to the `y` values. If `x` is None,\n", " the sample points are assumed to be evenly spaced `dx` apart. The\n", " default is None.\n", " dx : scalar, optional\n", " The spacing between sample points when `x` is None. The default is 1.\n", " axis : int, optional\n", " The axis along which to integrate.\n", " \n", " Returns\n", " -------\n", " trapz : float\n", " Definite integral as approximated by trapezoidal rule.\n", " \n", " See Also\n", " --------\n", " sum, cumsum\n", " \n", " Notes\n", " -----\n", " Image [2]_ illustrates trapezoidal rule -- y-axis locations of points\n", " will be taken from `y` array, by default x-axis distances between\n", " points will be 1.0, alternatively they can be provided with `x` array\n", " or with `dx` scalar. Return value will be equal to combined area under\n", " the red lines.\n", " \n", " \n", " References\n", " ----------\n", " .. [1] Wikipedia page: http://en.wikipedia.org/wiki/Trapezoidal_rule\n", " \n", " .. [2] Illustration image:\n", " http://en.wikipedia.org/wiki/File:Composite_trapezoidal_rule_illustration.png\n", " \n", " Examples\n", " --------\n", " >>> np.trapz([1,2,3])\n", " 4.0\n", " >>> np.trapz([1,2,3], x=[4,6,8])\n", " 8.0\n", " >>> np.trapz([1,2,3], dx=2)\n", " 8.0\n", " >>> a = np.arange(6).reshape(2, 3)\n", " >>> a\n", " array([[0, 1, 2],\n", " [3, 4, 5]])\n", " >>> np.trapz(a, axis=0)\n", " array([ 1.5, 2.5, 3.5])\n", " >>> np.trapz(a, axis=1)\n", " array([ 2., 8.])\n", "\n", "DATA\n", " __all__ = ['IntegrationWarning', 'absolute_import', 'complex_ode', 'cu...\n", " absolute_import = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0...\n", " division = _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192...\n", " print_function = _Feature((2, 6, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0)...\n", "\n", "FILE\n", " /home/zingale/.local/lib/python3.5/site-packages/scipy/integrate/__init__.py\n", "\n", "\n" ] } ], "source": [ "from scipy import integrate\n", "help(integrate)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "quad is the basic integrator for a general (not sampled) function. It uses a general-interface from the Fortran package QUADPACK (QAGS or QAGI). It will return the integral in an interval and an estimate of the error in the approximation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def f(x):\n", " return np.sin(x)**2" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.141592653589793\n", "2.3058791671639882e-09\n" ] } ], "source": [ "I, err = integrate.quad(f, 0.0, 2.0*np.pi, epsabs=1.e-14)\n", "print(I)\n", "print(err)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function quad in module scipy.integrate.quadpack:\n", "\n", "quad(func, a, b, args=(), full_output=0, epsabs=1.49e-08, epsrel=1.49e-08, limit=50, points=None, weight=None, wvar=None, wopts=None, maxp1=50, limlst=50)\n", " Compute a definite integral.\n", " \n", " Integrate func from `a` to `b` (possibly infinite interval) using a\n", " technique from the Fortran library QUADPACK.\n", " \n", " Parameters\n", " ----------\n", " func : function\n", " A Python function or method to integrate. If `func` takes many\n", " arguments, it is integrated along the axis corresponding to the\n", " first argument.\n", " If the user desires improved integration performance, then f may\n", " instead be a ``ctypes`` function of the form:\n", " \n", " f(int n, double args[n]),\n", " \n", " where ``args`` is an array of function arguments and ``n`` is the\n", " length of ``args``. ``f.argtypes`` should be set to\n", " ``(c_int, c_double)``, and ``f.restype`` should be ``(c_double,)``.\n", " a : float\n", " Lower limit of integration (use -numpy.inf for -infinity).\n", " b : float\n", " Upper limit of integration (use numpy.inf for +infinity).\n", " args : tuple, optional\n", " Extra arguments to pass to `func`.\n", " full_output : int, optional\n", " Non-zero to return a dictionary of integration information.\n", " If non-zero, warning messages are also suppressed and the\n", " message is appended to the output tuple.\n", " \n", " Returns\n", " -------\n", " y : float\n", " The integral of func from `a` to `b`.\n", " abserr : float\n", " An estimate of the absolute error in the result.\n", " infodict : dict\n", " A dictionary containing additional information.\n", " Run scipy.integrate.quad_explain() for more information.\n", " message\n", " A convergence message.\n", " explain\n", " Appended only with 'cos' or 'sin' weighting and infinite\n", " integration limits, it contains an explanation of the codes in\n", " infodict['ierlst']\n", " \n", " Other Parameters\n", " ----------------\n", " epsabs : float or int, optional\n", " Absolute error tolerance.\n", " epsrel : float or int, optional\n", " Relative error tolerance.\n", " limit : float or int, optional\n", " An upper bound on the number of subintervals used in the adaptive\n", " algorithm.\n", " points : (sequence of floats,ints), optional\n", " A sequence of break points in the bounded integration interval\n", " where local difficulties of the integrand may occur (e.g.,\n", " singularities, discontinuities). The sequence does not have\n", " to be sorted.\n", " weight : float or int, optional\n", " String indicating weighting function. Full explanation for this\n", " and the remaining arguments can be found below.\n", " wvar : optional\n", " Variables for use with weighting functions.\n", " wopts : optional\n", " Optional input for reusing Chebyshev moments.\n", " maxp1 : float or int, optional\n", " An upper bound on the number of Chebyshev moments.\n", " limlst : int, optional\n", " Upper bound on the number of cycles (>=3) for use with a sinusoidal\n", " weighting and an infinite end-point.\n", " \n", " See Also\n", " --------\n", " dblquad : double integral\n", " tplquad : triple integral\n", " nquad : n-dimensional integrals (uses `quad` recursively)\n", " fixed_quad : fixed-order Gaussian quadrature\n", " quadrature : adaptive Gaussian quadrature\n", " odeint : ODE integrator\n", " ode : ODE integrator\n", " simps : integrator for sampled data\n", " romb : integrator for sampled data\n", " scipy.special : for coefficients and roots of orthogonal polynomials\n", " \n", " Notes\n", " -----\n", " \n", " **Extra information for quad() inputs and outputs**\n", " \n", " If full_output is non-zero, then the third output argument\n", " (infodict) is a dictionary with entries as tabulated below. For\n", " infinite limits, the range is transformed to (0,1) and the\n", " optional outputs are given with respect to this transformed range.\n", " Let M be the input argument limit and let K be infodict['last'].\n", " The entries are:\n", " \n", " 'neval'\n", " The number of function evaluations.\n", " 'last'\n", " The number, K, of subintervals produced in the subdivision process.\n", " 'alist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " left end points of the subintervals in the partition of the\n", " integration range.\n", " 'blist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " right end points of the subintervals.\n", " 'rlist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " integral approximations on the subintervals.\n", " 'elist'\n", " A rank-1 array of length M, the first K elements of which are the\n", " moduli of the absolute error estimates on the subintervals.\n", " 'iord'\n", " A rank-1 integer array of length M, the first L elements of\n", " which are pointers to the error estimates over the subintervals\n", " with ``L=K`` if ``K<=M/2+2`` or ``L=M+1-K`` otherwise. Let I be the\n", " sequence ``infodict['iord']`` and let E be the sequence\n", " ``infodict['elist']``. Then ``E[I[1]], ..., E[I[L]]`` forms a\n", " decreasing sequence.\n", " \n", " If the input argument points is provided (i.e. it is not None),\n", " the following additional outputs are placed in the output\n", " dictionary. Assume the points sequence is of length P.\n", " \n", " 'pts'\n", " A rank-1 array of length P+2 containing the integration limits\n", " and the break points of the intervals in ascending order.\n", " This is an array giving the subintervals over which integration\n", " will occur.\n", " 'level'\n", " A rank-1 integer array of length M (=limit), containing the\n", " subdivision levels of the subintervals, i.e., if (aa,bb) is a\n", " subinterval of ``(pts[1], pts[2])`` where ``pts[0]`` and ``pts[2]``\n", " are adjacent elements of ``infodict['pts']``, then (aa,bb) has level l\n", " if ``|bb-aa| = |pts[2]-pts[1]| * 2**(-l)``.\n", " 'ndin'\n", " A rank-1 integer array of length P+2. After the first integration\n", " over the intervals (pts[1], pts[2]), the error estimates over some\n", " of the intervals may have been increased artificially in order to\n", " put their subdivision forward. This array has ones in slots\n", " corresponding to the subintervals for which this happens.\n", " \n", " **Weighting the integrand**\n", " \n", " The input variables, *weight* and *wvar*, are used to weight the\n", " integrand by a select list of functions. Different integration\n", " methods are used to compute the integral with these weighting\n", " functions. The possible values of weight and the corresponding\n", " weighting functions are.\n", " \n", " ========== =================================== =====================\n", " ``weight`` Weight function used ``wvar``\n", " ========== =================================== =====================\n", " 'cos' cos(w*x) wvar = w\n", " 'sin' sin(w*x) wvar = w\n", " 'alg' g(x) = ((x-a)**alpha)*((b-x)**beta) wvar = (alpha, beta)\n", " 'alg-loga' g(x)*log(x-a) wvar = (alpha, beta)\n", " 'alg-logb' g(x)*log(b-x) wvar = (alpha, beta)\n", " 'alg-log' g(x)*log(x-a)*log(b-x) wvar = (alpha, beta)\n", " 'cauchy' 1/(x-c) wvar = c\n", " ========== =================================== =====================\n", " \n", " wvar holds the parameter w, (alpha, beta), or c depending on the weight\n", " selected. In these expressions, a and b are the integration limits.\n", " \n", " For the 'cos' and 'sin' weighting, additional inputs and outputs are\n", " available.\n", " \n", " For finite integration limits, the integration is performed using a\n", " Clenshaw-Curtis method which uses Chebyshev moments. For repeated\n", " calculations, these moments are saved in the output dictionary:\n", " \n", " 'momcom'\n", " The maximum level of Chebyshev moments that have been computed,\n", " i.e., if ``M_c`` is ``infodict['momcom']`` then the moments have been\n", " computed for intervals of length ``|b-a| * 2**(-l)``,\n", " ``l=0,1,...,M_c``.\n", " 'nnlog'\n", " A rank-1 integer array of length M(=limit), containing the\n", " subdivision levels of the subintervals, i.e., an element of this\n", " array is equal to l if the corresponding subinterval is\n", " ``|b-a|* 2**(-l)``.\n", " 'chebmo'\n", " A rank-2 array of shape (25, maxp1) containing the computed\n", " Chebyshev moments. These can be passed on to an integration\n", " over the same interval by passing this array as the second\n", " element of the sequence wopts and passing infodict['momcom'] as\n", " the first element.\n", " \n", " If one of the integration limits is infinite, then a Fourier integral is\n", " computed (assuming w neq 0). If full_output is 1 and a numerical error\n", " is encountered, besides the error message attached to the output tuple,\n", " a dictionary is also appended to the output tuple which translates the\n", " error codes in the array ``info['ierlst']`` to English messages. The\n", " output information dictionary contains the following entries instead of\n", " 'last', 'alist', 'blist', 'rlist', and 'elist':\n", " \n", " 'lst'\n", " The number of subintervals needed for the integration (call it ``K_f``).\n", " 'rslst'\n", " A rank-1 array of length M_f=limlst, whose first ``K_f`` elements\n", " contain the integral contribution over the interval\n", " ``(a+(k-1)c, a+kc)`` where ``c = (2*floor(|w|) + 1) * pi / |w|``\n", " and ``k=1,2,...,K_f``.\n", " 'erlst'\n", " A rank-1 array of length ``M_f`` containing the error estimate\n", " corresponding to the interval in the same position in\n", " ``infodict['rslist']``.\n", " 'ierlst'\n", " A rank-1 integer array of length ``M_f`` containing an error flag\n", " corresponding to the interval in the same position in\n", " ``infodict['rslist']``. See the explanation dictionary (last entry\n", " in the output tuple) for the meaning of the codes.\n", " \n", " Examples\n", " --------\n", " Calculate :math:`\\int^4_0 x^2 dx` and compare with an analytic result\n", " \n", " >>> from scipy import integrate\n", " >>> x2 = lambda x: x**2\n", " >>> integrate.quad(x2, 0, 4)\n", " (21.333333333333332, 2.3684757858670003e-13)\n", " >>> print(4**3 / 3.) # analytical result\n", " 21.3333333333\n", " \n", " Calculate :math:`\\int^\\infty_0 e^{-x} dx`\n", " \n", " >>> invexp = lambda x: np.exp(-x)\n", " >>> integrate.quad(invexp, 0, np.inf)\n", " (1.0, 5.842605999138044e-11)\n", " \n", " >>> f = lambda x,a : a*x\n", " >>> y, err = integrate.quad(f, 0, 1, args=(1,))\n", " >>> y\n", " 0.5\n", " >>> y, err = integrate.quad(f, 0, 1, args=(3,))\n", " >>> y\n", " 1.5\n", " \n", " Calculate :math:`\\int^1_0 x^2 + y^2 dx` with ctypes, holding\n", " y parameter as 1::\n", " \n", " testlib.c =>\n", " double func(int n, double args[n]){\n", " return args[0]*args[0] + args[1]*args[1];}\n", " compile to library testlib.*\n", " \n", " ::\n", " \n", " from scipy import integrate\n", " import ctypes\n", " lib = ctypes.CDLL('/home/.../testlib.*') #use absolute path\n", " lib.func.restype = ctypes.c_double\n", " lib.func.argtypes = (ctypes.c_int,ctypes.c_double)\n", " integrate.quad(lib.func,0,1,(1))\n", " #(1.3333333333333333, 1.4802973661668752e-14)\n", " print((1.0**3/3.0 + 1.0) - (0.0**3/3.0 + 0.0)) #Analytic result\n", " # 1.3333333333333333\n", "\n" ] } ], "source": [ "help(integrate.quad)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "sometimes our integrand function takes optional arguments" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def g(x, A, sigma):\n", " return A*np.exp(-x**2/sigma**2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.8451240256511698 2.0484991765669867e-14\n" ] } ], "source": [ "I, err = integrate.quad(g, -1.0, 1.0, args=(1.0, 2.0))\n", "print(I, err)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "numpy defines the inf quantity which can be used in the integration limits. We can integrate a Gaussian (we know the answer is sqrt(pi)\n", "\n", "Note: behind the scenes, what the integration function does is do a variable transform like: $t = 1/x$. This works when one limit is $\\infty$, giving\n", "\n", "$$\\int_a^b f(x) dx = \\int_{1/b}^{1/a} \\frac{1}{t^2} f\\left (\\frac{1}{t}\\right) dt$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.7724538509055159 1.4202636780944923e-08\n" ] } ], "source": [ "I, err = integrate.quad(g, -np.inf, np.inf, args=(1.0, 1.0))\n", "print(I, err)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### integration of a sampled function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "here we integrate a function that is defined only at a sequece of points. Recall that Simpson's rule will use piecewise parabola data. Let's compute\n", "\n", "$$I = \\int_0^{2\\pi} f(x_i) dx$$\n", "\n", "with $x_i = 0, \\ldots, 2\\pi$ defined at $N$ points" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.14159265359\n" ] } ], "source": [ "N = 17\n", "x = np.linspace(0.0, 2.0*np.pi, N, endpoint=True)\n", "y = np.sin(x)**2\n", "\n", "I = integrate.simps(y, x)\n", "print(I)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Romberg integration is specific to equally-spaced samples, where $N = 2^k + 1$ and can be more converge faster (it uses extrapolation of coarser integration results to achieve higher accuracy)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.14306583533\n" ] } ], "source": [ "N = 17\n", "x = np.linspace(0.0, 2.0*np.pi, N, endpoint=True)\n", "y = np.sin(x)**2\n", "\n", "I = integrate.romb(y, dx=x[1]-x[0])\n", "print(I)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Root Finding" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Often we need to find a value of a variable that zeros a function -- this is _root finding_. Sometimes, this is a multidimensional problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `brentq()` routine offers a very robust method for find roots from a scalar function. You do need to provide an interval that bounds the root." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$f(x) = \\frac{x e^x}{e^x - 1} - 5$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4.965114231744287\n", "True\n" ] } ], "source": [ "import scipy.optimize as optimize\n", "\n", "def f(x):\n", " # this is the non-linear equation that comes up in deriving Wien's law for radiation\n", " return (x*np.exp(x)/(np.exp(x) - 1.0) - 5.0)\n", "\n", "root, r = optimize.brentq(f, 0.1, 10.0, full_output=True)\n", "\n", "print(root)\n", "print(r.converged)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nBuMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0.1, 10.0, 1000)\n", "plt.plot(x, f(x))\n", "plt.plot(np.array([root]), np.array([f(root)]), 'ro')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# ODEs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many methods exist for integrating ordinary differential equations. Most will want you to write your ODEs as a system of first order equations." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This system of ODEs is the Lorenz system:\n", "\n", "$$\\frac{dx}{dt} = \\sigma (y - x)$$\n", "$$\\frac{dy}{dt} = rx - y - xz$$\n", "$$\\frac{dz}{dt} = xy - bz$$\n", "\n", "the steady states of this system correspond to:\n", "\n", "$${\\bf f}({\\bf x}) = \n", "\\left (\n", "\\sigma (y -x), \n", "rx - y -xz, \n", "xy - bz\n", "\\right )^\\intercal\n", "= 0$$\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# system parameters\n", "sigma = 10.0\n", "b = 8./3.\n", "r = 28.0\n", "\n", "def rhs(t, x):\n", " xdot = sigma*(x[1] - x[0])\n", " ydot = r*x[0] - x[1] - x[0]*x[2]\n", " zdot = x[0]*x[1] - b*x[2]\n", "\n", " return np.array([xdot, ydot, zdot])\n", "\n", "\n", "def jac(t, x):\n", "\n", " return np.array(\n", " [ [-sigma, sigma, 0.0], \n", " [r - x[2], -1.0, -x[0]],\n", " [x[1], x[0], -b] ])\n", "\n", "\n", "def f(x):\n", " return rhs(0.,x), jac(0.,x)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This class stores the integrated solution in a simple datatype" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class IntHistory(object):\n", " \"\"\" a simple container to store the integrated history \"\"\"\n", " \n", " def __init__(self, t=None, x=None, y=None, z=None):\n", " self.t = np.array(t)\n", " self.x = np.array(x)\n", " self.y = np.array(y)\n", " self.z = np.array(z)\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def ode_integrate(X0, dt, tmax):\n", " \"\"\" integrate using the VODE method, storing the solution each dt \"\"\"\n", "\n", " r = integrate.ode(rhs, jac).set_integrator(\"vode\", method=\"adams\",\n", " with_jacobian=True,\n", " atol=1.e-10, rtol=1.e-10,\n", " nsteps = 15000, order=12)\n", "\n", " t = 0.0\n", " r.set_initial_value(X0, t)\n", "\n", " tout = [t]\n", " x1out = [X0[0]]\n", " x2out = [X0[1]]\n", " x3out = [X0[2]]\n", "\n", " while r.successful() and r.t < tmax:\n", " r.integrate(r.t+dt)\n", "\n", " tout.append(r.t)\n", " x1out.append(r.y[0])\n", " x2out.append(r.y[1])\n", " x3out.append(r.y[2])\n", "\n", "\n", " return IntHistory(np.array(tout), np.array(x1out), np.array(x2out), np.array(x3out))\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ncHFN3Tmjoii9L5ytzyj0joKR2NsCXOVK8XnoqgyqI9djtVox9ZBqUHvQndmxd3BtT8+7r2Xrfclz\nVLyeMw0ZtUc9qKvK8l3NHe0KCILAb7/9xjPPPMOrr77K1KlTe/V6/kfQX+btLMSSbns5o+5l3o7C\ne8CoJ3aIrdFd2pNBdZXBsTv6Yu+vu7NjqVSKVCp1lft8CZyLGRTgGqaRSCRnpe/cFfClY9vb1+M+\nZNTW/fFVsfFWD/JVlu9I9uo9hNXbfy8RNpuNZ599lhMnTrBp0ybCwsJ6+5L+T6E/M/WC2WxGp9N1\niDPaEWs0Eb0hSu89idoewnpbGdTZ8v+8s+O+1vvrzWxCrBJYLBafk8PdOdjUFvqajq37UE9XeaCe\nTfba29zR1lBaWsrSpUu5+OKLuffee/vENf0PoX+atzMQBAG9Xt8hWkN7rdHcz9HTerpdRXfxHq5x\nn3zuSGnYPTvuC4tOX+xFumd/4vV0xb3v7PX0NR1bb9eZ7uz1u88btHbvxVI89I2NITjv008//cSz\nzz7LihUrmDx5cq9ez/8o+su8nYFEIunwItHeMm9vZaPudJeznSRsbbjGfYF3X2i8eZeARzbaF+Tc\n+lqv1lt+zz37a+ven81gU1voa56jvTHU46ss75692mw2j/e/xWLB4XB48I17+pmyWq38/e9/Jy8v\njx9++KFLqXv9aIn+YOoDYn+qIz8PbQfTnh4wgs65u3QU7j0lEd4lstbKlGK21VdUg/pCNtre3h+0\n7967T2x3VMzDV/bXmxsf6DtDT+7ZqGjbKJfLUSgUrg1Od1Ci2ovi4mJuu+025s+fz4svvthf1u0B\n9Jd5faCjnqbubi6iOo+I3ijpeg/Q9CWxA2+crVpTZ+CdjfaFktzZGne3hvaKeXgrNvU1z1Fv5aDe\nfqbBkzvqq8zsq3LgSwa0K7NXQRD44YcfeOGFF3jzzTeZMGHCWR3PF4qKirj++uupqKhAIpFw6623\ncs8996DT6bjyyivJz88nKSmJtWvXdosqXC+gv2faWXQ0mArCaTcXjUbj+r/eKOl2l7tLZ+GrVyuR\nSFqUhs9Gd7Uj6OvZaHf3IsXBprYUm6RSqatU3xeeobPV+e1qnE2Z2Zvr7U2JOpvs1WKx8PTTT1Nc\nXMx7771HcHDwmV/UCZSVlVFWVsbYsWNpbGxk3LhxfPXVV6xcuZLQ0FAeeeQRXnjhBWpra1m+fHm3\n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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "H1 = ode_integrate([1.0, 1.0, 20.0], 0.02, 30)\n", "\n", "from mpl_toolkits.mplot3d import Axes3D\n", "\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "ax.plot(H1.x, H1.y, H1.z)\n", "fig.set_size_inches(8.0,6.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multi-variate root find" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we can find the steady points in this system by doing a multi-variate root find on the RHS vector" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 0. 0.]\n", "[ 8.48528137 8.48528137 27. ]\n", "[ -8.48528137 -8.48528137 27. ]\n" ] } ], "source": [ "sol1 = optimize.root(f, [1., 1., 1.], jac=True)\n", "print(sol1.x)\n", "\n", "sol2 = optimize.root(f, [10., 10., 10.], jac=True)\n", "print(sol2.x)\n", "\n", "sol3 = optimize.root(f, [-10., -10., -10.], jac=True)\n", "print(sol3.x)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n5qO8M9G3eGHakrQz+qv4PlfJxJV98qT2LZVcxEEH4rki1VTFH4PB0GUZXm9r0uJ2iP+K+yQ+rYoB\nkjRx1xNdurGxsUtPmrMFfY6QAXx8fLp0fOuNCNlWNhH1a0cnvVQfU6vVVsKxNaPpTjJILPkSP+vJ\nR3l3JtI601/FCFpK0GKkp9fre1zJIEVP5InuwBnJxZGm2lUZni1Jy2QyK0F6ep+kpO/o3OtM8hDL\n8DojaXdVWMTExFBcXGx9XVJSQkxMTI+X2x30SUJ2Bu4mZHGZ4sUhLevqqgXbXsLOns4ordnsKmMv\nl1usHfV6vTUC0mg0bteJofcSaXCKuMToW6PR2CUkEd25edmuxxPyhD30pKPPURleVzIQYL3hiU8Y\n7jw3xModZ0jfFV1a/JxMJqO+vt4thJyRkUF+fj7Hjh0jJiaG5cuX97rhfZ8k5O5cNO6ushDNU8Ci\nm3ZmW9idhJ2UWMSuqa4y9uLnVCqVx3RiaZWGpxNp0sdeW9mnu5UMjkja3qO8p25ktqQv7pO7Stmk\nJG0ymWhubm7X+CE+PYlw9eZlu0+ddQ92Z/uhc5IW///zzz9TVlbWreXbg1Kp5I033uCKK67AZDIx\ne/ZshgwZ0uPldgd9rnUanLfg7K5JvSOIF5aYhFGr1V26WYmk4a7KCTg1308a8UijC3BPg0JvVWmI\n6+osOdid5diStO1xEUlKJC2xo8/d6E1N2l6kLyV9Z4+L7flib1ul8o6nWuClqKmp4ZFHHkGhUPD0\n00+TlJTksXW5Af2t011BjIhchW3DiXjydpZg8EQ9sa1kYEtarkSMji4k0c9Wak3qqejbnaTfVbmZ\nWJonQtpN2JOI0RbSSN+TVS6AtQa/M9J3tQzPkTzmaXlH3L4ff/yRF198kYULFzJ16lSPrau30ScJ\nuTuF5+5qdfbz82vXkm2L3mjscPR43dVF5wxJy+WWica9oRPbJtK6JK2aGggKApnM4qhfWwtOjmsX\nH9u7o0k7GzFKYftduRrpO7tP0kqN7t40u8phSG9i9j4nHj93NPrYorq6mvnz5+Pj48OaNWv6hMOb\nFH2SkJ2FK4QsygK2rc5i5tpe2ZsniFgaPbpSe+sKScOpmk9PJQfFihCnSb+mBu3FF2OaOhXD88+j\nevRRFD/9RNvGjZ2SsquatDMRoy1JO9t00VOI54UonblT07et8JDWLwNWIjYYDJ1WeLhK0oIg8N13\n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\nwQWZMcYU4m/oK0HYVTWv7QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "ax.plot(H1.x, H1.y, H1.z)\n", "\n", "ax.scatter(sol1.x[0], sol1.x[1], sol1.x[2], marker=\"x\", color=\"r\")\n", "ax.scatter(sol2.x[0], sol2.x[1], sol2.x[2], marker=\"x\", color=\"r\")\n", "ax.scatter(sol3.x[0], sol3.x[1], sol3.x[2], marker=\"x\", color=\"r\")\n", "\n", "ax.set_xlabel(\"x\")\n", "ax.set_ylabel(\"y\")\n", "ax.set_zlabel(\"z\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fitting\n", "\n", "Fitting is used to match a model to experimental data. E.g. we have N points of $(x_i, y_i)$ with associated errors, $\\sigma_i$, and we want to find a simply function that best represents the data.\n", "\n", "Usually this means that we will need to define a metric, often called the residual, for how well our function matches the data, and then minimize this residual. Least-squares fitting is a popular formulation.\n", "\n", "We want to fit our data to a function $Y(x, \\{a_j\\})$, where $a_j$ are model parameters we can adjust. We want to find the optimal $a_j$ to minimize the distance of $Y$ from our data:\n", "$$\\Delta_i = Y(x_i, \\{a_j\\}) - y_i$$\n", "\n", "Least-squares minimizes $\\chi^2$:\n", "$$\\chi^2(\\{a_j\\}) = \\sum_{i=1}^N \\left ( \\frac{\\Delta_i}{\\sigma_i} \\right )^2$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### general linear least squares" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we'll make some experimental data (a quadratic with random fashion). We use the randn() function to provide Gaussian normalized errors." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/zingale/.local/lib/python3.5/site-packages/matplotlib/axes/_axes.py:2818: MatplotlibDeprecationWarning: Use of None object as fmt keyword argument to suppress plotting of data values is deprecated since 1.4; use the string \"none\" instead.\n", " warnings.warn(msg, mplDeprecation, stacklevel=1)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nJWkg/h/5SWfbvO9SMwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def y_experiment2(a1, a2, a3, sigma, x):\n", " \"\"\" return the experimental data in a quadratic + random fashion, \n", " with a1, a2, a3 the coefficients of the quadratic and sigma is \n", " the error. This will be poorly matched to a linear fit for \n", " a3 != 0 \"\"\"\n", "\n", " N = len(x)\n", "\n", " # randn gives samples from the \"standard normal\" distribution \n", " r = np.random.randn(N)\n", "\n", " y = a1 + a2*x + a3*x*x + sigma*r\n", "\n", " return y\n", "\n", "N = 40\n", "sigma = 5.0*np.ones(N)\n", "\n", "x = np.linspace(0, 100.0, N)\n", "y = y_experiment2(2.0, 1.50, -0.02, sigma, x)\n", "\n", "plt.scatter(x,y)\n", "plt.errorbar(x, y, yerr=sigma, fmt=None)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 4.16669496 1.40563242 -0.01925657]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/zingale/.local/lib/python3.5/site-packages/matplotlib/axes/_axes.py:2818: MatplotlibDeprecationWarning: Use of None object as fmt keyword argument to suppress plotting of data values is deprecated since 1.4; use the string \"none\" instead.\n", " warnings.warn(msg, mplDeprecation, stacklevel=1)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/D+Hf5eAQ7y5tAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def resid(avec, x, y, sigma):\n", " \"\"\" the residual function -- this is what will be minimized by the\n", " scipy.optimize.leastsq() routine. avec is the parameters we\n", " are optimizing -- they are packed in here, so we unpack to\n", " begin. (x, y) are the data points \n", "\n", " scipy.optimize.leastsq() minimizes:\n", "\n", " x = arg min(sum(func(y)**2,axis=0))\n", " y\n", "\n", " so this should just be the distance from a point to the curve,\n", " and it will square it and sum over the points\n", " \"\"\"\n", "\n", " a0, a1, a2 = avec\n", " \n", " return (y - (a0 + a1*x + a2*x**2))/sigma\n", "\n", "\n", "# initial guesses\n", "a0, a1, a2 = 1, 1, 1\n", "\n", "afit, flag = optimize.leastsq(resid, [a0, a1, a2], args=(x, y, sigma))\n", "\n", "print(afit)\n", "\n", "plt.plot(x, afit[0] + afit[1]*x + afit[2]*x*x )\n", "plt.scatter(x,y)\n", "plt.errorbar(x, y, yerr=sigma, fmt=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\chi^2$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.937643967456\n" ] } ], "source": [ "chisq = sum(np.power(resid(afit, x, y, sigma),2))\n", "normalization = len(x)-len(afit)\n", "print(chisq/normalization)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### a nonlinear example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "our experiemental data -- an exponential" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/zingale/.local/lib/python3.5/site-packages/matplotlib/axes/_axes.py:2818: MatplotlibDeprecationWarning: Use of None object as fmt keyword argument to suppress plotting of data values is deprecated since 1.4; use the string \"none\" instead.\n", " warnings.warn(msg, mplDeprecation, stacklevel=1)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEwxJREFUeJzt3X2MHdV9xvHn6WKHldJ2k3hFzBpqqlAqUhpMVy6WpSoi\njUyTCFyXBkdtChWVUZuoiVJBcSo1StUIR0hJ+iYFK6C4bQpGhBiXkloEE0WtqMkSE95cGgcKwSHx\nJsR5Ua0Yr3/9487iZdn13rl33s/3I6323rmz9xyNPc/M/GbmjCNCAIDu+5m6OwAAqAaBDwCJIPAB\nIBEEPgAkgsAHgEQQ+ACQCAIfABJB4ANAIgh8AEjEaXV3YK4VK1bE6tWr6+4GALTKww8//L2IGF9q\nvkYF/urVqzU1NVV3NwCgVWw/2898lHQAIBEEPgAkgsAHgEQQ+ACQCAIfABJB4ANAIgh8AEgEgQ8A\niSDwAaBGV978oK68+cFK2iLwASARBD4AJILAB4BEEPgAkAgCHwASQeADQCIIfABIBIEPAIkg8AEg\nEQQ+ACSCwAeARBD4AJAIAh8AEkHgA0AiCHwAqMmu/Ye0/7kj2vfMi1q/ba927T9UansEPgDUYNf+\nQ9p612M6NnNCknToyFFtveuxUkO/sMC3PWJ7v+17svfn2N5n+6DtnbaXF9UWALTdTXue0tGXZl4x\n7ehLM7ppz1OltVnkHv4HJB2Y8/7jkj4ZEW+S9ANJ1xTYFgC02rePHM01vQiFBL7tVZLeKekz2XtL\nukTSndksOyRtLKItAOiCM8dGc00vQlF7+J+SdL2kE9n7N0g6EhHHs/fPS5pY6A9tb7E9ZXtqenq6\noO4AQLNdt+E8jS4becW00WUjum7DeaW1OXTg236XpMMR8fAgfx8R2yNiMiImx8fHh+0OANQmzwPJ\nN66Z0I2bLtDykV4MT4yN6sZNF2jjmgX3jQtxWgHfsV7SZbbfIel0ST8n6W8kjdk+LdvLXyWp3OuN\nAKBlNq6Z0G0PPSdJ2nntutLbG3oPPyK2RsSqiFgtabOkvRHxe5IekHRFNttVku4eti0AwODKvA7/\nzyV9yPZB9Wr6t5TYFgBgCUWUdF4WEV+W9OXs9dOS1hb5/QCAwXGnLQAkgsAHgEQQ+ACQCAIfABJB\n4APAIvLcSNUGBD4AJILAB4BEEPgAkAgCHwASQeADQCIKHVoBAFI1+0DyYzMntH7bXl234by+hjqu\nYpTMWezhA8CQ6ngg+SAIfAAYUh0PJB8EgQ8AQ6rjgeSDIPABYEh1PJB8EAQ+AAypjgeSD4KrdABg\nSLNX41x/56M6NnNCE2OjfV+lUyUCHwAKUPUDyQdBSQcAEkHgA8ACZm+k2vfMi1q/bW/jrqkfBIEP\nAPO05UaqvAh8AJinLTdS5UXgA8A8bbmRKi8CHwDmacuNVHkR+AAwT1tupMqL6/ABFGr2od9NvRa9\nH225kSovAh8AFtCGG6nyGrqkY/t02w/Z/rrtJ2x/NJt+ju19tg/a3ml7+fDdBQAMqoga/k8lXRIR\nb5F0oaRLbV8s6eOSPhkRb5L0A0nXFNAWAEjqlY5my0foz9CBHz0/yd4uy35C0iWS7sym75C0cdi2\nAACDK+QqHdsjth+RdFjSfZK+KelIRBzPZnle0oJnO2xvsT1le2p6erqI7gAAFlDISduImJF0oe0x\nSV+Q9Ms5/na7pO2SNDk5GUX0BwDq0PSTu4Vehx8RRyQ9IGmdpDHbsxuUVZLaPQgFALRcEVfpjGd7\n9rI9Kuntkg6oF/xXZLNdJenuYdsCAAyuiJLOSkk7bI+otwG5IyLusf2kpNtt/7Wk/ZJuKaAtAMCA\nhg78iHhU0poFpj8tae2w3w8AKAZj6QBAIgh8AEgEgQ8AiSDwgZZiaAHkxWiZAAoz++DvYzMntH7b\n3r6HFG7qkMpN68+w2MMHUIiuPvi7Swh8AIXo6oO/u4TAB1CIKh/8PVs62vfMi1q/bS9HEX0i8AEU\noqoHfw9aOuIkN4EPoCBVPfib0tHguEoHQCGqevB3laWjriHwARSmigd/nzk2qkMLhHvRpaMuoqQD\noFWqKh11EXv4AFqlqtJRFxH4AFqnitJRF1HSAYBEEPgAkAgCHwASQeADLcTQAhgEgQ+0TNdGpWTj\nVR0CH2iZLg0t0LWNV9MR+EDLdGlogS5tvNqAwAdapqpRKavQpY1XGxD4QMt0aWiBKodU5jwBgQ+0\nzsY1E7px0wVaPtJbfSfGRnXjpgtaObRAFRsvzhOcxNAKQAs1eWiBPP2pYlycU50naONGchgEPoBa\nlb3x4jzBSUOXdGyfZfsB20/afsL2B7Lpr7d9n+1vZL9fN3x3ASCfLp3kHlYRNfzjkv4sIs6XdLGk\n99k+X9INku6PiHMl3Z+9B4BC7Lx2XV9HBF06yT2soQM/Il6IiK9lr38s6YCkCUmXS9qRzbZD0sZh\n2wKAvLp0kntYhdbwba+WtEbSPklnRMQL2UffkXTGIn+zRdIWSTr77LOL7A4ASGr2Se4qFXZZpu3X\nSvq8pA9GxI/mfhYRISkW+ruI2B4RkxExOT4+XlR3AADzFBL4tpepF/afi4i7ssnftb0y+3ylpMNF\ntAUAGEwRV+lY0i2SDkTEJ+Z8tFvSVdnrqyTdPWxbAIDBFVHDXy/pvZIes/1INu3DkrZJusP2NZKe\nlfTuAtoCAAxo6MCPiP+Q5EU+ftuw3w8AKAZj6QBAIgh8AEgEgY/kXHnzg7ry5gfr7gZQOQZPA1oq\n5RuIMBgCH0jI7JFN0zYWTetPV1HSyYFSAIA2I/CBPrCxRxcQ+ABOiY1dd1DDB5AEzhOwhw8AySDw\nASARBD7QENTKUTYCHygB4Y0mIvABIBEEPgAkgsAHgEQQ+ACQCAIfSdm1/5D2P3dE+555Ueu37dWu\n/Yfq7hJQGQIfydi1/5C23vWYjs2ckCQdOnJUW+96jNBHMgh8JOOmPU/p6Eszr5h29KUZ3bTnqZp6\nVC2ObkDg96nJKwvXfPfn20eO5preJRzdQCLw+8LK0g1njo3mmj6ryRv7fqV+dIMeAr8PrCzdcN2G\n8zS6bOQV00aXjei6Dect+jdd2dgPenTThY0dTiLw+5ByKaBLNq6Z0I2bLtDykd5/+4mxUd246QJt\nXDOx6N90ZWM/yNFNVzZ2OInA78OgpYAmS7Xuv3HNhNacPaZfP+f1+s8bLjll2Evd2dgPcnTTlY0d\nTiLw+zDIyoJu6MrGfpCjm65s7HASgd+HQVYWdENVG/sqauV5j266srHDSYUEvu1bbR+2/ficaa+3\nfZ/tb2S/X1dEW3XJu7KgGwbZ2OcN76bWyjmy7Z6i9vA/K+nSedNukHR/RJwr6f7sPdA6eTb2g4R3\nU2vlHNl2TyGBHxFfkfTivMmXS9qRvd4haWMRbS0m1ZOQaJZBwrvJtXKObLulzBr+GRHxQvb6O5LO\nWGgm21tsT9memp6eLrE7QPkGCW9q5ahKJSdtIyIkxSKfbY+IyYiYHB8fr6I7jcfRSnsNEt7UylGV\nMgP/u7ZXSlL2+3CJbQGNMEh4UytHVU4r8bt3S7pK0rbs990ltgU0wmxIX3/nozo2c0ITY6O6bsN5\nS4b3xjUTuu2h5yRJO69dV3o/kaZCAt/2bZLeKmmF7eclfUS9oL/D9jWSnpX07iLaQj1mS0yE0dII\nbzRVIYEfEe9Z5KO3FfH9WNzsNd/HZk5o/ba9fe1NAkgTd9q2WFNv2AHQTAR+izX1hh0AzVTmSVuU\nrMk37DQZdXWkij38Fkv5CU4A8iPwWyzlJzhhMDuvXccRTsIo6eTQtBVlkGu+T1X3b+PVPVwuCvSP\nwG+5vNd8U/cfDBsUdAGBn5gzx0Z1aIFwZ6AuLIaNXXd0oobPScj+NX2gLgaOA8rT+j38xU5CSmpl\nTbpsg471AqD9Wr+H3/Sbj/LusTbx2aYAuqH1e/hdOgnJ0UraqJWjbK0P/C6dhOzaJZMpI7zRRK0v\n6QxzErJpJwiberTCSXGgG1of+F16WlATn23KnblAd7Q+8KXunIRs4iWTTT8pDqB/ra/hd0kTL5ls\napkJQH4EfsM07fF4XTopDqSuEyUdlKeJZSYAg2EPH6fUxDITgMEQ+B1QdumnaWWmWTzAHciHkg5a\nictFgfwIfLQSl4sC+RH4aIw8d/RyuSiQHzX8RDWpFi/lHziOy0WB/NjDLxFj0PQvb4mGy0WB/NjD\nLwlDHeeTt0TD5aJAfqXv4du+1PZTtg/avqHs9pqCk4r5DDJwXFfGUAKqUmrg2x6R9A+SfkvS+ZLe\nY/v8MtvsV9nlFk4q5ht+mhINUL6ySzprJR2MiKclyfbtki6X9GTRDeU5CVlFuYWTivlQogHKV3ZJ\nZ0LSt+a8fz6b9jLbW2xP2Z6anp4uuTs9VZRb2GPNjxINUK7aT9pGxHZJ2yVpcnIyqmizinLLMHus\nTbtkEkA3lB34hySdNef9qmxaraoqtzR1DBoAaSq7pPNVSefaPsf2ckmbJe0uuc0lUW4BkKJS9/Aj\n4rjt90vaI2lE0q0R8USZbfaDE4T5cYQCtF/pNfyIuFfSvWW3kxflFgCpYWgFAEgEgQ8AiSDwASAR\nBD4AJILAB4BE1H6nLTAMrrAC+scePgAkgsBHKXjaF9A8lHRQuGGGn6ZEA5SHPXwUjqd9Ac3EHn7J\nUtxj5WlfQDOxh4/CDfJ8WgDlI/BROIafBpop6ZJOiuWWKjD8NNBMSQc+ysPw00DzUNIBgEQQ+ACQ\nCAIfABJB4ANAIgh8AEgEgQ8AiSDwASARBD4AJILAB4BEEPgAkAgCHwASQeADQCKGCnzbv2v7Cdsn\nbE/O+2yr7YO2n7K9YbhuAgCGNexomY9L2iTp5rkTbZ8vabOkN0s6U9KXbP9SRMy8+ivQVYySCTTL\nUHv4EXEgIhZ6UOnlkm6PiJ9GxDOSDkpaO0xbAIDhlFXDn5D0rTnvn8+mvYrtLbanbE9NT0+X1B0A\nwJIlHdtfkvTGBT76i4i4e9gORMR2SdslaXJyMob9PgDAwpYM/Ij4zQG+95Cks+a8X5VNAwDUpKyS\nzm5Jm22/xvY5ks6V9FBJbQEA+jDsZZm/bft5Sesk/ZvtPZIUEU9IukPSk5L+XdL7uEIHAOo11GWZ\nEfEFSV9Y5LOPSfrYMN8PACgOd9oCQCIIfABIhCOacyWk7WlJzw7xFSskfa+g7hSJfuVDv/rXxD5J\n9CuvYfv1CxExvtRMjQr8YdmeiojJpeesFv3Kh371r4l9kuhXXlX1i5IOACSCwAeARHQt8LfX3YFF\n0K986Ff/mtgniX7lVUm/OlXDBwAsrmt7+ACARbQy8G1fmj1J66DtGxb4/DW2d2af77O9uiH9utr2\ntO1Hsp8/qqBPt9o+bPvxRT637b/N+vyo7YvK7lOf/Xqr7R/OWVZ/WUGfzrL9gO0nsye5fWCBeSpf\nXn32q47ldbrth2x/PevXRxeYp/J1sc9+Vb4uzml7xPZ+2/cs8Fm5yysiWvUjaUTSNyX9oqTlkr4u\n6fx58/yJpE9nrzdL2tmQfl0t6e8rXl6/IekiSY8v8vk7JH1RkiVdLGlfQ/r1Vkn3VLysVkq6KHv9\ns5L+Z4F/w8qXV5/9qmN5WdJrs9fLJO2TdPG8eepYF/vpV+Xr4py2PyTpXxb69yp7ebVxD3+tpIMR\n8XREHJN0u3pP2Jrrckk7std3SnqbbTegX5WLiK9IevEUs1wu6R+j578kjdle2YB+VS4iXoiIr2Wv\nfyzpgF794J7Kl1ef/apctgx+kr1dlv3MPylY+brYZ79qYXuVpHdK+swis5S6vNoY+P08TevleSLi\nuKQfSnpDA/olSb+TlQLutH3WAp9Xre+nk9VgXXZY/kXbb66y4exQeo16e4dz1bq8TtEvqYbllZUn\nHpF0WNJ9EbHo8qpwXeynX1I96+KnJF0v6cQin5e6vNoY+G32r5JWR8SvSrpPJ7fkeLWvqXe7+Fsk\n/Z2kXVU1bPu1kj4v6YMR8aOq2l3KEv2qZXlFxExEXKjeQ47W2v6VKtpdSh/9qnxdtP0uSYcj4uGy\n21pMGwO/n6dpvTyP7dMk/byk79fdr4j4fkT8NHv7GUm/VnKf+tHIp5NFxI9mD8sj4l5Jy2yvKLtd\n28vUC9XPRcRdC8xSy/Jaql91La857R+R9ICkS+d9VMe6uGS/aloX10u6zPb/qlfyvcT2P8+bp9Tl\n1cbA/6qkc22fY3u5eic2ds+bZ7ekq7LXV0jaG9lZkDr7Na/We5l6tdi67Zb0B9nVJxdL+mFEvFB3\np2y/cbZ2aXutev9XSw2KrL1bJB2IiE8sMlvly6ufftW0vMZtj2WvRyW9XdJ/z5ut8nWxn37VsS5G\nxNaIWBURq9XLh70R8fvzZit1eQ31AJQ6RMRx2++XtEe9K2NujYgnbP+VpKmI2K3eyvFPtg+qd2Jw\nc0P69ae2L5N0POvX1WX3y/Zt6l3BscK9p5N9RL2TWIqIT0u6V70rTw5K+j9Jf1h2n/rs1xWS/tj2\ncUlHJW2uYKO9XtJ7JT2W1X8l6cOSzp7TrzqWVz/9qmN5rZS0w/aIehuYOyLinrrXxT77Vfm6uJgq\nlxd32gJAItpY0gEADIDAB4BEEPgAkAgCHwASQeADQCIIfABIBIEPAIkg8AEgEf8P2Ltf8NgZHRUA\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a0 = 2.5\n", "a1 = 2./3.\n", "sigma = 5.0\n", "\n", "a0_orig, a1_orig = a0, a1\n", "\n", "x = np.linspace(0.0, 4.0, 25)\n", "y = a0*np.exp(a1*x) + sigma*np.random.randn(len(x))\n", "\n", "plt.scatter(x,y)\n", "plt.errorbar(x, y, yerr=sigma, fmt=None, label=\"_nolegend_\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "our function to minimize" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def resid(avec, x, y):\n", " \"\"\" the residual function -- this is what will be minimized by the \n", " scipy.optimize.leastsq() routine. avec is the parameters we \n", " are optimizing -- they are packed in here, so we unpack to \n", " begin. (x, y) are the data points \n", " \n", " scipy.optimize.leastsq() minimizes: \n", " \n", " x = arg min(sum(func(y)**2,axis=0)) \n", " y \n", " \n", " so this should just be the distance from a point to the curve, \n", " and it will square it and sum over the points \n", " \"\"\"\n", "\n", " a0, a1 = avec\n", "\n", " # note: if we wanted to deal with error bars, we would weight each \n", " # residual accordingly \n", " return y - a0*np.exp(a1*x)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "[ 2.21564232 0.72038716]\n" ] } ], "source": [ "a0, a1 = 1, 1\n", "afit, flag = optimize.leastsq(resid, [a0, a1], args=(x, y))\n", "\n", "print(flag)\n", "print(afit)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/zingale/.local/lib/python3.5/site-packages/matplotlib/axes/_axes.py:2818: MatplotlibDeprecationWarning: Use of None object as fmt keyword argument to suppress plotting of data values is deprecated since 1.4; use the string \"none\" instead.\n", " warnings.warn(msg, mplDeprecation, stacklevel=1)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nA17vSTfiDkBYAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x, afit[0]*np.exp(afit[1]*x),\n", " label=r\"$a_0 = $ %f; $a_1 = $ %f\" % (afit[0], afit[1]))\n", "plt.plot(x, a0_orig*np.exp(a1_orig*x), \":\", label=\"original function\")\n", "plt.legend(numpoints=1, frameon=False)\n", "plt.scatter(x,y, c=\"k\")\n", "plt.errorbar(x, y, yerr=sigma, fmt=None, label=\"_nolegend_\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# FFTs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fourier transforms convert a physical-space (or time series) representation of a function into frequency space. This provides an equivalent representation of the data with a new view.\n", "\n", "The FFT and its inverse in NumPy use:\n", "$$F_k = \\sum_{n=0}^{N-1} f_n e^{-2\\pi i nk/N}$$\n", "\n", "$$f_n = \\frac{1}{N} \\sum_{k=0}^{N-1} F_k \n", " e^{2\\pi i n k/N}$$\n", " \n", "\n", "Both NumPy and SciPy have FFT routines that are similar. However, the NumPy version returns the data in a more convenient form.\n", "\n", "It's always best to start with something you understand -- let's do a simple sine wave. Since our function is real, we can use the rfft routines in NumPy -- the understand that we are working with real data and they don't return the negative frequency components.\n", "\n", "One important caveat -- FFTs assume that you are periodic. If you include both endpoints of the domain in the points that comprise your sample then you will not match this assumption. Here we use endpoint=False with linspace()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def single_freq_sine(npts):\n", "\n", " # a pure sine with no phase shift will result in pure imaginary \n", " # signal \n", " f_0 = 0.2\n", "\n", " xmax = 10.0/f_0\n", " \n", " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n", "\n", " f = np.sin(2.0*np.pi*f_0*xx)\n", "\n", " return xx, f" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To make our life easier, we'll define a function that plots all the stages of the FFT process" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def plot_FFT(xx, f):\n", "\n", " npts = len(xx)\n", "\n", " # Forward transform: f(x) -> F(k) \n", " fk = np.fft.rfft(f)\n", "\n", " # Normalization -- the '2' here comes from the fact that we are \n", " # neglecting the negative portion of the frequency space, since \n", " # the FFT of a real function contains redundant information, so \n", " # we are only dealing with 1/2 of the frequency space. \n", " # \n", " # technically, we should only scale the 0 bin by N, since k=0 is \n", " # not duplicated -- we won't worry about that for these plots \n", " norm = 2.0/npts\n", "\n", " fk = fk*norm\n", "\n", " fk_r = fk.real\n", " fk_i = fk.imag\n", "\n", " # the fftfreq returns the postive and negative (and 0) frequencies \n", " # the newer versions of numpy (>=1.8) have an rfftfreq() function \n", " # that really does what we want -- we'll use that here. \n", " k = np.fft.rfftfreq(npts)\n", "\n", " # to make these dimensional, we need to divide by dx. Note that \n", " # max(xx) is not the true length, since we didn't have a point \n", " # at the endpoint of the domain. \n", " kfreq = k*npts/(max(xx) + xx[1])\n", "\n", " # Inverse transform: F(k) -> f(x) -- without the normalization \n", " fkinv = np.fft.irfft(fk/norm)\n", "\n", " # plots\n", " plt.subplot(411)\n", "\n", " plt.plot(xx, f)\n", " plt.xlabel(\"x\")\n", " plt.ylabel(\"f(x)\")\n", "\n", " plt.subplot(412)\n", "\n", " plt.plot(kfreq, fk_r, label=r\"Re($\\mathcal{F}$)\")\n", " plt.plot(kfreq, fk_i, ls=\":\", label=r\"Im($\\mathcal{F}$)\")\n", " plt.xlabel(r\"$\\nu_k$\")\n", " plt.ylabel(\"F(k)\")\n", "\n", " plt.legend(fontsize=\"small\", frameon=False)\n", "\n", " plt.subplot(413)\n", "\n", " plt.plot(kfreq, np.abs(fk))\n", " plt.xlabel(r\"$\\nu_k$\")\n", " plt.ylabel(r\"|F(k)|\")\n", "\n", " plt.subplot(414)\n", "\n", " plt.plot(xx, fkinv.real)\n", " plt.xlabel(r\"$\\nu_k$\")\n", " plt.ylabel(r\"inverse F(k)\")\n", "\n", " f = plt.gcf()\n", " \n", " f.set_size_inches(10,8)\n", " plt.tight_layout()\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "npts = 128\n", "xx, f = single_freq_sine(npts)\n", "plot_FFT(xx, f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A cosine is shifted in phase by pi/2" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def single_freq_cosine(npts):\n", "\n", " # a pure cosine with no phase shift will result in pure real \n", " # signal \n", " f_0 = 0.2\n", "\n", " xmax = 10.0/f_0\n", "\n", " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n", "\n", " f = np.cos(2.0*np.pi*f_0*xx)\n", "\n", " return xx, f" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xx, f = single_freq_cosine(npts)\n", "plot_FFT(xx, f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at a sine with a pi/4 phase shift" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def single_freq_sine_plus_shift(npts):\n", "\n", " # a pure sine with no phase shift will result in pure imaginary \n", " # signal \n", " f_0 = 0.2\n", "\n", " xmax = 10.0/f_0\n", "\n", " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n", "\n", " f = np.sin(2.0*np.pi*f_0*xx + np.pi/4)\n", "\n", " return xx, f" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xx, f = single_freq_sine_plus_shift(npts)\n", "plot_FFT(xx, f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A frequency filter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we'll setup a simple two-frequency sine wave and filter a component" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def two_freq_sine(npts):\n", "\n", " # a pure sine with no phase shift will result in pure imaginary \n", " # signal \n", " f_0 = 0.2\n", " f_1 = 0.5\n", "\n", " xmax = 10.0/f_0\n", "\n", " # we call with endpoint=False -- if we include the endpoint, then for \n", " # a periodic function, the first and last point are identical -- this \n", " # shows up as a signal in the FFT. \n", " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n", "\n", " f = 0.5*(np.sin(2.0*np.pi*f_0*xx) + np.sin(2.0*np.pi*f_1*xx))\n", "\n", " return xx, f" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n1T/9wa0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "npts = 256\n", "\n", "xx, f = two_freq_sine(npts)\n", "\n", "plt.plot(xx, f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we'll take the transform: f(x) -> F(k)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# normalization factor: the 2 here comes from the fact that we neglect \n", "# the negative portion of frequency space because our input function \n", "# is real \n", "norm = 2.0/npts\n", "fk = norm*np.fft.rfft(f)\n", "\n", "ofk_r = fk.real.copy()\n", "ofk_i = fk.imag.copy()\n", "\n", "# get the frequencies\n", "k = np.fft.rfftfreq(len(xx))\n", "\n", "# since we don't include the endpoint in xx, to normalize things, we need \n", "# max(xx) + dx to get the true length of the domain\n", "#\n", "# This makes the frequencies essentially multiples of 1/dx\n", "kfreq = k*npts/(max(xx) + xx[1])\n", "\n", "\n", "plt.plot(kfreq, fk.real, label=\"real\")\n", "plt.plot(kfreq, fk.imag, \":\", label=\"imaginary\")\n", "plt.legend(frameon=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Filter out the higher frequencies" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fk[kfreq > 0.4] = 0.0\n", "\n", "# element 0 of fk is the DC component \n", "fk_r = fk.real\n", "fk_i = fk.imag\n", "\n", "\n", "# Inverse transform: F(k) -> f(x) \n", "fkinv = np.fft.irfft(fk/norm)\n", "\n", "plt.plot(xx, fkinv.real)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear Algebra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### general manipulations of matrices" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "you can use regular NumPy arrays or you can use a special matrix class that offers some short cuts" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = np.array([[1.0, 2.0], [3.0, 4.0]])" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 2.]\n", " [ 3. 4.]]\n", "[[ 1. 3.]\n", " [ 2. 4.]]\n", "[[ 1. 3.]\n", " [ 2. 4.]]\n" ] } ], "source": [ "print(a)\n", "print(a.transpose())\n", "print(a.T)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[-2. 1. ]\n", " [ 1.5 -0.5]]\n" ] } ], "source": [ "ainv = np.linalg.inv(a)\n", "print(ainv)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1.00000000e+00 1.11022302e-16]\n", " [ 0.00000000e+00 1.00000000e+00]]\n" ] } ], "source": [ "print(np.dot(a, ainv))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "the eye() function will generate an identity matrix (as will the identity())" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 0.]\n", " [ 0. 1.]]\n", "[[ 1. 0.]\n", " [ 0. 1.]]\n" ] } ], "source": [ "print(np.eye(2))\n", "print(np.identity(2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we can solve Ax = b" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-3. 4.]\n" ] } ], "source": [ "b = np.array([5, 7])\n", "x = np.linalg.solve(a, b)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The matrix class" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 2.]\n", " [ 3. 4.]]\n", "[[ 1. 3.]\n", " [ 2. 4.]]\n" ] } ], "source": [ "A = np.matrix('1.0 2.0; 3.0 4.0')\n", "print(A)\n", "print(A.T)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 19.]\n", " [ 43.]]\n" ] } ], "source": [ "X = np.matrix('5.0 7.0')\n", "Y = X.T\n", "\n", "print(A*Y)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[-3.]\n", " [ 4.]]\n" ] } ], "source": [ "print(A.I*Y)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.3" } }, "nbformat": 4, "nbformat_minor": 1 }