Vous êtes sur la page 1sur 14

Ministère de l’Enseignement Supérieur et de la

Recherche Scientifique

‫وزارة التعليم العالي و البحث العلمي‬


‫ عنابه‬-‫جامعة باجي مختار‬

BADJI MOKHTAR-ANNABA UNIVERSITY


UNIVERSITE BADJI MOKHTAR-ANNABA

Faculté des Sciences

Les Examens DE PROGRAMMATION EN MATLAB


POUR LES MATHEMATIQUES

Spécialité : Mathématique et Informatique

LMD 1ére année

Présenté

Par

Dr HAFIDI Mohamed

Année universitaire 2019-2020


Sujet 1 :

Soit les trois matrices A, B et C :

Partie A (9 points) : Calculez les expressions suivantes :


A*B-3

C*B+1+Zeros(4, 2)

C(end :-1 :1,2).\24

A.*B-3

C*eye(2,2)

A^2-ones(2,2)

A’.^B/2

C(1 :2, ) ^2
C(2 :3, :) .^2

Partie B (1 point):
Créez la matrice M qui contient les
matrices A et B l’une sur l’autre pour
définir la 1ere et la 2éme colonne, et la
matrice C pour définir la 3éme et la 4éme
colonne.

Partie C (4 points): Donnez le résultat pour chacune des commandes suivantes :


M(3,2)=3

M([1,3], :) = [ ]

Tril(M, -1)+triu(M,2)

M(1 :3, [2 4 ])’

Partie D (6 points) : Proposez deux expressions pour chacun des traitements


suivants :
Supprimer toute la
ligne i

Supprimer toute la
colonne j

Ajouter une ligne à


la fin de la matrice

Sujet 2 :

Questions Réponses
Créer de deux façons le vecteur ligne (9 7 5 3 1). - X=[9 7 5 3 1];
- X=9:-2:1;

Créer de deux façons le vecteur colonne (10 9.5 9 - Y=[10; 9.5; 9; 8.5; 8];
8.5 8).

- Y=(10:-0.5:8)’;

Créer le vecteur ligne (9 7 5 3 1 9 7 5 3 1 9 7 5 3 1)


à partir des vecteurs précédents. X3=[X X X];

Créer le vecteur colonne (10 9.5 9 8.5 8 10 9.5


9 8.5 8 10 9.5 9 8.5 8) à partir des vecteurs Y3=[Y;Y;Y];
précédents.
Créer de deux façons les matrices : - A=[1 2 3 4; 5 6 7 8 ;9 10 11 12; 13 14 15 16];
B=[0 4 4 4; 4 0 4 4; 4 4 0 4; 4 4 4 0];

- L=1:4;A=[L; L+4 ;L+8; L+12];


B=4*ones(4)-4*eye(4);

Extraire la deuxième colonne de la première


matrice. C2=A(:,2)

Extraire la deuxième ligne de la première matrice.


L2=A(2,:);

Extraire la sous-matrice 2x2 centrale de la première A22=A(2:3,2:3);


matrice.

Inverser les 2 colonnes centrales de la première


matrice. A2=[A(:,1) A(:,3) A(:,2) A(:,4)];

Inverser les deux premières lignes de la seconde


matrice. A2=[A(1,:) ;A(3,:); A(2,:);A(4,:)];

Ecrire une fonction Matlab prenant 2 vecteurs ligne


U et V en entrée et produisant en sortie le produit function r=ps(U,V)
scalaire. r=U*V’;

Ecrire une fonction insère qui prend un vecteur


ligne U et une valeur a et qui produit le vecteur (u1, function Y=insere(X,a)
a, u2, a, ….. ,un, a). n=size(X,2);
Y=a*ones(1, 2*n);
J=1;
For I= 1: n
Y(J)=X(i);
J=j+2;
end

Ecrire une fonction réalisant le produit


sin(x)*cos(3x). function y=f(x)
y=sin(x).*cos(3*x)

Dessiner le graphe de la fonction précédente sur x=0:.1:2*pi;


l’intervalle [0 2]. plot(x,f(x));

Sujet 3:

Soient les vecteurs colonnes et la matrice suivants :


Questions Réponses
1) Entrer les données en ligne. (2 pts) u1 = [ 1 2 3 ]
u2 = [ -5 2 1 ]
u3 = [ -1 -3 7 ]
A0 = [ 2 3 4 ; 7 6 5 ; 2 8 7 ]

2) Calculer le produit A0U1. (1 pt) A0*u1

3) Ecrivez une fonction donnant le vecteur function y=maxvalabs(a,b)


U4 dont la composante numéro i est celui des if abs(a)>abs(b)
deux nombres U1i, U2i qui est le plus grand y = a;
en valeur absolue. (2pts) else
y = b;
end
end

U4 = 1:length(U1)
for i = 1:length(U1)
U4(i) = maxvalabs(U1(i),U2(i));
endfor

4) Construisez la matrice A donnée par


A = U1t.U1 (1pt) A= u1’*u1

5) Construisez le vecteur U5 défini par W=u1.^2


