{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# 1A.1 - Int\u00e9grale et la m\u00e9thode des rectangles\n", "\n", "Approximation du calcul d'une int\u00e9grale par la m\u00e9thode des rectangles"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [{"data": {"text/html": ["
run previous cell, wait for 2 seconds
\n", ""], "text/plain": [""]}, "execution_count": 2, "metadata": {}, "output_type": "execute_result"}], "source": ["from jyquickhelper import add_notebook_menu\n", "add_notebook_menu()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Calcul de l'int\u00e9grale\n", "\n", "On cherche \u00e0 calculer une int\u00e9grale en utilisant la m\u00e9thode des rectangles."]}, {"cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": [""]}, "execution_count": 3, "metadata": {}, "output_type": "execute_result"}], "source": ["from pyquickhelper.helpgen import NbImage\n", "NbImage(\"images/int.png\")"]}, {"cell_type": "markdown", "metadata": {}, "source": ["L'intervalle de l'int\u00e9grale est not\u00e9 $[a,b]$ et la fonction \u00e0 int\u00e9grer $f$. On divise cet intervalle en $n$ petits segments et on fait la somme des aires des petits rectangles d\u00e9limit\u00e9s par l'axe des abscisses et la courbe de la fonction $f$.\n", "\n", "$$\\int_a^b f(x) dx \\approx \\frac{b-a}{n} \\; \\sum_{i=1}^{n} f\\left( a + i \\frac{b-a}{n}\\right)$$"]}, {"cell_type": "markdown", "metadata": {}, "source": ["On pourra prendre par exemple :"]}, {"cell_type": "code", "execution_count": 3, "metadata": {"collapsed": true}, "outputs": [], "source": ["a = -2\n", "b = 3\n", "n = 20"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Et comme fonction :"]}, {"cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [{"data": {"text/plain": ["-2.6145744834544478"]}, "execution_count": 5, "metadata": {}, "output_type": "execute_result"}], "source": ["import math\n", "f = lambda x: x * math.cos (x)\n", "f(4)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Il faut \u00e9crire la fonction qui calcule l'int\u00e9grale."]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Calcul de pr\u00e9cision\n", "\n", "Quelle valeur de $n$ faut-il choisir pour \u00eatre pr\u00e9cis \u00e0 $10^{-4}$ pr\u00e8s ? Ecrire la fonction qui permette de calculer cette valeur."]}, {"cell_type": "code", "execution_count": 5, "metadata": {"collapsed": true}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["## Calcul plus rapide\n", "\n", "La r\u00e9ponde na\u00efve \u00e0 la question pr\u00e9c\u00e9dente est assez peu performante. Voyez-vous un moyen d'aller plus vite ?"]}, {"cell_type": "code", "execution_count": 6, "metadata": {"collapsed": true}, "outputs": [], "source": []}], "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.6.1"}}, "nbformat": 4, "nbformat_minor": 2}