Vous êtes sur la page 1sur 57

Question 1

Question 2:

La bonne réponse est Numpy:


Question 3:

La bonne réponse est à typage dynamique:


Comme Python est un langage sensible à la casse(il fait la différence entre les lettres
majuscules et minuscules), interprété (le code source (celui que vous écrivez) est
interprété, par un logiciel qu'on appelle interpréteur. Celui-ci va utiliser le code source
et les données d'entrée pour calculer les données de sortie) et open source alors la
bonne réponse est à typage dynamique c-à-d: Python est un langage dans lequel les
types des variables sont découverts à l'exécution, il détermine le type d'une variable
la première fois que vous lui assignez une valeur.
Question 4

Cocher la bonne réponse.


 [False False True False False].
 [0 0 1 1 0].
 [True True False True True].
 [string string bool int int]
Question 4
Réponse

Cocher la bonne réponse.


× [False False True False False].

 [0 0 1 1 0].
 [True True False True True].
 [string string bool int int]
Question 4
Justification

info
La commande pandas.isna(obj) permet de détecter les valeurs manquantes pour un objet
de type tableau. Cette commande prend un objet scalaire ou de type tableau et indique si des
valeurs sont manquantes ou non :
NaN : dans les tableaux numériques
None ou NaN : dans les tableaux d’objets
Entrée de la commande pandas.isna(obj) :
obj est un scalaire ou un tableau.
Retour de la commande pandas.isna(obj) :
booléen ou semblable à un tableau de booléen. Pour une entrée scalaire, renvoie un
booléen scalaire. Pour l’entrée de tableau, renvoie un tableau de booléens indiquant si
chaque élément correspondant est manquant.
Solution :
import pandas as pd
L=[’esprit’, ’python’, None, 5, 0]
>>[False False True False False]
Question 5
Description

Réponse :
Question 6

Description

Réponse :
Question 8

La figure ci-dessous illustre les représentations graphiques de la fonction f (x) = sin(x) sur [−5, 5], le
polynôme d’interpolation de f par la méthode de Lagrange, noté PL et le polynôme d’interpolation
de f par la méthode de Newton, noté PN. Les points d’interpolation sont indiqués par des * en noir.

 La courbe 1 représente PN
 La courbe 2 représente PL
 la courbe 3 représente la fonction f
 Le polynôme PN interpole mieux la fonction f que le polynôme PL
Question 8
Réponse
La figure ci-dessous illustre les représentations graphiques de la fonction f (x) = sin(x) sur [−5, 5], le
polynôme d’interpolation de f par la méthode de Lagrange, noté PL et le polynôme d’interpolation
de f par la méthode de Newton, noté PN. Les points d’interpolation sont indiqués par des * en noir.

× La courbe 1 représente PN

 La courbe 2 représente PL
 la courbe 3 représente la fonction f
 Le polynôme PN interpole mieux la fonction f que le polynôme PL
Question 8
Justification
Rappel : Etant donné (n + 1) points d’interpolation (x0 , f (x0 )), (x1 , f (x1 )), · · · , (xn , f (xn )) deux à
deux distincts, Il existe alors un unique polynôme d’interpolation P ∈ R[X ] qui interpole la fonction f
en ces points tel que
P(xi ) = f (xi ), ∀i ∈ 0, 1, · · · , n

P s’exprime dans la base de Lagrange {L0 , L1 , · · · , Ln } comme suit

n n
X Y x − xj
P(x) = f (xi )Li (x), avec Li (x) =
i=0 j=0,j6=i
xi − xj

P s’exprime dans la base de Newton {w0 , w1 , · · · , wn } comme suit

n
X
P(x) = βi wi (x), avec
i=0

Qi−1
a) wi (x) = j=0 (x − xj ), ∀i ∈ {1, · · · , n} et w0 (x) = 1
f [x1 ,··· ,xk ]−f [x0 ,··· ,xk−1 ]
b) βi = xk −x0 = f [x0 , · · · , xk ]
où f [x0 , · · · , xk ] désigne la différence divisée d’ordre k.
Solution :
Le polynôme d’interpolation qui interpole une fonction est un polynôme unique. Alors, PN=PL.
Donc, la réponse est : La courbe 1 représente PN
Question 9
Question 10
Le graphique suivant représente l’erreur commise par une
méthode composite d'intégration en fonction du nombre de
sous-intervalles utilisés. Quel est le nombre optimal de sous-
intervalles à considérer minimisant l'erreur d'intégration et
limitant raisonnablement la complexité de l'algorithme.
Réponse
La réponse : n=60.
La plus grande chute au niveau de la courbe d’erreur est au niveau
de n=60 par contre pour les indices strictement supérieurs à 60 la
courbe d’erreurs est presque plane.
Question 11

