Université Paris Descartes — UFR Math-Info Année 2015-2016 Licence 2e année Environnement de Calcul Scientifique et Modélisation page web du cours : http://www.mi.parisdescartes.fr/˜moisan/ecs/ Contrôle continu terminal (9 mai 2016) — durée : 1h30 Tous documents et calculatrices interdits. Exercice 1 Écrire, dans chaque cas ci-dessous, le résultat affiché par Scilab après exécution de la ligne proposée. On détaillera bien les étapes intermédiaires. a) A=matrix(12:-1:1,3,4);A(:,2)=[];A=A(2:$,[1,4]);A’ b) v=linspace(1,3,5);for i=1:2;v=[v(2:2:$),i,v(1:2:$)];end;v c) A=[toeplitz(1:3),matrix(4:9,3,2);(-1).^(1:5)] d) A=[1,-3,2;0,3,-1;2,-1,-3];A(:,and(A>=0,1))=0;sum(A,2)*ones(1,3) e) A=kron([1,0;0,4],[1,1;2,-1]);cumsum(diag(diag(A)),2) Exercice 2 a) On souhaite calculer la valeur de ex − 1 pour x = 10−30 . Expliquer pourquoi la ligne Scilab ci-dessous renvoie 0. x=10^{-30};exp(x)-1 b) Écrire une fonction Scilab expmoins1 qui prend en entrée un réel x et renvoie le réel y défini par x e − 1 si |x| > 1, 3 y= X xk sinon. k! k=1 1 Exercice 3 Écrire, sans utiliser de boucle, des fonctions Scilab qui répondent aux spécifications données : a) La fonction matrice prend en entrée deux vecteurs lignes x et y de même taille (disons n), et renvoie une matrice A = (ai,j ) carrée d’ordre n définie par ai,j = 1 + ln(1 + x2j + yj2 ). 1 + |xi | b) La fonction extrait prend en entrée une matrice A et renvoie la sous-matrice de A constituée des colonnes de A qui ne contiennent aucun coefficient nul. c) La fonction decompose prend entrée un polynôme à coefficients réels P (de la variable X) et renvoie deux polynômes Q et R (de la variable X également) tels que P = Q−R, et tous les coefficients de P et Q sont positifs ou nuls. Par exemple si P = X 4 − 3X 3 + 2X 2 − X − 1 la fonction doit retourner Q = X 4 + 2X 2 et R = 3X 3 + X + 1. d) La fonction combine prend en entrée deux matrices A = (ai,j ) et B = (bi,j ) de même taille et renvoie une matrice C = (ci,j ) de même taille que A et B dont le terme général est défini par ai,j si bi,j > 0, ci,j = b sinon. i,j Exercice 4 a) Écrire une fonction Scilab diviseurs qui prend en entrée un entier naturel n et renvoie un vecteur d dont les coefficients sont les diviseurs (stricts) de n, c’est-à-dire les éléments de {1, 2, . . . , n − 1} qui divisent n. Par exemple, diviseurs(12) doit renvoyer le vecteur [1,2,3,4,6]. Cette fonction ne doit pas utiliser de boucle. b) Un entier naturel n est dit parfait s’il est égal à la somme de ses diviseurs stricts. Par exemple, 6 est un nombre parfait car 1 + 2 + 3 = 6. Écrire une fonction Scilab parfaits qui prend en entrée un entier naturel n et renvoie dans un vecteur p la liste des nombres parfaits inférieurs ou égaux à n. 2