"
]
},
{
"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
}