Académique Documents
Professionnel Documents
Culture Documents
Question 1 : Importer les modules numpy, matplotlib.pyplot et sympy en utilisant des alias
différents.
Question 2 : On considère une fonction f tabulée, définie par la connaissance des points
( xi , yi = f ( xi ))0≤i≤8 illustrés dans le tableau ci-dessous :
i 0 1 2 3 4 5 6 7 8
−3 −1 −1 1 1 3
xi −1 0 1
4 2 4 4 2 4
32 8 32 32 8 32
yi = f ( xi ) 1 2 1
25 5 17 17 5 25
[2]: X=np.linspace(-1,1,9)
Y=[1,32/25,8/5,32/17,2,32/17,8/5,32/25,1]
[3]: plt.plot(X,Y,color="magenta",marker='^',linestyle="dashed")
[3]: [<matplotlib.lines.Line2D at 0x226d1362f28>]
1
Question 4 : On souhaite déterminer une valeur approchée de
∫ 1
I( f ) = f ( x )dx
−1
h( )
p −1 p −1
ISc ( f ) = f ( a) + 4 ∑ f ( x2k+1 ) + 2 ∑ f ( x2k ) + f (b)
3 k =0 k =1
avec h désigne le pas de discrétisation de l’intervalle [ a, b] sur lequel la fonction f est définie,
n = 2p,p ∈ N∗ , le nombre pair de sous intervalles et xi , i ∈ {0, · · · , n}, les points d’intégration.
Ecrire une fonction Simpson(X,Y) qui prend comme entrées une liste X de points équidistants sur
[ a, b] (h est fixé) et Y la liste des images de X par f et qui renvoie la valeur de ISc ( f ).
2
[5]: Simpson(X,Y)
[5]: 3.141568627450981
2
Question 6 : Soit la fonction f (t) = , t ∈ [−1, 1].
1 + t2
Programmer la fonction f .
Question 7 : Créer une liste t composée de 1000 points répartis uniformément sur [−1, 1].
[7]: t=np.linspace(-1,1,10**3)
Question 8 : Sur une même figure, représenter f en bleu, et en ligne continue, et les couples
( xi , yi = f ( xi ))0≤i≤8 avec des * en rouge seulement. Donner les instructions nécessaires. Observer
le graphique, que remarquez vous?
[8]: plt.plot(t,f(t),'b-',X,Y,'r*')
# La courbe représentative de f passe par les points de la question 2
[8]: [<matplotlib.lines.Line2D at 0x226d09e6710>,
<matplotlib.lines.Line2D at 0x226d1414f60>]
3
Question 9 : Sachant maintenant que les données représentées dans le tableau de la question
2, sont issues de la fonction f de la question 6, donner la valeur exacte de I ( f ) en utilisant la
fonction integrate du module sympy. Donner les instructions nécessaires.
[9]: x=sp.Symbol('x')
I=sp.integrate(2/(1+x**2),(x,-1,1)).evalf()
I
[9]: 3.14159265358979
[10]: print(I)
print(Simpson(X,Y))
# Erreur d'intégration
np.abs(I-Simpson(X,Y))
3.14159265358979
3.141568627450981