U5 = W.A3 + 4.U1 où I est la matrice identité U5=W*A^3+4.*U1
de genre 3×3 et W est le vecteur de même
taille que U1 dont les composantes sont le
carré des composantes correspondantes de
U1. (2 pts)

6) Construisez de deux façons une fonction - Function p= prod (v, w)


qui prend comme variables deux vecteurs v P= dot(x,y)
et w à trois composantes, et qui en renvoie le End
produit scalaire ? (2 pts)
- Function p= prod (v, w)
sum(x.*y)
end

7) Ajouter 2 à l’élément a23 et multiplier par A(2,3) =A(2,3)+2


ln(2) la deuxième colonne de A (2 pts) A(:,2) =log(2)*A(:,2)

8) Construisez une fonction qui prend Function pv= prodv(v, w)


comme variables deux vecteurs v et w à trois Pv= cross(x,y)
composantes, et qui en renvoie le produit end
vectoriel. (2 pts)

9) Construisez un script qui permet d’afficher U=prodv(u1, u2)


la norme d’ordre 2 du produit vectoriel des norm(u,2)
vecteurs U1 et U2. (2 pts)
10) Construisez un script qui permet U=prodv(u1, u2)
d’afficher la norme d’ordre 1 du produit norm(u,1)
vectoriel des vecteurs U1 et U2. (2 pts)

11) Construisez un script qui permet U=prodv(u1, u2)


d’afficher la norme d’ordre  du produit norm(u,inf)
vectoriel des vecteurs U1 et U2. (2 pts)
Sujet 4:

Exercice 1 :
Le programme ci-dessous devrait tracer 3 graphiques dans la même figure : x1i en fonction de
ti, x2i en fonction de ti et x3i en fonction de ti1. Le code aurait dû aussi exporter le graphique
dans un fichier .jpeg ayant le nom « mon_graphique ». Malheureusement plusieurs erreurs se
sont glissées dans le code. Identifiez ces erreurs, et expliquez l’erreur trouvée.

Code Erreur
1
clear all; clc
2
w = 1;
3 ; dans la matrice de valeurs
ti = 0:0.01;7;
4 valeur x0
ti1 = -pi:0.01:3*pi;
x1i = x0*log(ti) ;

5 x2i en fonction de ti et non ti1


x2i = -w*x0*(ti1);

6
x3i = 2*sin(ti1);
figure(1)
plot(ti,x1i, '-r*', 'LineWidth', 2)

7 hold on ;
plot(ti,x2i, ':bo', 'LineWidth', 2)

8 il manque le plot pour xi3


labelx('t(sec)') xlabel au lieu de labelx()

