{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as N\n",
    "import matplotlib.pyplot as P\n",
    "# Insert figures within notebook\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Quadrature"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calcul de l'intégrale \n",
    "$$\n",
    "\\int_0^\\infty \\frac{x^3}{e^x - 1}\\mathrm{d}x = \\frac{\\pi^4}{15}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import scipy.integrate as SI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def integrand(x):\n",
    "    \n",
    "    return x**3 / (N.exp(x) - 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Intégrale: 6.49393940226683\n",
      "Erreur estimée: 2.628470028924825e-09\n",
      "Erreur absolue: 1.7763568394002505e-15\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/ycopin/Softwares/VirtualEnvs/Python3/lib/python3.5/site-packages/ipykernel_launcher.py:3: RuntimeWarning: overflow encountered in exp\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    }
   ],
   "source": [
    "q, dq = SI.quad(integrand, 0, N.inf)\n",
    "print(\"Intégrale:\", q)\n",
    "print(\"Erreur estimée:\", dq)\n",
    "print(\"Erreur absolue:\", (q - (N.pi ** 4 / 15)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Zéro d'une fonction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Résolution numérique de l'équation\n",
    "$$\n",
    "f(x) = \\frac{x\\,e^x}{e^x - 1} - 5 = 0\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def func(x):\n",
    "    \n",
    "    return x * N.exp(x) / (N.exp(x) - 1) - 5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Il faut d'abord déterminer un intervalle contenant la solution, c.-à-d. le zéro de `func`.  Puisque $f(0^+) = -4 < 0$ et $f(10) \\simeq 5 > 0$, il est intéressant de tracer l'allure de la courbe sur ce domaine:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff8e41c92b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = N.logspace(-1, 1)  # 50 points logarithmiquement espacé de 10**-1 = 0.1 à 10**1 = 10\n",
    "P.plot(x, func(x));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import scipy.optimize as SO"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Solution: 4.965114231744277\n"
     ]
    }
   ],
   "source": [
    "zero = SO.brentq(func, 1, 10)\n",
    "print(\"Solution:\", zero)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python3",
   "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": 1
}
