{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Université Toulouse 3 Paul Sabatier\n", "
\n", "
\n", "2018-2019\n", "
\n", "
\n", "
\n", "L2 Parcours Spécial\n", "
\n", "
\n", "
\n", "
\n", "
\n", "TP 1 - Calcul Scientifique\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline \n", "\n", "# %pylab inline est un équivalent de l'importation* de numpy et de matplotlib.pyplot\n", "#%matplotlib inline\n", "#from matplotlib.pyplot import *\n", "#from numpy import *\n", "#from scipy import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 1 - Interpolation\n", "\n", "1) On considère les abscisses $x = \\left[ -2, 0, 1, 2 \\right]$ et $y = \\left[ 4, 0, 0 ,4 \\right]$. Parmi les polynômes suivants, lequel est le polynôme d'interpolation aux points $x,y$ (justifiez votre réponse) ?\n", "\n", "- $\\displaystyle p_1(x) = x^4 - \\frac{2}{3} x^3 - 3\\, x^2 + \\frac{8}{3} x$\n", "- $\\displaystyle p_2(x) = \\frac{4}{3}x^2 - \\frac{4}{3}$\n", "- $\\displaystyle p_3(x) = \\frac{1}{3}x^3 + x^2 - \\frac{4}{3} x$\n", "\n", "2) Représentez sur une même figure les points d'interpolation, ainsi que les polynômes $p_1$, $p_2$ et $p_3$ respectivement en noir, vert et rouge, sur l'intervalle $[-2.5, 2.5]$.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 2 - Calcul de polynômes d'interpolation\n", "\n", "1) Calculez les polynômes d'interpolation aux points suivants :\n", "\n", "a) $x = [-1,2,3]$ et $y = [4,4,8]$ \n", "\n", "d) $x = [-1,0,1]$ et $y = [1,0,1]$\n", "\n", "e) $x = [-3,-1,2,10]$ et $y = [-3,-1,2,10]$\n", "\n", "2) Représentez graphiquement les polynômes des points a) et b), accompagnés des points d'interpolation correspondants." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 3 - Base de Lagrange\n", "\n", "Soit $x_0,\\ldots, x_n$ (n+1) réels distincts deux à deux. Pour $k \\in \\left\\lbrace 0, \\ldots, n \\right\\rbrace$, on\n", "note \n", "$$\n", "L_k(x) = \\prod_{j \\in \\left\\lbrace 0, \\ldots , n \\right\\rbrace, j \\neq k} \\frac{x-x_j}{x_k-x_j}\n", "$$\n", "le $k$-ième polynôme de Lagrange.\n", "\n", "1) Montrez que $L_k$ est un polynôme de degré $n$ vérifiant $L_k(x_i) = \\delta_{k i}$ pour tout $k, \\ i \\in \n", "\\left\\lbrace 0, \\ldots , n \\right\\rbrace$.\n", "\n", "2) En déduire que la famille de polynôme $\\left\\lbrace L_k \\right\\rbrace_{k \\in \\left\\lbrace 0, \\ldots , n \\right\\rbrace}$ forme une base de $\\mathbb{R}_n[X]$.\n", "\n", "3) Écrire une fonction `PolLagrange(Xint,x,k)` qui calcule les valeurs prises par le $k$-ième polynôme de la base de Lagrange associé aux abscisses $X_{int} = (x_0, \\ldots , x_n)$, en un point $x$.\n", "\n", "4) Ecrire une fonction `ApproxLagrange(Xint,f,x)` qui renvoie la valeur en $x$ du polynôme d'interpolation de Lagrange de $f$ associé aux noeuds $X_{int} = (x_0, \\ldots , x_n)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 4 - Méthode de Simpson pour le calcul approché d'intégrales\n", "\n", "Soit une fonction continue $g:[1,2]\\rightarrow \\mathbb{R}$. On cherche à approcher l'intégrale $I(g)=\\int_1^2 g(x)dx$ par la formule d'intégration numérique $J_2$ suivante: \n", "$$J_2(g)=\\lambda_0 g(1)+ \\lambda_1 g\\left(\\frac{3}{2}\\right) + \\lambda_2 g(2)$$\n", "où les $\\lambda_i$ sont des réels. \n", "\n", "1) Ecrire le système que doit vérifier $(\\lambda_0,\\lambda_1,\\lambda_2)$ pour que la méthode soit exacte pour les polynômes de degré inférieur ou égal à 2. \n", "\n", "2) En déduire les valeurs de $\\lambda_0,\\lambda_1$ et $\\lambda_2$.\n", "\n", "3) Quel est le degré d'exactitude de la méthode ? \n", "\n", "4) Déduire de cette étude une valeur approchée de $\\ln(2)$. Que peut-on faire pour avoir une approximation aussi fine de que l'on souhaite ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 5 - Méthode des rectangles en des trapèzes composite\n", "\n", "1) Écrire une fonction `RectComp(a,b,f,h)`, qui retourne une approximation numérique de l'intégrale de la fonction `f` sur `[a,b]`, en utilisant la méthode d'intégration de rectangle à gauche composite sur une subdivision uniforme de pas `h`. \n", "\n", "2) De même qu'à la question 1), écrire une fonction `TrapComp(a,b,f,h)`, qui retourne une approximation numérique de l'intégrale de la fonction `f` sur `[a,b]`, en utilisant la méthode d'intégration de trapèze à gauche composite sur une subdivision uniforme de pas `h`.\n", "\n", "3) Utiliser ces fonctions pour calculer une approximation de l'intégrale de la fonction $f(x)=\\cos(x)$ sur $[0,2]$ par les méthodes composites des rectangles et trapèzes, avec `h` = 0.1, puis `h` = 0.01 et enfin `h` = 0.001. Quelle erreur obtient-on dans chaque cas ? Cela est-il en accord avec les résultats théorique vus en cours ?" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9]\n" ] } ], "source": [ "A=arange(1,2,0.1)\n", "print(A)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 6 - Une nouvelle méthode d'intégration numérique\n", "\n", "Soient $x_{1},x_{2}\\in [-1,1]$, $x_1 < x_2$, et $\\lambda _{1},\\lambda _{2}\\in \\mathbb{R}.$ \n", "\n", "On\n", "définit, pour $f$ une fonction continue sur $[-1,1]$, la méthode d'intégration numérique $T$ de la façon suivante :\n", "$$ T(f)=\\lambda_1 f(x_1)+ \\lambda_2 f(x_2).$$\n", " \n", "a) Montrer que $T$ est exacte pour les polynômes de degré inférieur ou égal à 1 sur $[-1,1]$ si et seulement si $\\lambda_1 = \\frac{2 x_2}{x_2 - x_1}$\n", "et $\\lambda_2 = \\frac{2 x_1}{x_1 - x_2}$. \n", " \n", "b) Pour quelles valeurs de $\\lambda_1$, $\\lambda_2$, $x_1$ et $x_2$, $T$ est-elle exacte pour des polynômes de degré inférieur ou égal à 3 ? Quel est alors le degré d'exactitude de la méthode ? \n", "\n", "c) Déduire des questions précédentes une méthode d'intégration de degré d'exactitude 3 sur un segment $[a,b]$ quelconque.\n", "\n", "c) Programmer la méthode d'intégration obtenue, puis la méthode d'intégration composite correspondante. Vérifiez l'ordre de la méthode en traçant la courbe d'erreur quand on intègre $\\cos$ sur $[0,2]$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.11" } }, "nbformat": 4, "nbformat_minor": 0 }