9 ylabel('x1, x2) il manque ‘ pour la chaine de caractères a l’intérieur de ylabel

10 titre('Solution') title au lieu de titre

11 print au lieu du export


export -djpeg -r300 il manque le titre du fichier jpeg.

12
hold off;

Sujet 5:

Exercice 1 : Traduire les expressions mathématiques suivantes en instructions


MATLAB.

X=(-b-sqrt(b^2-4*a*c))/(2*a)

U= 12*sqrt(2)*cos(2*pi*f*t-3*pi/4)

Z= exp(sqrt(3*n^2+log(n/5))

Y= exp(2-sqrt(b^3-1/a))

Z=abs(2*n^5-3)/sqrt(4*n^2+log(6*n))

Exercice 2: Soit la fonction suivante qui calcule le minimum d'une matrice.

mini= function miniMat(M)


x=size(M);
for k=1:?
for h=1:?
if mini ? M(k,h)
mini= M(?,?);
end
end

Remplacer les points d'interrogation (?) par


l'expression qui convient et corriger les Function mini =miniMat(M)
éventuelles erreurs. X= size(M)
Mini = M(1,1)
For k=1: x(1)
For h=1: x(2)
If mini > M(k,h)
Mini M(k, h);
End
End
End
Construisez la matrice A défini par :
p=[3:2:5] 7 1 1
A=(ones(3)+diag([p 10]))'+3*eye(3)' A= 1 9 1
1 1 14

Construit un vecteur b constituée des [n, m] = size(A)


éléments paires de A B= [ ] ;
For i= 1:n
For j=1:m
If mod(A(I,j), 2)==0
B=[b A(I,j)]
End
End
end
Construit une matrice C constituée des
colonnes impaires de A. C= A( : , 1 :2 :m)

Calcule le maximum de b
Maxi= max(b)

Calcule le minimum de C en utilisant la


fonction précédente Mini= miniMat(c)

Exercice 3 : Qu'obtient-on lorsqu'on exécute les instructions suivantes:


>> k= 9 : - 2 : 1 K= 9 7 5 3 1

>> b = [1 4.5 3 1 ] * (2 * eye(4)) B= 2 9 6 2

>> c=b - [0 9 5 0] C= 2 0 1 2

>> a = b - [1 5 3 -1 ] A= 1 4 3 3

>> s = [k(5) k(1) (K(5) - 1 ) (K(5) + 1 ) ; a; 1 9 0 2


b , c] 1 4 3 3
2 9 6 2
2 0 1 2
>> a= (diag(s))' + [ 0 5 0 0] A= 1 4 6 2

>> q=diag(diag(ones(diag(3)))) Q= 1 0 0
0 10
0 0 1

Sujet 6:

Exercice 1 : (6 pts)
Donnez le résultat MATLAB/SCILAB pour chacune des commandes suivantes :
(1pt)

(1pt)

. 10 2 10 3
(1pt) 7 2 0 1
10 -2 10 -1
0 1 4 8
.
7 2 1 1
3 -1 1 1
(1pt) 2 1 1 1
-2 -1 1 1

(12 16 36)
(1pt)
8 1
(1pt) -1 -2
1 2
3 2

Exercice 2 : (3 pts)
Donnez les résultats des expressions suivantes :

(1pt)
(1pt)

(1pt)

Exercice 3 : (11 pts)


Soit la fonction suivante :

Créez la fonction f ? (3 pts)


1pt
0.50pt

0.50pt

0.50pt

0.50pt

Dessiner la courbe de la
fonction f dans l’intervalle [-4, 0.50pt
4] ? (2 pts) 0.50pt

0.50pt

0.50pt
Proposez deux méthodes pour
dessiner les courbes de ces trois
sous fonctions dans la même 0.50pt
figure dans l’intervalle
[-4, 4] ? (4,50 pts) 0.50pt

0.50pt

0.50pt

0.50pt

0.50pt

0.50pt

0.50pt

0.50pt

Comment faire pour donner un


titre pour la figure et un titre 0.50pt
pour les deux axes ? (1.50 pts)
0.50pt

0.50pt

Sujet 7

Exercice 1 :
Soit la matrice suivante :
A partir de la matrice A, donner les commandes permettant de : (Commandes sans les réponses)

Questions Réponses
1. Mettre la troisième colonne dans C3.

2. Ajouter la ligne (5 4 3) en fin.

3. Ajouter la colonne (1 2 3) en fin.

4. Supprimer la deuxième ligne.

5. Mettre le nombre d'éléments de A dans Nb

6. Remplacer la deuxième ligne par (4 5 6 7).

7. Insérer la colonne (8 9) en deuxième


position.
8. Permuter les colonnes 1 et 2.

9. Remplacer les valeurs paires multiples de 3


par -1.
10. Donnez la valeur de A après exécution des
commandes.

Exercice 2 : Soient les matrices suivantes :

1. Donner les commandes matlab permettant de créer les matrices A et B, puis créer les
matrices C,D,E,F et G à partir de A et B.
2. Donnez les réponses matlab à chacune des commandes suivantes

>> A .* floor(B'/2)

>> A(2,:).^(0:2)

>> X + ones(2)

>> [A(end,end)+B(end,:)',C(:,[1,3])]

>> A == B'-6

>> Z = (mod(A,2)==0) == (B'<11)

Sujet 9:

Exercice 1 : Répondez par vrai ou faux, vous ne devez pas justifier vos réponses :

Questions Vrai Faux


1) La fonction diary() crée un tableau de chaînes de caractères vides.

2) Les mots suivants sont des mots clefs dans MATLAB : Break, CaSe,
ELSE.

3) Soit la matrice C, length(C) et size(C) donnent toujours le même résultat.

4) La multiplication entre tout type de matrices de dimension différente est


possible dans MATLAB.

5) rem(-4,3) et mod(-4,3) donnent le même résultat.

6) Soit la matrice carrée C = [1 2 ; 3 4].


strcmp(C,C) et isequal(C,C) donnent le même résultat.

7) Soit la matrice carrée C = [1 2 ; 3 4].


C^2 et C.^2 donnent le même résultat.

8) Soit A= 'Montreal', les fonctions size(a) et length(a) donnent le même


résultat.

9) (tout if peut être remplacé par un switch) & (tout for peut être remplacé
par un while)

10) nargin() et length(varargin) donnent toujours le même résultat.

11) Tous les types utilisés dans MATLAB sont considérés comme des
matrices même les chaînes de caractères.

12) Dans MATLAB, A \ B est équivalente à inv(A)* B.

13) La fonction format( ) n’affecte pas les calculs ou la sauvegarde des


variables en mémoire.
14) (tout if peut être remplacé par un switch) | (tout for peut être remplacé
par un while)
Exercice 2 : Cochez la (les) bonne(s) réponse(s).

Questions Propositions Vrai faux


1. La commande who permet : d'afficher la liste de toutes les variables.
de voir les valeurs de chaque variable du
workspace
de connaitre le nombre de variables créées
2. La commande save('Var_X') Sauvegarde toutes les variables du
workspace.
Sauvegarde uniquement la variable X.

Provoque une erreur.

3. La commande V(1:2:end)=[] Supprime toutes les valeurs de positions


impaires dans V

Supprime toutes les valeurs impaires dans


V.
Supprime la première, la deuxième et la
dernière valeur de V.
4. Si X est un vecteur ligne, la Un vecteur colonne avec les mêmes valeurs
commande diag(diag(X)) donne : que X

Un vecteur ligne avec les mêmes valeurs


que X
Une matrice diagonale avec X comme
diagonale.

Vous aimerez peut-être aussi