Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

1

I. EXERCICE 1

Soit f une fonction d’une variable réelle ou complexe, indéfiniment dérivable en un point
x0 . La série de Taylor de cette fonction f au voisinage du point x0 est la série de fonctions :

X
(n) (x − x0 )n
f (x) = f (x0 )
n=0
n!

1. Retrouver le développement limité de la fonction exponentielle autour de 0 (x0 = 0),


tel que a ∈ R :

ax
X xn
e =
n=0
n!

2. Commencer par programmer une fonction qui prends pour argument un entier n et
qui retourne son factoriel n!

3. Programmer une fonction qui retourne le développement en série entière de la fonction


eax à l’ordre N . Cette fonction prendra comme argument le tableau contenant la
variable x, la constante a ainsi que la troncature de la somme infinie ci-dessus N .

4. Créer un tableau contenant la variable x définie sur l’intervalle [−5, 5] avec un pas de
discrétisation approprié.

5. En prenant le tableau x ainsi défini comme entrée et fixant a = 1, appeler votre


fonction en choisissant successivement N = 5, 10, 20 et enregistrant à chaque la sortie
dans une variable.

6. Tracer les résultats ainsi sur une même figure, et comparer au cas théorique (via la
fonction exp de numpy).

II. EXERCICE 2: CALCUL MATRICIEL

1. Définir la matrice A ainsi que le vecteur colonne b tel que :


 
1 2 3 4 5
 
 6 7 8 9 10 
 
 
A=  11 12 13 14 15 
 
 16 17 18 19 20 
 
21 22 23 24 25
2

et  
−3
 
 2 
 
 
b= 5 


 
 −1 
 
1

1. Programmer une fonction ProdMat qui prends comme argument deux matrices M1 et
M2 , et retourne leur produit matricielle M1 .M2 . Dans le cas où le nombre de lignes
de A est différent du nombre de colonnes de B, indiquer le par un message d’erreur.
Afin de tester votre fonction, comparer ses résultats à ceux de la fonction matmul de
numpy, en prenant deux matrices de votre choix, ainsi que qu’en effectuant le produit
Ab.

2. Programmer une fonction qui prends comme argument une matrice carrée M , et
retourne sa matrice inverse, si son déterminant est non nul, vous pouvez utiliser
la fonction linalg.det() de numpy. Votre fonction implémentera la méthode des
comatrices :
1
M −1 = CT
det (M )
où les éléments de la comatrice C sont donnée par

Cij = −1i+j det M IJ




tel que M IJ est la matrice M à laquelle on enlève la ligne i et la colonne j (vous


pouvez utiliser la fonction np.delete pour déterminer les matrices M IJ ). Tester votre
fonction sur une matrice de votre choix en vérifiant que M M −1 = 1.

3. En utilisant la commande %timeit[instruction], comparer les temps de calculs de


votre fonction avec ceux de la fonction linalg.inv de numpy, pour des matrices
aléatoire de dimensions croissantes. Qu’en concluez vous ? (indication : la fonction
random.rand(N,N) permet de générer des matrices aléatoires de dimension N × N .

4. (Optionnel) Programmer une fonction récurrente qui calcule le déterminant d’une


matrice. Comparer les temps de calculs avec la fonction linalg.det de numpy, qu’en
concluez-vous ?
3

III. EXERCICE 3 : PROJECTEURS

1. définir deux vecteurs colonne quelconques x et n de dimensions 3, tel que n est normée
(i.e. n.n = 1).

2. Générer la matrice (3 × 3) P tel que

Pij = δij − ni nk

3. A l’aide de votre fonction ProdMat, calculer le produit matriciel P.P . Qu’en déduisez-
vous (quelle est l’action de P sur un vecteur quelconque x) ?

4. Calculer le vecteur y = P x. Dessiner les trois vecteurs x, n et y sur une même figure
3D avec la commande :

fig = plt.figure()
ax = fig.add subplot(111, projection=’3d’)
ax.arrow3D(vecteur,ec=couleur)

IV. EXERCICE 4 : ROTATION

1. Programmer une fonction qui génère la matrice rotation en dimension 3. Cette fonction
prendra comme argument l’angle de rotation θ ainsi que l’axe de rotation. Pour rappel,
les matrices de rotation en 3D sont données par :
     
1 0 0 cosθ 0 sinθ cosθ -sinθ 0
     
Rx (θ) =  0 cosθ -sinθ  Ry (θ) =  0 1 0  Rz (θ) =  sinθ cosθ 0 
     
     
0 sinθ cosθ -sinθ 0 cosθ 0 0 1

2. Appeler cette fonction pour créer une matrice de rotation avec l’angle et d’axe de
votre choix. A l’aide de votre fonction ProdMat, calculez le produit R.RT . Qu’en
déduisez-vous ?

3. A l’aide de votre fonction InvMat, vérifier que R−1 (θ) = R (−θ).

4. Visualiser l’effet de votre matrice de rotation sur un vecteur colonne de votre choix à
l’aide de la fonction arrow3D.
4

V. EXERCICE 5 : RÉGRESSION LINÉAIRE ET FIT

Une méthode classique pour traiter des données expérimentales est la régression linéaire,
qui consiste à chercher une droite qui passe ≪ au mieux≫ à travers le nuage de points
représentant les mesures. Les coefficients de cette droite sont en général donnés par la
méthode des moindres carrés.
En supposant que le phénomène étudié suit un modèle linéaire y = ax+b et que l’on
dispose d’un ensemble de N données (xi , yi), on cherche les coefficients a et b qui minimisent
l’erreur quadratique :

N
1 X
χ (a, b) = (yi − (axi + b))2
N i=1
La théorie des probabilités permet de montrer que le critère des moindres carrés
correspond au maximum de vraisemblance pour un modèle linéaire bruité par des variables
gaussiennes centrées, identiques et indépendantes. Un extremum de la fonction d’erreur q
est obtenu pour le couple (aˆ,bˆ) qui annule les deux dérivées partielles :

∂χ ∂χ
 
∂a a=a0
= 0, ∂b b=b0
=0 (1)

On admettra que celui-ci est le minimum cherché. Autrement dit, les valeurs a0 et b0 qui
vérifie le système d’équation ci-dessus sont les paramètres de la droite qui représente le
mieux nos données yi (xi ).

1. Montrer que le système d’équations (1) s’exprime comme


P P P
i xi j yj − N i xi y j
P
(x − x) (yi − y)
a= P P P 2 = i Pi 2
i xi j xj − N i xi i (xi − x)
P P
i yi − a i xi
b= = y − ax
N P
x
où x et y sont les valeurs moyennes de x et de y (x = Ni i et idem pour y).

2. Programmer une fonction LinReg qui prends comme argument deux tableaux x et y,
et qui retourne les paramètres de la droite qui vérifie (1), ainsi que le coefficient de
corrélation r défini comme
P
(xi − x) (yi − y)
i
r = qP
2P 2
i (xi − x) j (yj − y)

Ce dernier mesure la qualité de l’approximation, un fit parfait correspondant à r = 1.


5

3. Importer les données x,y à partir du fichier “data lin.txt” avec la commande
read data 2d(file name). Tracer sur une figure y en fonction de x.

4. Déterminer les paramètres a0 , b0 de la régression linéaire des ces données avec fonction
LinReg. Tracer sur la même figure la droite a0 x + b0 .

Vous aimerez peut-être aussi