{ "metadata": { "name": "", "signature": "sha256:44e7dde5723a2f8a51abbff974f0636ffa8279e20443f61ada343af4f321ca7c" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# TP5: Interpolation et int\u00e9gration num\u00e9rique\n", "\n", "### Objectifs de la s\u00e9ance\n", "\n", "1. Interpolation et int\u00e9gration num\u00e9rique\n", "2. Utilisations des commandes PYTHON li\u00e9es \u00e0 l'usage des fonctions.\n", "\n", "## Interpolation de Lagrange, Ph\u00e9nom\u00e8ne de Runge\n", "\n", "Cr\u00e9er un r\u00e9pertoire \"TP5-NOM\".\n", "\n", "Consid\u00e9rons la fonction $f:[-5, 5]\\to\\mathbb{R}$ telle que $f(x)=\\frac{1}{1+x^2},\\:\\forall x\\in[-5, 5]$.\n", "\n", "1. Cr\u00e9er un fichier \"Interpolation-Lagrange.py\" dans lequel vous \u00e9crirez votre script PYTHON.\n", "2. Ecrire un programme permettant de calculer $P(x)$ pour $x\\in[-5,\\; 5]$ o\u00f9 $P$ est le polyn\u00f4me d'interpolation de Lagrange tel que \n", "$P(x_n)=f(x_n)$ avec $\\displaystyle x_n=-5+10\\frac{n}{N}$ pour $n=1,\\dots,N$.\n", "3. Tracer sur un m\u00eame graphe la fonction $f$ et $P$ (on prendra soin de prendre au moins $10N$ points sur $[-5, \\;5]$ pour la repr\u00e9sentation).\n", "4. Que se passe-t-il lorsque $N$ devient grand? On fera une estimation d\u2019erreur entre $f$ et $P$ (en utilisant l\u2019\u00e9valuation en $10N$ points) sur l\u2019intervalle complet $[-5,\\;5]$ et $[-1,\\;1]$.\n", "5. Recommencer le m\u00eame travail avec les points $\\displaystyle z_n=-5\\,\\cos\\left(\\frac{(2n+1)\\pi}{N+2}\\right)$ pour $n=0,\\dots,N$.\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Ins\u00e9rer le script (comment\u00e9) de \"Interpolation-Lagrange.py\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Int\u00e9gration num\u00e9rique\n", "\n", "Le but est de mettre en \u00e9vidence l'ordre de convergence des diff\u00e9rentes m\u00e9thodes d'int\u00e9gration num\u00e9rique.\n", "\n", "### Exemple 1: calcul de $I=\\int_0^1 \\exp(x)\\,dx$\n", "\n", "1. Calculer la valeur explicite de $I=\\int_0^1 \\exp(x)\\,dx$\n", "2. Cr\u00e9er un fichier \"Exemple1.py\" dans lequel vous \u00e9crirez votre script PYTHON.\n", "3. Ecrire un programme pour calculer la valeur approch\u00e9e de I \u00e0 l\u2019aide de la m\u00e9thode des rectangles, des trap\u00e8zes et de Simpson utilisant les points de discr\u00e9tisation $x_k=\\frac{k}{N}$ pour $k=0,\\dots, N-1$. On notera respectivement $I^1_N$, $I^2_N$ et $I^3_N$ les valeurs approch\u00e9es de I calcul\u00e9es avec ces trois m\u00e9thodes.\n", "4. Tracer $\\log\\,|I^j_N-I|$ en fonction de $\\log N$ (on cr\u00e9era au pr\u00e9alable un vecteur $N$ contenant les valeurs $10,20,\\dots, 100$.\n", "5. A l'aide d'une r\u00e9gression lin\u00e9aire (utiliser la commande PYTHON adapt\u00e9e), d\u00e9terminer la pente de la droite aux moindres carr\u00e9s pour chaque courbe et donner l'ordre de convergence de chaque m\u00e9thode." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Ins\u00e9rer le script comment\u00e9 du fichier \"Exemple1.py\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exemple 2: calcul de $J=\\int_0^1\\,|3x^2-1|\\,dx$\n", "\n", "1. Cr\u00e9er un fichier \"Exemple2.py dans lequel vous \u00e9crirez votre script PYTHON. \"Etudier et tracer le graphe de la fonction $g: x\\mapsto |3x^2-1|$. Quelle est la r\u00e9gularit\u00e9 de la fonction $g$?\n", "2. Etudier num\u00e9riquement la convergence des diff\u00e9rentes m\u00e9thodes: qu'observez vous pour la m\u00e9thode de Simpson?\n", "3. Reprendre l'\u00e9tude de convergence en s\u00e9parant l'int\u00e9grale sous la forme \n", "\n", "$$\n", "\\displaystyle\n", "J=\\int_0^{\\displaystyle\\frac{1}{\\sqrt{3}}}|3x^2-1|dx+\\int_{\\displaystyle\\frac{1}{\\sqrt{3}}}^1|3x^2-1|dx\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Ins\u00e9rer le script de \"Exemple2.py\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exemple 3: M\u00e9thode des rectangles pour les fonctions p\u00e9riodiques\n", "\n", "Consid\u00e9rons les fonctions $f_j,\\;j=1,\\dots,5$ d\u00e9finies sur $[0,\\;1]$ par\n", "\n", "$$\n", "\\displaystyle\n", "f_1(x)=\\sin(x),\\quad f_j(x)=x^j(1-x)^j\\cos(x),\\quad (j=2,3,4),\\quad f_5(x)=\\frac{\\sin^2(2\\pi\\,x)}{1+\\sin^2(2\\pi\\,x)}.\n", "$$\n", "\n", "et prolong\u00e9es par $1$-p\u00e9riodicit\u00e9.\n", "\n", "1. Etudier la r\u00e9gularit\u00e9 maximale de chacune de ces fonctions.\n", "2. Cr\u00e9er un fichier \"Exemple3.py\"\n", "3. Illustrer num\u00e9riquement la convergence de la m\u00e9thode des rectangles et des trap\u00e8zes pour le calcul de $\\int_0^1 f_j(x)dx$ pour $j=1,\\dots,5$. Qu'observe-t-on?\n", "4. En d\u00e9duire une relation entre l'ordre de convergence de la m\u00e9thode des rectangles et la r\u00e9gularit\u00e9 des fonctions p\u00e9riodiques.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Ins\u00e9rer le script de \"Exemple3.py\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercices de synth\u00e8se\n", "\n", "#### Interpolation de Lagrange\n", "\n", "Reprendre l'exercice avec la fonction $f(x)=\\sin(x)$.\n", "\n", "#### Int\u00e9gration num\u00e9rique\n", "\n", "Reprendre l'exercice 1 en utilisant la formule d'approximation suivante\n", "\n", "$$\n", "\\displaystyle\n", "\\int_0^1 f(x)dx\\approx \\frac{1}{N}\\sum_{k=1}^{N}f(\\frac{x_k+x_{k-1}}{2}),\\quad x_k=\\frac{k}{N}. \n", "$$" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }