Travaux Dirigés Matlab :
TD1 :
EXERCICE 1
clear all
clc
x = ceil(10*rand(1,5));
for i = 1:length(x) - 1
mini = x(i);
for j = i + 1:length(x);
if mini > x(j)
mini = x(j);
x(j) = x(i);
x(i) = mini
end
end
end
y = sort(x)
EXERCICE 2
clear all
clc
x = input('Entrer un vecteur: ');
mini = x(1);
maxi = x(1);
for i = 2:length(x)
if x(i) < mini
mini = x(i);
end
if x(i) > maxi
maxi = x(i);
end
end
disp('Le minimum du vecteur x est: ');
mini
disp('Le maximum du vecteur x est: ');
maxi
EXERCICE 3
clear all
clc
x = input('Entrer un angle: ');
n = 0;
y = 0;
while abs(y-sin(x)) > 1e-4
y = y + (((-1)^n)*x^(2*n+1))/factorial(2*n+1);
n = n + 1;
epsilon = abs(y-sin(x));
end
disp('La valeur du sinus de l''angle est: ');
y
sin(x)
EXERCICE 4
clear all
clc
x = input('Entrer un nombre: ');
while x > 0
if rem(x,2) == 0
disp('Le nombre x est pair.')
else
disp('Le nombre x est impair.')
end
x = input('Entrer un nombre: ');
end
EXERCICE 5
clear all
clc
m = input('Entrer le nombre de matières: ');
n = input('Entrer le nombre d''étudiants: ');
for i = 1:m
N(1:n,i) = input('Saisir les notes de la matière: ');
end
N
for j = 1:m
k = 0;
for i = 1:n
if N(i,j) < 10
k = k + 1;
end
end
fprintf('Le nombre d''échoués %d est: %d\n',j,k)
p = find(N(:,j) < 10);
Notes_Ech = N(p,j)
end
TD 2
EXERCICE 1
clear all
clc
A = -8:0.25:-5
B = 15:-1:3
C = linspace(-pi,pi,100)
D = [1 2 3; 2 3 1; 3 1 2]
D1 = D([2 3],[1 3])
D2 = D([2 3],1:2)
D3 = D([2 3],end)
D4 = D(:)
D5 = D([2 3],:)
D(1,:) = []
EXERCICE 2
clear all
clc
close all
fx = @(x) exp(-x/25);
gx = @(x) cos(x/10);
x = [1 10];
figure
subplot(2,2,[1,3])
fplot(fx,x,'b')
xlabel('abscisses')
ylabel('y = f(x)')
legend('f(x)')
title('Tracé de f(x) = exp(-x/25)')
subplot(2,2,[2,4])
fplot(gx,x,'r')
xlabel('abscisses')
ylabel('y = g(x)')
legend('g(x)')
title('Tracé de g(x) = cos(x/10)')
figure
fplot(fx,x,'b')
hold on
fplot(gx,x,'r')
xlabel('abscisses')
ylabel('y = f(x) et y = g(x)')
legend('f(x),g(x)')
title('Tracé de f(x) = exp(-x/25) et g(x) = cos(x/10)')
saveas (gcf,'Traces_fg','pdf')
EXERCICE 3
clear all
clc
[x,y] = meshgrid(-5:0.5:5,-5:0.5:5);
z = -(x.^2-y+11).^2-(x+y.^2-7).^2;
surface(x,y,z)
%view(3)
% mesh(x,y,z)
xlabel('axe OI')
ylabel('axe OJ')
title('surface')
EXERCICE 4
clear all
clc
y = [3.2;4.8;3.3;3.2;3.1;4.2;3.2;3.3]
n = length(y);
ycum = cumsum(y);
for i = 1:n
ybar(i) = ycum(i)/i;
end
ybar
y8 = ybar(8)
y8matlab = mean(y)
for i = 1:20
for j = 1:10
A(i,j) = i^2-j^3;
end
end
A
ENTRAINEMENT
EXERCICE 1
% Ecrire un programme qui calcul la somme de deux nombre A et B
clear all
clc
a = input('Veuillez entrer la valeur de a: ');
b = input('Veuillez entrer la valeur de b: ');
S = a + b;
disp('La somme S est:');
disp(S)
EXERCICE 2
% Ecrire un programme qui calcul le factoriel d'un nombre donné, en
% utilisant la boucle for
clear all
clc
x = input('Entrer un nonbre: ')
F1 = 1;
for i = 1:x
F1 = F1*i;
end
F1
% Avec la boucle while
i = 1;
F2 = 1;
while i < x
i = i + 1;
F2 = F2*i;
end
F2
EXERCICE 3
% Ecrire un programme qui permet de résoudre une équation du premier ordre
clear all
clc
a = input('a=');
b = input('b=');
if a == 0
disp('Impossible de resoudre cette équation')
else
x = -b/a;
end
x
EXERCICE 4
% Ecrire un programme qui permet de résoudre dan R une équation
% du second ordre
clear all
clc
a=input('Entrer la valeur de a:')
b=input('Entrer la valeur de b:')
c=input('Entrer la valeur de c:')
D=b*b-4*a*c
if D>0
x1=(-b-sqrt(D))/(2*a)
x2=(-b+sqrt(D))/(2*a)
elseif D==0
x=-b/(2*a)
else
disp('Pas de solution dans R')
end
EXERCICE 5
% Ecrire un programme qui demande à l'utilisateur d'entrer un nombre
% et affiche la table de multiplication de ce nombre en colonnes
clear all
clc
x = input('Entrer un nombre: ');
i = 1;
Tv = 1;
for i = 1:12
Tv(:,i) = x*i;
end
disp('La table de multiplication de x est: ')
Tv
EXERCICE 6
clear all
clc
% Résoudre l'équation f(x)=2x^2+6x-4
f = roots([2 6 -4])
% Résoudre l'équation g(x)=x^3-5x+1
g = roots([1 0 -5 1])
% Résoudre l'équation h(x)=x^4-2x^3+9x^2+x-7
h = roots([1 -2 9 1 -7])
% Résoudre l'équation i(x)=x^5/3+7x^4-5x/2+1/4
i = roots([1/3 7 0 0 -5/2 1/4])
% Résoudre l'équation i(x)=x^6+4x^2-1
j = roots([1 0 0 0 4 0 -1])
EXERCICE 7
clear all
clc
% Résolution d'un système d'équations à deux inconnues :
% 2x-3y=1
% -x+5y=8
A1 = [2 -3;-1 5];
B1 = [1;8];
S1 = A1\B1
% Résolution d'un système d'équations à deux inconnues :
% x-3y=-9
% 5x+5y=15
A2 = [1 -3;5 5];
B2 = [-9;15];
S2 = A2\B2
% Résolution d'un système d'équations à trois inconnues :
% 3x+2y-z=3
% 7x-5y+4z=-4
% x-y-16z=5
A3 = [3 2 -1;7 -5 4;1 -1 -16];
B3 = [3;-4;5];
S3 = A3\B3
EXERCICE 8
% Ecrire un programme permettant de calculer la moyenne de 10 notes d'un
% étudiant et affiche si celui-ci passe ou pas
clear all
clc
total = 0;
i = 0;
while i < 10
nombre = input('Entrer une note: ');
i = i + 1;
total = total + nombre;
end
Moyenne = total/10
if Moyenne >= 10
disp('Vous êtes admis.')
else
disp('Vous avez échoué.')
end
EXERCICE 9
clear all
clc
% créons un vecteur de taille 20 contenant des entiers aléatoires
% entre 0 et 20
U=fix(20*rand(1,20))
%rangeons les composantes par ordre croissant
V=sort(U)
%calculons les éléments deux à deux
W=V(1,1:19);X=V(1,2:20);Y=W+X
%écrivons le script le plus court possible pour calculer la somme
S=sum(V.^3)
EXERCICE 10
% 1. Définir un vecteur t qui contient 51 valeurs équidistantes
% entre -25 et 25 ;
t=linspace(-25,25,51);
% 2. Calculer le vecteur x = t^2 ;
x=t.^2;
% 3. Calculer le vecteur y qui contient t^3 mais dans l’ordre inverse ;
y=t(end:-1:1).^3;
% y=fliplr(t).^3; autre possibilité
% 4. Représenter x et y en fonction de t ;
Figure
subplot(2,1,1)
plot(t,x)
xlabel('t'); ylabel('x');
subplot(2,1,2)
plot(t,y)
xlabel('t'); ylabel('y');
% 5. Calculer la somme des éléments pairs de x ;
% l’une des trois lignes au choix
sum(x(fix(x/2)==x/2))
sum(x(rem(x,2)==0))
sum(x(mod(x,2)==0))
% 6. Calculer la somme des éléments positifs de y.
sum(y(y>0))
R. kadi