INSTITUT PREPARATOIRE AUX ETUDES D’INGENIEUR Année universitaire 2012/2013 DE MONASTIR Devoir surveillé N˚ III Matière Nombre de pages Durée Classes Informatique 4 1 heures AP2 : MP, PC, Tech Exercice 1 (5 points) Soit la matrice définie comme suit : 1
0 − 21 1 A = 0 1 3 1 0 −2 0 2
(a) – Réinitialiser la session de travail. – charger la bibliothèque de l’algèbre linéaire. – Définir A. 1 1/2 points Solution: >restart: > with(linalg): > A := matrix(3,3,[1/2,0,-1/2,0,1,1/3,0,-1/2,0]); (b) Calculer dans J la réduite de Jordan de la matrice A et la matrice de passage 1/ point P. 2 Solution: > J := jordan(A,P); (c) Sachant que P −1 A P = J et que J est diagonale, calculer An pour n un entier naturel quelconque. 1 point Solution: > Jn := map(x->x^n,J); >An := multiply(P,Jn,inverse(P)); (d) Calculer lim An .
1/ 2
n→+∞
point
Solution: > map(x-> limit(x,n=infinity),An); (e) Calculer la matrice définie par S =
m X
Ai .
1 point
i=0
Solution: > f := (i,j)-> sum(eval(An[i,j],n=k),k=0..m); >S := matrix(rowdim(A),coldim(A),f); 1/ 2
(f) Calculer lim S. m→+∞
page 1 sur 4
point
Solution: > map(x-> limit(x,m=infinity),S); Exercice 2 (8 points) Donner les commandesMAPLE permettant de réaliser les tâches suivantes : (a) Réinitialiser la session de travail.
1/ 2
point
Solution: >restart: (b) Définir le système d’équations différentielles défini ci-dessous : 0 x (t) = x(t) + 2 y(t) − z(t) (E) = y 0 (t) = 2 x(t) + 4 y(t) − 2 z(t) 0 z (t) = −x(t) − 2 y(t) + z(t) 1 1/2 points Solution: >eq1 := D(x)(t) = x(t) + 2* y(t)- z(t): >eq2 := D(y)(t) = 2* x(t) + 4 * y(t) -2*z(t): > eq3 := D(z)(t) = -x(t) -2* y(t) + z(t): (c) résoudre (E) en tenant compte des conditions x(0) = (C) = y 0 (0) = z(0) =
initiales suivantes : 1 2 1 1 point
Solution: > dsolve({eq1,eq2,eq3,x(0)=1,D(y)(0)=2,z(0) = 1},{x(t),y(t),z(t)}); (d) Sachant que la commande précédente donne le résultat suivant : 5 1 6t 1 6t 7 1 6t x(t) = + e , y(t) = e , z(t) = − e 6 5 3 6 5 Utiliser le résultat de cette commande pour dessiner sur le même graphique, les courbes représentatives de x(t), y(t) et z(t) pour t ∈ [−1 1] en restreignant l’axe des ordonnées à l’intervalle [0 5]. 2 points Solution: >sols := %: >x := unapply(eval(x(t),sols),t): > y := unapply(eval(y(t),sols),t): > z := unapply(eval(z(t),sols),t): > plot({x,y,z},-1..1,0..10); (e) Effacer le contenu du symbole y (c-à-d libérer y) .
page 2 sur 4
1/ 2
point
Solution: >y := ’y’; (f) Définir l’équation différentielle (D) = y 0 (x) + sin(y(x)) = x.
1/ 2
point
Solution: >eq := D(y)(t) + sin(y(t)) = t; (g) Utiliser la méthode numérique pour résoudre (D) avec la condition initiale y(0) = 0. 1 point Solution: >dsolve({eq, y(0)=0},y(t),numeric): (h) Tracer la solution obtenue pour x ∈ [−5 5].
1 point
Solution: >with(plots): odeplot(s,[t,y(t)],-5..5); Exercice 3 (7 points) L’algorithme du gradient est un algorithme d’optimisation. Il est destiné à minimiser une fonction réelle différentiable. L’algorithme est itératif et procède donc par améliorations successives. À partir d’un point initial, une suite de déplacements est effectuée dans la direction opposée de la dérivée, de manière à faire décroître la fonction. Formellement, l’algorithme procède comme suit : Étant donné un point de départ x0 , l’algorithme construit la suite récurrente (xn )n≥0 définie par xn+1 = xn − α f 0 (xn ) où α > 0 est le pas de recherche et f 0 est la fonction dérivée de f . Le calcul des termes est itérée jusqu’à ce que une précision ε désirée soit atteinte, ceci ce traduit par la condition |f 0 (xk )| < ε. Dans ce cas la procédure retourne xk . Travail Demandé : On souhaite minimiser une fonction f supposée définie et ayant l’entête suivant : fonction f(x : réel) : réel (a) Une approximation numérique de la dérivée de f est donné par : f 0 (x) =
f (x + h) − f (x − h) 2h
On prendra pour les calculs h constante égale à 0.001. Écrire une fonction algorithmique f prime retournant la dérivée de f en un point donné x. 2 points Solution: fonction fprime(x : réel) : réel Const h = 0.001 Début retourner (f (x + h) − f (x − h))/(2 ∗ h) Fin fprime (b) Le paragraphe suivant explique la désignation des paramètres qui seront passés à la procédure gradient permettant d’obtenir un minimum local de la fonction f : page 3 sur 4
alpha : le pas de recherche. x0 : le terme initial de la suite (xn )n≥0 . eps : la précision ε voulue. xn : approximation du minimum local recherché. kmax : le nombre maximal d’itération que l’on accepte d’effectuer. nb : nombre d’itérations réellement effectuées. ibf : indicateur de bonne fin. Si le résultat de recherche est obtenu avec la précision voulue avant que l’on ait effectué les kmax itérations alors ibf = 0 sinon ibf = 1. Indiquer le mode de passage (entrée, sortie ou entrée/sortie) qu’il faut utiliser 2 points pour chacun de ces paramètres. paramètre mode de passage alpha entrée x0 entrée eps entrée Solution: xn sortie kmax entrée nb sortie ibf sortie (c) Écrire une procédure nommée gradient qui permet de calculer, par la méthode de gradient, une valeur approximative d’un minimum local de la fonction f , il faut utiliser tous les paramètres expliqués dans le paragraphe précédent. 3 points Solution: procédure gradient(E alpha, x0, eps : réel, S xn : réel, E kmax : entier, S nb, ibf : entier ) Début nb ← 0 ibf ← −1 xn ← x0 tantque ibf = −1 faire nb ← nb + 1 si (f prime(xn) > −eps) et (f prime(xn) < eps) alors ibf ← 0 sinon xn ← xn − alpha ∗ f prime(xn) fin si si kmax < nb alors ibf ← 1 fin si fin tantque Fin gradient
page 4 sur 4
♣♦♥♠ Bonne chance ♣♦♥♠