@c jean-baptiste.apoung@math.u-psud.fr
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
import numpy as np
import matplotlib.pyplot as plt
Montrer que le polynôme interpolateur de Lagrange aux points (-2,-8), (-1, -1), (1, 1), (2, 8) est $P(X) = X^3$.
Donner un argument qui justifie le passage d'une formule d'interpolation à l'autre comme illustré ci-dessous :
Interpolation de Vandermonde $\Rightarrow$ Interpolation de Lagrange $\Rightarrow$ Interpolation de Néville $\Rightarrow$ Interpolation de Newton.
Soit donnés $n+1$ points $\bar{x}_{k} = (x_k, y_k)$, $k=0,\ldots, n$ 2 à 2 distincs. On souhaite construire le polynôme interpolateur de Lagrange $P_n$ en ces points.
On désigne par $Q_{\bar{x}_{m},\ldots, \bar{x}_{l}}(x)$ le polynôme interpolateur aux points $\bar{x}_{k} = (x_k, y_k)$, $k=m,\ldots, l$.
On étend la formule lorsqu'il n'y a qu'un seul point par $$Q_{\bar{x}_{k}} (x) = y_k, \quad 0\leq k \leq n$$
Montrer que pour tout $0 \leq k < l \leq n$
$$ Q_{\bar{x}_{m},\ldots, \bar{x}_{l}}(x) = \frac{x - x_l}{x_m - x_l} Q_{\bar{x}_{m},\ldots, \bar{x}_{l-1}}(x) + \frac{x - x_m}{x_l - x_m} P_{\bar{x}_{m+1},\ldots, \bar{x}_{l}}(x) $$
En remarquant que $P_n (X) = Q_{\bar{x}_{0},\ldots, \bar{x}_{n}}(X)$. Déduire qu'on peut construire $P_n (X)$ à travers un algorithme récursif.
InterpAitken(xi, yi, x):
- si longueur de xi est 1
retourner yi ( Attention, retourner yi[0] + 0 * x si se sont des tableaux numpy)
- sinon
- calculer p0 = InterpAitken(xig, yig, x) où xig, yig, sont resp. xi, yi privés du dernier élément
- calculer p1 = InterpAitken(xid, yid, x) où xid, yid, sont resp. xi, yi privés du premier élément
- calculer l0 = (x - xi1)/(xi0 - xi1) où xi0, xi1 sont resp. le premier et le dernier élément de xi
- calculer l1 = (x - xi0)/(xi1 - xi0)
- retourner l0 * p0 + l1 * p1
Mettre cet algorithme en oeuvre à travers une fonction Python de prototype InterpAitKen(xi, yi, x)
qui prend en arguments
- xi, yi deux vecteurs de taille
n
représentant les points d'interpolation- x un vecteur de taille
N
représentant les valeurs où l'on souhaite évaluer le polynôme interpolateuret qui retourne un vecteur y de taille
N
## METTRE LA REPONSE ICI
#def InterpAitKen(xi,yi,x):
On pose $a = 1$, $b = 3$, $f(x) = \exp(-3(x-1.2)^2)$
Représenter sur un même graphique en mettant titre et légende,
## METTRE LA REPONSE ICI
Ici, on pourra utiliser soit l'algorithme défini ci-dessus ou tout autre algorithme d'interpolation
En $1991$ , les records mondiaux en athlétisme pour certaines distances étaient les suivants :
dist (D) temps (T)
----------------------------
100 m 9.93 s
200 m 19.72 s
400 m 43.86 s
800 m 1 min 41.73 s
1500 m 3 min 29.45 s
5000 m 13 min 00.40 s
10000 m 27 min 13.81 s
30000 m 1 h 29 min 18.8 s
-----------------------------
Estimer les records du monde cette année là pour
$1000 m$, $2000 m$, $25000 m$ et le Marathon ($42195 m$)
Comparer les valeurs obtenues aux valeurs réelles :
2 min 12.18 s, 4 min 51.39 s, 1 h 13min 55.8s , 2 h 07min 12 s
### ON MET A VOTRE DISPOSITION LES SCRIPTS SUIVANTS
def Tosec(h, mn, s):
'''Convertir h heures + mn minutes + s secondes en secondes '''
return h * 3600. + mn * 60. + s
def FromSec(s):
''' Affiche un Total de s secondes en heures+ minutes +secondes'''
if(s < 0):
print("temps négatif : {:f}".format(s))
return
# Les secondes
rs = int(s)%60 +(s - int(s))
#
sm = int(s)//60
# Les minutes
rm = sm % 60
#
sh = sm//60
# Les heures
rh = sh % 60
print("{:d} h {:2d} min {:4.2f} s".format(int(rh), int(rm), float(rs)))
def Records():
x = np.array([100., 200, 400,800, 1500, 5000,10000, 30000])
y = np.array([9.93, 19.72, 43.86, Tosec(0,1,41.73), Tosec(0,3,29.45), Tosec(0,13,00.40), Tosec(0,27,13.81),
Tosec(1,29,18.8)])
return x,y
### METTRE LA REPONSE ICI
Estimer le record du monde cette année là de la distance parcourue en $1h$
Comparer cette valeur à celle enregistrée : $ 20944 m$
### METTRE LA REPONSE ICI
Reprendre la question 5-1 et 5-2 en remplaçant dans la table des reccords, les valeurs des distances et des temps par les $log$ de ces quantités.
### METTRE ICI LA REPONSE A LA REPRISE DE LA QUESTION 5.1
### METTRE ICI LA REPONSE A LA REPRISE DE LA QUESTION 5.2