1
Question 12
Pour répondre à cette question, on rappelle tout d’abord la
définition de l’interpolation d’une fonction en m+1 points :
• Étant donné m+1 points distincts x0, . . . ,xm et m+1 valeurs. Il existe
un unique polynôme Pm interpolant f en ces points vérifiant
• Pm(xi ) =f(xi), pour i dans 0, . . .,m.
Réponse: C
Seule la courbe de la proposition C vérifie que la fonction f et le
polynôme P coïncident aux points d’abscisses 0, 1 et 2.
Réponse question 13
b
La méthode composite des rectangles du points milieu consiste à approcher ∫a f (t)dt par:
n−1
(x k + x k+1 )
c
I (f ) = h ∑ f (x m ) ;        x m =
Rm i i
2
k=0

D'autre part, on a:
xk x k+1
  

(x k + x k+1 ) a + kh + a + (k + 1)h
=
2 2
2a + 2kh + h
=
2

h
= a + kh +
2
1
= a + (k + )h
2
Donc la bonne réponse c'est D

In [ ]:

def rectangle_milieu_composite(f,a,b,n):
h = (b-a)/n
s = np.zeros(n)
for k in np.arange(0,n):
s[k] = f(a+(k+0.5)*h )
Im=h*sum(s)
return Im
S est une chaine de caractère : un objet de type "string" qui n'est
pas mutable. Réponse fausse.

L est une liste : un objet de type "list". Il est mutable. Nous pouvons
modifier ses éléments, sa taille, ... Réponse correcte.

T est un objet de type "tuple" qui n'est pas mutable. Réponse


fausse.

P aussi est un tuple dont les éléments sont de type "string".


Réponse fausse.
Le comportement des données est constant.
Si l'on veut déterminer un bon ajustement avec
la moindre complexité algorithmique, un
modèle polynomial de degré p<=1 serait le bon
choix dans ce cas.
Faux : il faut déviser par 6

faux : il faut considérer f(point milieux)


tuple

liste

La concaténation n'est pas possible


avec un tuple et une liste.
il manque les :

problème
d'indentation
Question 19 :
Question 19 : Réponse

La matrice B est une sous-matrice principale de A d’ordre 5, elle


est composée des 5 premières lignes et des 5 premières colonnes de
A alors

B = A[ :5
|{z} , :5
|{z} ].
5 premières lignes 5 premières colonnes
Question 20 :
Question 20 : Réponse

La réponse correcte est (A) et on a


Question 20 : réponse

• Err.append(x) doit être dans la boucle ’for’ pour avoir une liste
contenant tous les itérés après k itérations.
• return Err[k-1]-Err[k-2] car la liste contient k éléments et
python commence à compter de 0 alors les deux derniers
éléments dans la liste Err sont d’indices k − 1 et k − 2.
Question 21 :
Question 21 : Réponse

Soit la liste A = [1, 2, 3, 4, 5, 10, 20, 30, 40, 50].


Dans cette question, on construit une liste L contenant la somme
du i ème et i + 3 ème éléments deQuestion
A et on obtient
21 :
L = [5, 7, 13, 24, 35, 50, 70]
Question 22 :
Question 22 : Réponse

Dans cette question on ne peut pas conclure car dans les deux
représentations graphiques les parties hachurées sont positives et
négatives et on a pas un critère tranchant qui est le calcul de
l’erreur qui permet de donner des valeurs à comparer.