{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# SciPy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The SciPy library is one of the core packages that make up the SciPy stack. It provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization.\n", "\n", "Library documentation: http://www.scipy.org/scipylib/index.html" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# needed to display the graphs\n", "%matplotlib inline\n", "from pylab import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy import *\n", "from scipy.integrate import quad, dblquad, tplquad" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0, 0.0)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# integration\n", "val, abserr = quad(lambda x: exp(-x ** 2), Inf, Inf)\n", "val, abserr" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from scipy.integrate import odeint, ode" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "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\n", "duUAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# differential equation\n", "def dy(y, t, zeta, w0):\n", " x, p = y[0], y[1]\n", " \n", " dx = p\n", " dp = -2 * zeta * w0 * p - w0**2 * x\n", "\n", " return [dx, dp]\n", "\n", "# initial state\n", "y0 = [1.0, 0.0]\n", "\n", "# time coodinate to solve the ODE for\n", "t = linspace(0, 10, 1000)\n", "w0 = 2*pi*1.0\n", "\n", "# solve the ODE problem for three different values of the damping ratio\n", "y1 = odeint(dy, y0, t, args=(0.0, w0)) # undamped\n", "y2 = odeint(dy, y0, t, args=(0.2, w0)) # under damped\n", "y3 = odeint(dy, y0, t, args=(1.0, w0)) # critial damping\n", "y4 = odeint(dy, y0, t, args=(5.0, w0)) # over damped\n", "\n", "fig, ax = subplots()\n", "ax.plot(t, y1[:,0], 'k', label=\"undamped\", linewidth=0.25)\n", "ax.plot(t, y2[:,0], 'r', label=\"under damped\")\n", "ax.plot(t, y3[:,0], 'b', label=r\"critical damping\")\n", "ax.plot(t, y4[:,0], 'g', label=\"over damped\")\n", "ax.legend();" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from scipy.fftpack import *" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "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\n", "U/x/8QPGQJ9lUrYAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# fourier transform\n", "N = len(t)\n", "dt = t[1]-t[0]\n", "\n", "# calculate the fast fourier transform\n", "# y2 is the solution to the under-damped oscillator from the previous section\n", "F = fft(y2[:,0]) \n", "\n", "# calculate the frequencies for the components in F\n", "w = fftfreq(N, dt)\n", "\n", "fig, ax = subplots(figsize=(9,3))\n", "ax.plot(w, abs(F));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear Algebra" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "A = array([[1,2,3], [4,5,6], [7,8,9]])\n", "b = array([1,2,3])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-0.33333333, 0.66666667, 0. ])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# solve a system of linear equations\n", "x = solve(A, b)\n", "x" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.34211023, 0.22314378, -0.11368553])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# eigenvalues and eigenvectors\n", "A = rand(3,3)\n", "B = rand(3,3)\n", "\n", "evals, evecs = eig(A)\n", "\n", "evals" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[-0.24560175, -0.93054452, 0.46758953],\n", " [-0.84521949, -0.00332278, -0.56599975],\n", " [-0.4746407 , 0.36616371, 0.67897299]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "evecs" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([[-0.23411483, 0.96016594, 0.15255034],\n", " [-0.84815445, -0.12501447, -0.51478677],\n", " [-0.47520972, -0.24990547, 0.84363676]]),\n", " array([ 1.3457633 , 0.23442523, 0.1079208 ]),\n", " array([[-0.21657397, -0.81553512, -0.53665463],\n", " [ 0.7658064 , 0.19902251, -0.61149865],\n", " [-0.60550497, 0.54340824, -0.58143892]]))" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svd(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Optimization" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from scipy import optimize" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "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\n", "QcnZWQAAAABJRU5ErkJggg==\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def f(x):\n", " return 4*x**3 + (x-2)**2 + x**4\n", "\n", "fig, ax = subplots()\n", "x = linspace(-5, 3, 100)\n", "ax.plot(x, f(x));" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 2.804988\n", " Iterations: 4\n", " Function evaluations: 24\n", " Gradient evaluations: 8\n" ] }, { "data": { "text/plain": [ "array([ 0.46961745])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_min = optimize.fmin_bfgs(f, -0.5)\n", "x_min" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Statistics" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from scipy import stats" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# create a (continous) random variable with normal distribution\n", "Y = stats.norm()\n", "\n", "x = linspace(-5,5,100)\n", "\n", "fig, axes = subplots(3,1, sharex=True)\n", "\n", "# plot the probability distribution function (PDF)\n", "axes[0].plot(x, Y.pdf(x))\n", "\n", "# plot the commulative distributin function (CDF)\n", "axes[1].plot(x, Y.cdf(x));\n", "\n", "# plot histogram of 1000 random realizations of the stochastic variable Y\n", "axes[2].hist(Y.rvs(size=1000), bins=50);" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0, 1.0, 1.0)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y.mean(), Y.std(), Y.var()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-1.193733722708372, 0.23272385793970249)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# t-test example\n", "t_statistic, p_value = stats.ttest_ind(Y.rvs(size=1000), Y.rvs(size=1000))\n", "t_statistic, p_value" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }