{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"AeroPython\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Funciones especiales con SciPy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_`SciPy` es paquete que incluye una colección de algoritmos matemáticos y funciones construidas sobre el paquete `NumPy`. En esta clase nos vamos a centrar en las **funciones especiales**._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como siempre lo primero es lo primero, __importemos__ lo paquetes que vamos a utilizar:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from scipy import special" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "========================================\n", "Special functions (:mod:`scipy.special`)\n", "========================================\n", "\n", ".. module:: scipy.special\n", "\n", "Nearly all of the functions below are universal functions and follow\n", "broadcasting and automatic array-looping rules. Exceptions are noted.\n", "\n", "Error handling\n", "==============\n", "\n", "Errors are handled by returning nans, or other appropriate values.\n", "Some of the special function routines will emit warnings when an error\n", "occurs. By default this is disabled. To enable such messages use\n", "``errprint(1)``, and to disable such messages use ``errprint(0)``.\n", "\n", "Example:\n", "\n", " >>> print scipy.special.bdtr(-1,10,0.3)\n", " >>> scipy.special.errprint(1)\n", " >>> print scipy.special.bdtr(-1,10,0.3)\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " errprint\n", "\n", "Available functions\n", "===================\n", "\n", "Airy functions\n", "--------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " airy -- Airy functions and their derivatives.\n", " airye -- Exponentially scaled Airy functions\n", " ai_zeros -- [+]Zeros of Airy functions Ai(x) and Ai'(x)\n", " bi_zeros -- [+]Zeros of Airy functions Bi(x) and Bi'(x)\n", "\n", "\n", "Elliptic Functions and Integrals\n", "--------------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " ellipj -- Jacobian elliptic functions\n", " ellipk -- Complete elliptic integral of the first kind.\n", " ellipkm1 -- ellipkm1(x) == ellipk(1 - x)\n", " ellipkinc -- Incomplete elliptic integral of the first kind.\n", " ellipe -- Complete elliptic integral of the second kind.\n", " ellipeinc -- Incomplete elliptic integral of the second kind.\n", "\n", "Bessel Functions\n", "----------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " jn -- Bessel function of integer order and real argument.\n", " jv -- Bessel function of real-valued order and complex argument.\n", " jve -- Exponentially scaled Bessel function.\n", " yn -- Bessel function of second kind (integer order).\n", " yv -- Bessel function of the second kind (real-valued order).\n", " yve -- Exponentially scaled Bessel function of the second kind.\n", " kn -- Modified Bessel function of the second kind (integer order).\n", " kv -- Modified Bessel function of the second kind (real order).\n", " kve -- Exponentially scaled modified Bessel function of the second kind.\n", " iv -- Modified Bessel function.\n", " ive -- Exponentially scaled modified Bessel function.\n", " hankel1 -- Hankel function of the first kind.\n", " hankel1e -- Exponentially scaled Hankel function of the first kind.\n", " hankel2 -- Hankel function of the second kind.\n", " hankel2e -- Exponentially scaled Hankel function of the second kind.\n", "\n", "The following is not an universal function:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " lmbda -- [+]Sequence of lambda functions with arbitrary order v.\n", "\n", "Zeros of Bessel Functions\n", "^^^^^^^^^^^^^^^^^^^^^^^^^\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " jnjnp_zeros -- [+]Zeros of integer-order Bessel functions and derivatives sorted in order.\n", " jnyn_zeros -- [+]Zeros of integer-order Bessel functions and derivatives as separate arrays.\n", " jn_zeros -- [+]Zeros of Jn(x)\n", " jnp_zeros -- [+]Zeros of Jn'(x)\n", " yn_zeros -- [+]Zeros of Yn(x)\n", " ynp_zeros -- [+]Zeros of Yn'(x)\n", " y0_zeros -- [+]Complex zeros: Y0(z0)=0 and values of Y0'(z0)\n", " y1_zeros -- [+]Complex zeros: Y1(z1)=0 and values of Y1'(z1)\n", " y1p_zeros -- [+]Complex zeros of Y1'(z1')=0 and values of Y1(z1')\n", "\n", "Faster versions of common Bessel Functions\n", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " j0 -- Bessel function of order 0.\n", " j1 -- Bessel function of order 1.\n", " y0 -- Bessel function of second kind of order 0.\n", " y1 -- Bessel function of second kind of order 1.\n", " i0 -- Modified Bessel function of order 0.\n", " i0e -- Exponentially scaled modified Bessel function of order 0.\n", " i1 -- Modified Bessel function of order 1.\n", " i1e -- Exponentially scaled modified Bessel function of order 1.\n", " k0 -- Modified Bessel function of the second kind of order 0.\n", " k0e -- Exponentially scaled modified Bessel function of the second kind of order 0.\n", " k1 -- Modified Bessel function of the second kind of order 1.\n", " k1e -- Exponentially scaled modified Bessel function of the second kind of order 1.\n", "\n", "Integrals of Bessel Functions\n", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " itj0y0 -- Basic integrals of j0 and y0 from 0 to x.\n", " it2j0y0 -- Integrals of (1-j0(t))/t from 0 to x and y0(t)/t from x to inf.\n", " iti0k0 -- Basic integrals of i0 and k0 from 0 to x.\n", " it2i0k0 -- Integrals of (i0(t)-1)/t from 0 to x and k0(t)/t from x to inf.\n", " besselpoly -- Integral of a Bessel function: Jv(2* a* x) * x[+]lambda from x=0 to 1.\n", "\n", "Derivatives of Bessel Functions\n", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " jvp -- Nth derivative of Jv(v,z)\n", " yvp -- Nth derivative of Yv(v,z)\n", " kvp -- Nth derivative of Kv(v,z)\n", " ivp -- Nth derivative of Iv(v,z)\n", " h1vp -- Nth derivative of H1v(v,z)\n", " h2vp -- Nth derivative of H2v(v,z)\n", "\n", "Spherical Bessel Functions\n", "^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " sph_jn -- [+]Sequence of spherical Bessel functions, jn(z)\n", " sph_yn -- [+]Sequence of spherical Bessel functions, yn(z)\n", " sph_jnyn -- [+]Sequence of spherical Bessel functions, jn(z) and yn(z)\n", " sph_in -- [+]Sequence of spherical Bessel functions, in(z)\n", " sph_kn -- [+]Sequence of spherical Bessel functions, kn(z)\n", " sph_inkn -- [+]Sequence of spherical Bessel functions, in(z) and kn(z)\n", "\n", "Riccati-Bessel Functions\n", "^^^^^^^^^^^^^^^^^^^^^^^^\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " riccati_jn -- [+]Sequence of Ricatti-Bessel functions of first kind.\n", " riccati_yn -- [+]Sequence of Ricatti-Bessel functions of second kind.\n", "\n", "Struve Functions\n", "----------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " struve -- Struve function --- Hv(x)\n", " modstruve -- Modified Struve function --- Lv(x)\n", " itstruve0 -- Integral of H0(t) from 0 to x\n", " it2struve0 -- Integral of H0(t)/t from x to Inf.\n", " itmodstruve0 -- Integral of L0(t) from 0 to x.\n", "\n", "\n", "Raw Statistical Functions\n", "-------------------------\n", "\n", ".. seealso:: :mod:`scipy.stats`: Friendly versions of these functions.\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " bdtr -- Sum of terms 0 through k of the binomial pdf.\n", " bdtrc -- Sum of terms k+1 through n of the binomial pdf.\n", " bdtri -- Inverse of bdtr\n", " btdtr -- Integral from 0 to x of beta pdf.\n", " btdtri -- Quantiles of beta distribution\n", " fdtr -- Integral from 0 to x of F pdf.\n", " fdtrc -- Integral from x to infinity under F pdf.\n", " fdtri -- Inverse of fdtrc\n", " gdtr -- Integral from 0 to x of gamma pdf.\n", " gdtrc -- Integral from x to infinity under gamma pdf.\n", " gdtria -- Inverse with respect to `a` of gdtr.\n", " gdtrib -- Inverse with respect to `b` of gdtr.\n", " gdtrix -- Inverse with respect to `x` of gdtr.\n", " nbdtr -- Sum of terms 0 through k of the negative binomial pdf.\n", " nbdtrc -- Sum of terms k+1 to infinity under negative binomial pdf.\n", " nbdtri -- Inverse of nbdtr\n", " pdtr -- Sum of terms 0 through k of the Poisson pdf.\n", " pdtrc -- Sum of terms k+1 to infinity of the Poisson pdf.\n", " pdtri -- Inverse of pdtr\n", " stdtr -- Integral from -infinity to t of the Student-t pdf.\n", " stdtridf --\n", " stdtrit --\n", " chdtr -- Integral from 0 to x of the Chi-square pdf.\n", " chdtrc -- Integral from x to infnity of Chi-square pdf.\n", " chdtri -- Inverse of chdtrc.\n", " ndtr -- Integral from -infinity to x of standard normal pdf\n", " ndtri -- Inverse of ndtr (quantiles)\n", " smirnov -- Kolmogorov-Smirnov complementary CDF for one-sided test statistic (Dn+ or Dn-)\n", " smirnovi -- Inverse of smirnov.\n", " kolmogorov -- The complementary CDF of the (scaled) two-sided test statistic (Kn*) valid for large n.\n", " kolmogi -- Inverse of kolmogorov\n", " tklmbda -- Tukey-Lambda CDF\n", " logit --\n", " expit --\n", " boxcox -- Compute the Box-Cox transformation.\n", " boxcox1p -- Compute the Box-Cox transformation.\n", "\n", "Gamma and Related Functions\n", "---------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " gamma -- Gamma function.\n", " gammaln -- Log of the absolute value of the gamma function.\n", " gammasgn -- Sign of the gamma function.\n", " gammainc -- Incomplete gamma integral.\n", " gammaincinv -- Inverse of gammainc.\n", " gammaincc -- Complemented incomplete gamma integral.\n", " gammainccinv -- Inverse of gammaincc.\n", " beta -- Beta function.\n", " betaln -- Log of the absolute value of the beta function.\n", " betainc -- Incomplete beta integral.\n", " betaincinv -- Inverse of betainc.\n", " psi -- Logarithmic derivative of the gamma function.\n", " rgamma -- One divided by the gamma function.\n", " polygamma -- Nth derivative of psi function.\n", " multigammaln\n", "\n", "\n", "Error Function and Fresnel Integrals\n", "------------------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " erf -- Error function.\n", " erfc -- Complemented error function (1- erf(x))\n", " erfcx -- Scaled complemented error function exp(x**2)*erfc(x)\n", " erfi -- Imaginary error function, -i erf(i x)\n", " erfinv -- Inverse of error function\n", " erfcinv -- Inverse of erfc\n", " wofz -- Fadeeva function.\n", " dawsn -- Dawson's integral.\n", " fresnel -- Fresnel sine and cosine integrals.\n", " fresnel_zeros -- Complex zeros of both Fresnel integrals\n", " modfresnelp -- Modified Fresnel integrals F_+(x) and K_+(x)\n", " modfresnelm -- Modified Fresnel integrals F_-(x) and K_-(x)\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " erf_zeros -- [+]Complex zeros of erf(z)\n", " fresnelc_zeros -- [+]Complex zeros of Fresnel cosine integrals\n", " fresnels_zeros -- [+]Complex zeros of Fresnel sine integrals\n", "\n", "Legendre Functions\n", "------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " lpmv -- Associated Legendre Function of arbitrary non-negative degree v.\n", " sph_harm -- Spherical Harmonics (complex-valued) Y^m_n(theta,phi)\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " clpmn -- [+]Associated Legendre Function of the first kind for complex arguments.\n", " lpn -- [+]Legendre Functions (polynomials) of the first kind\n", " lqn -- [+]Legendre Functions of the second kind.\n", " lpmn -- [+]Associated Legendre Function of the first kind for real arguments.\n", " lqmn -- [+]Associated Legendre Function of the second kind.\n", "\n", "Orthogonal polynomials\n", "----------------------\n", "\n", "The following functions evaluate values of orthogonal polynomials:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " eval_legendre\n", " eval_chebyt\n", " eval_chebyu\n", " eval_chebyc\n", " eval_chebys\n", " eval_jacobi\n", " eval_laguerre\n", " eval_genlaguerre\n", " eval_hermite\n", " eval_hermitenorm\n", " eval_gegenbauer\n", " eval_sh_legendre\n", " eval_sh_chebyt\n", " eval_sh_chebyu\n", " eval_sh_jacobi\n", "\n", "The functions below, in turn, return :ref:`orthopoly1d` objects, which\n", "functions similarly as :ref:`numpy.poly1d`. The :ref:`orthopoly1d`\n", "class also has an attribute ``weights`` which returns the roots, weights,\n", "and total weights for the appropriate form of Gaussian quadrature.\n", "These are returned in an ``n x 3`` array with roots in the first column,\n", "weights in the second column, and total weights in the final column.\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " legendre -- [+]Legendre polynomial P_n(x) (lpn -- for function).\n", " chebyt -- [+]Chebyshev polynomial T_n(x)\n", " chebyu -- [+]Chebyshev polynomial U_n(x)\n", " chebyc -- [+]Chebyshev polynomial C_n(x)\n", " chebys -- [+]Chebyshev polynomial S_n(x)\n", " jacobi -- [+]Jacobi polynomial P^(alpha,beta)_n(x)\n", " laguerre -- [+]Laguerre polynomial, L_n(x)\n", " genlaguerre -- [+]Generalized (Associated) Laguerre polynomial, L^alpha_n(x)\n", " hermite -- [+]Hermite polynomial H_n(x)\n", " hermitenorm -- [+]Normalized Hermite polynomial, He_n(x)\n", " gegenbauer -- [+]Gegenbauer (Ultraspherical) polynomials, C^(alpha)_n(x)\n", " sh_legendre -- [+]shifted Legendre polynomial, P*_n(x)\n", " sh_chebyt -- [+]shifted Chebyshev polynomial, T*_n(x)\n", " sh_chebyu -- [+]shifted Chebyshev polynomial, U*_n(x)\n", " sh_jacobi -- [+]shifted Jacobi polynomial, J*_n(x) = G^(p,q)_n(x)\n", "\n", ".. warning::\n", "\n", " Large-order polynomials obtained from these functions\n", " are numerically unstable.\n", "\n", " ``orthopoly1d`` objects are converted to ``poly1d``, when doing\n", " arithmetic. ``numpy.poly1d`` works in power basis and cannot\n", " represent high-order polynomials accurately, which can cause\n", " significant inaccuracy.\n", "\n", "\n", "Hypergeometric Functions\n", "------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " hyp2f1 -- Gauss hypergeometric function (2F1)\n", " hyp1f1 -- Confluent hypergeometric function (1F1)\n", " hyperu -- Confluent hypergeometric function (U)\n", " hyp0f1 -- Confluent hypergeometric limit function (0F1)\n", " hyp2f0 -- Hypergeometric function (2F0)\n", " hyp1f2 -- Hypergeometric function (1F2)\n", " hyp3f0 -- Hypergeometric function (3F0)\n", "\n", "\n", "Parabolic Cylinder Functions\n", "----------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " pbdv -- Parabolic cylinder function Dv(x) and derivative.\n", " pbvv -- Parabolic cylinder function Vv(x) and derivative.\n", " pbwa -- Parabolic cylinder function W(a,x) and derivative.\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " pbdv_seq -- [+]Sequence of parabolic cylinder functions Dv(x)\n", " pbvv_seq -- [+]Sequence of parabolic cylinder functions Vv(x)\n", " pbdn_seq -- [+]Sequence of parabolic cylinder functions Dn(z), complex z\n", "\n", "Mathieu and Related Functions\n", "-----------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " mathieu_a -- Characteristic values for even solution (ce_m)\n", " mathieu_b -- Characteristic values for odd solution (se_m)\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " mathieu_even_coef -- [+]sequence of expansion coefficients for even solution\n", " mathieu_odd_coef -- [+]sequence of expansion coefficients for odd solution\n", "\n", "The following return both function and first derivative:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " mathieu_cem -- Even Mathieu function\n", " mathieu_sem -- Odd Mathieu function\n", " mathieu_modcem1 -- Even modified Mathieu function of the first kind\n", " mathieu_modcem2 -- Even modified Mathieu function of the second kind\n", " mathieu_modsem1 -- Odd modified Mathieu function of the first kind\n", " mathieu_modsem2 -- Odd modified Mathieu function of the second kind\n", "\n", "Spheroidal Wave Functions\n", "-------------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " pro_ang1 -- Prolate spheroidal angular function of the first kind\n", " pro_rad1 -- Prolate spheroidal radial function of the first kind\n", " pro_rad2 -- Prolate spheroidal radial function of the second kind\n", " obl_ang1 -- Oblate spheroidal angular function of the first kind\n", " obl_rad1 -- Oblate spheroidal radial function of the first kind\n", " obl_rad2 -- Oblate spheroidal radial function of the second kind\n", " pro_cv -- Compute characteristic value for prolate functions\n", " obl_cv -- Compute characteristic value for oblate functions\n", " pro_cv_seq -- Compute sequence of prolate characteristic values\n", " obl_cv_seq -- Compute sequence of oblate characteristic values\n", "\n", "The following functions require pre-computed characteristic value:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " pro_ang1_cv -- Prolate spheroidal angular function of the first kind\n", " pro_rad1_cv -- Prolate spheroidal radial function of the first kind\n", " pro_rad2_cv -- Prolate spheroidal radial function of the second kind\n", " obl_ang1_cv -- Oblate spheroidal angular function of the first kind\n", " obl_rad1_cv -- Oblate spheroidal radial function of the first kind\n", " obl_rad2_cv -- Oblate spheroidal radial function of the second kind\n", "\n", "Kelvin Functions\n", "----------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " kelvin -- All Kelvin functions (order 0) and derivatives.\n", " kelvin_zeros -- [+]Zeros of All Kelvin functions (order 0) and derivatives\n", " ber -- Kelvin function ber x\n", " bei -- Kelvin function bei x\n", " berp -- Derivative of Kelvin function ber x\n", " beip -- Derivative of Kelvin function bei x\n", " ker -- Kelvin function ker x\n", " kei -- Kelvin function kei x\n", " kerp -- Derivative of Kelvin function ker x\n", " keip -- Derivative of Kelvin function kei x\n", "\n", "These are not universal functions:\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " ber_zeros -- [+]Zeros of Kelvin function bei x\n", " bei_zeros -- [+]Zeros of Kelvin function ber x\n", " berp_zeros -- [+]Zeros of derivative of Kelvin function ber x\n", " beip_zeros -- [+]Zeros of derivative of Kelvin function bei x\n", " ker_zeros -- [+]Zeros of Kelvin function kei x\n", " kei_zeros -- [+]Zeros of Kelvin function ker x\n", " kerp_zeros -- [+]Zeros of derivative of Kelvin function ker x\n", " keip_zeros -- [+]Zeros of derivative of Kelvin function kei x\n", "\n", "Combinatorics\n", "-------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " comb -- [+]Combinations of N things taken k at a time, \"N choose k\"\n", " perm -- [+]Permutations of N things taken k at a time, \"k-permutations of N\"\n", "\n", "Other Special Functions\n", "-----------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " binom -- Binomial coefficient.\n", " expn -- Exponential integral.\n", " exp1 -- Exponential integral of order 1 (for complex argument)\n", " expi -- Another exponential integral -- Ei(x)\n", " factorial -- The factorial function, n! = special.gamma(n+1)\n", " factorial2 -- Double factorial, (n!)!\n", " factorialk -- [+](...((n!)!)!...)! where there are k '!'\n", " shichi -- Hyperbolic sine and cosine integrals.\n", " sici -- Integral of the sinc and \"cosinc\" functions.\n", " spence -- Dilogarithm integral.\n", " lambertw -- Lambert W function\n", " zeta -- Riemann zeta function of two arguments.\n", " zetac -- Standard Riemann zeta function minus 1.\n", "\n", "Convenience Functions\n", "---------------------\n", "\n", ".. autosummary::\n", " :toctree: generated/\n", "\n", " cbrt -- Cube root.\n", " exp10 -- 10 raised to the x power.\n", " exp2 -- 2 raised to the x power.\n", " radian -- radian angle given degrees, minutes, and seconds.\n", " cosdg -- cosine of the angle given in degrees.\n", " sindg -- sine of the angle given in degrees.\n", " tandg -- tangent of the angle given in degrees.\n", " cotdg -- cotangent of the angle given in degrees.\n", " log1p -- log(1+x)\n", " expm1 -- exp(x)-1\n", " cosm1 -- cos(x)-1\n", " round -- round the argument to the nearest integer. If argument ends in 0.5 exactly, pick the nearest even integer.\n", " xlogy -- x*log(y)\n", " xlog1py -- x*log1p(y)\n", "\n", ".. [+] in the description indicates a function which is not a universal\n", ".. function and does not follow broadcasting and automatic\n", ".. array-looping rules.\n" ] } ], "source": [ "np.info(special)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0,20,100)\n", "for ii in range(5):\n", " plt.plot(x, special.jn(ii, x))\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "
\n", "####

¡Síguenos en Twitter!\n", "
\n", "###### Follow @AeroPython \n", "
\n", "###### Este notebook ha sido realizado por: Juan Luis Cano, y Álex Sáez \n", "
\n", "##### \"Licencia
Curso AeroPython por Juan Luis Cano Rodriguez y Alejandro Sáez Mollejo se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "_Las siguientes celdas contienen configuración del Notebook_\n", "\n", "_Para visualizar y utlizar los enlaces a Twitter el notebook debe ejecutarse como [seguro](http://ipython.org/ipython-doc/dev/notebook/security.html)_\n", "\n", " File > Trusted Notebook" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "/* This template is inspired in the one used by Lorena Barba\n", "in the numerical-mooc repository: https://github.com/numerical-mooc/numerical-mooc\n", "We thank her work and hope you also enjoy the look of the notobooks with this style */\n", "\n", "\n", "\n", "El estilo se ha aplicado =)\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Esta celda da el estilo al notebook\n", "from IPython.core.display import HTML\n", "css_file = '../styles/aeropython.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "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.2" } }, "nbformat": 4, "nbformat_minor": 0 }