CPI - 1ère Année
2019-2020
TP1 – Matlab
Exercice 1
2+5∗3
1) Utiliser l’éditeur de commandes de Matlab pour calculer :
= 25 + 17 ; = ; = 5 +3∗4 ; =
4
= ln 5 + √3 ; = sin −1 ; = tan
2 4
2) Afficher et calculer :
# = 1 + 4$ ; = 3 + 6$ ; # + ; # ∗ ; # ;
− # ; | − #| ; arg − # ; ) − # ; *+ − #
Exercice 2
− Affecter la chaîne de caractères ‘geo’ à une variable a.
− Affecter la chaîne de caractères ‘technique’ à une variable b.
− Concaténer les chaînes de caractères a et b et mettre le résultat dans une variable
c.
− Accéder au 3ème et 5ème caractère de la chaîne c.
Exercice 3
− Afficher les nombres entre 3 et 15 par pas de 1.
− Afficher les nombres entre 3 et 15 par pas de 4.
− Afficher les nombres entre 45 et 10 par pas de -5.
− Afficher les nombres entre 0 et 4π par pas de π.
− Afficher les nombres entre 0 et 4π par pas de π/2.
Exercice 4
− Créer le vecteur ligne , = 2 7 − 4 3 .
−1
3
Créer le vecteur colonne - = . 0.
6
−
0
− Donner le vecteur w transposé du vecteur u.
− Calculer la somme des vecteur v et w et leur produit scalaire.
− Donne les dimensions des vecteurs u et v.
1
Exercice 5
− Créer les vecteurs u = 15 3 7 − 4 et v = 1 − 2 4 20 .
− Donner la taille de ces vecteurs.
− Calculer la somme et le produit scalaire de ces vecteurs.
− Créer un vecteur w qui contient les éléments du vecteur u classés en ordre
croissant.
− Calculer la somme des éléments de chacun des vecteurs u et v.
− Calculer le minimum et le maximum des éléments des vecteurs u et v.
Exercice 6
1 5 −4 7 −2 5
− Créer les deux matrices 3 = 4 7 10 36 et 7 = 4−9 8 36 .
15 6 8 12 9 1
− Donner la taille de ces matrices.
− Effectuer la somme et le produit de ces matrices.
Calculer leurs inverses 39# et 7 9#.
− Calculer leurs déterminants.
Calculer le produit de 7 9# par 39# .
−
Calculer l’inverse de 3 ∗ 7. Qu’est ce que vous remarquez ?
−
−
− Créer les matrices identité, nulle et unité d’ordres 4.
− Créer une matrice aléatoire d’ordre 5.
Exercice 7
5 1 4 0
1) Construire la matrice bloc
: = ; 3 8 1 7<
1 5 3 1
8 −2 0 −9
en utilisant deux vecteurs lignes et deux matrices carrées d’ordre 2 chacune.
2) En utilisant les fonctions eye, ones et zeros, construire les matrices suivantes :
1 0 0 1 0 0
2 0 −3 0 0 1 0 0 1 0
A D
A = ;0 2 0 −3 < ; B= @
@1
0 0 1 0 0 1
C
0 0 1 1 1 1 0 0 0C
0 0 1 1 1 1 1 0 0 0
?1 1 1 0 0 0B
Exercice 8
A l’aide de son écriture matricielle, résoudre le système linéaire suivant :
FG + HI + JK = H
E G−I−K = LN
−G + JI + K = M
2
CPI - 1ère Année
2019-2020
TP2
Graphisme en Matlab
Exercice 1
1) Tracer la fonction = ∗ sin x sur l’intervalle [−10, 10] en utilisant des traits
coupés ‘- - ‘ en couleur verte.
2) Tracer la fonction = √ + log +3 + sur l’intervalle [0, 20] en utilisant
des diamants en couleur rouge.
Exercice 2
1) Tracer les fonctions suivantes sur la même figure :
"#
y = x − 20x − x + 2 ; z = 2e − x + 20x − 5 x ∈ [−5,5]
Donner le titre ‘Temps’ à l’axe x, le titre ‘Concentration’ à l’axe y et le titre
‘Concentration en fonction du temps’ à la figure, puis une légende à chaque courbe.
Modifier les couleurs, les marques et les limites des axes x et y.
2) Tracer les fonctions = sin x , y = cos x , y = x , y = x sur 2x2 figures
séparées sur la même feuille.
3) Créer un fichier que vous nommez ‘[Link]’ contenant des données sur trois
colonnes, puis tracer sur deux figures séparées, la deuxième et la troisième colonne
en fonction de la première.
Exercice 3
Sur la même fenêtre, tracer les 6 courbes suivantes, en 3x2 figures, en mettant du
quadrillage et en donnant le titre indiqué :
Courbe 1 : = cos ∈ [0, 4π] , titre : ‘Cosinus’
Courbe 2 : = sin ∈ [0, 4π] , titre : ‘Sinus’
π π
Courbe 3 : = tan ∈ [− * , *] , titre : ‘Tangente’
Courbe 4 : = +,--./ ∈ [−1, 1] , titre : ‘Arccosinus’
Courbe 5 : = +,-/01 ∈ [−1, 1] , titre : ‘Arcsinus’
Courbe 6 : = +,-231 ∈ [−√3, √3] , titre : ‘Arctangente’
1
Exercice 4
# 5#
• Tracer la fonction 4 = pour , ∈ [−4, 4] .
• Donner un titre à chaque axe et un titre à la figure.
• Tracer les courbes de niveau de z dans le plan (x, y), tracer 20 lignes iso-valeurs.
Exercice 5
Sur la même fenêtre, en 2x2 figures, tracer sur la première ligne les courbes 3D des
fonctions suivantes et sur la deuxième ligne leurs courbes de niveaux :
4 = + 4 ; 4 = 2 − 5
2
CPI - 1ère Année
2019-2020
TP3
Programmer sous Matlab
Exercice 1
1) Ecrire une fonction nommée ’ f ’ qui prend en entrée une variable x et retourne
f(x) = x − 4x − x + 3
2) Ecrire une fonction nommée ’ g ’ qui prend en entrée deux variables x et y et
retourne
g(x, y) = x y + xy − x + 2y
Exercice 2
1) Ecrire une fonction nommée ’matdata’ qui prend en entrée une matrice A et
retourne son déterminant, sa transposée et son inverse.
2) Ecrire une fonction nommée ’vectdata’ qui prend un vecteur u et retourne sa
taille, le minimum de ses éléments et un vecteur contenant ses éléments classés par
ordre croissant.
Exercice 3
1) Ecrire une fonction nommée ’somme’ qui prend un entier n et retourne la somme:
= 1 + 2 + 3 + ⋯+
2) Ecrire une fonction nommée ’sommegeo’ qui prend un réel x et un entier n et
retourne la somme :
= 1+ + + ⋯+
Exercice 4
1) Ecrire une fonction nommée ’fact’ qui utilise la boucle for pour calculer le
factoriel d’un entier n.
On rappelle que ! = 1× 2 ×…×
2) Reprendre la même fonction en utilisant cette fois-ci la boucle while.
Exercice 5
Ecrire une fonction nommée ’equation.m’ qui prend comme entrée les coefficients a,
b et c de l’équation + + = 0 et retourne les racines de cette équation.
1
CPI - 1ère Année
2019-2020
Corrigé du TP1 – Matlab
Exercice 1
2+5∗3
1) Utiliser l’éditeur de commandes de Matlab pour calculer :
= 25 + 17 ; = ; = 5 +3∗4 ; =
4
= ln 5 + √3 ; = sin −1 ; = tan
2 4
>> a=25+17
a =
42
>> b=(2+5*3)/4
b =
4.2500
>> c=5^2+3*4^3
c =
217
>> d=exp(2)
d =
7.3891
>> x=log(5)+sqrt(3)
x =
3.3415
>> y=sin(pi/2)-1
y =
0
>> z=tan(pi/4)
z =
1.0000
2) Afficher et calculer :
# = 1 + 4$ ; = 3 + 6$ ; # + ; # ∗ ; # ;
− # ; | − #| ; arg − # ; ) − # ; *+ − #
>> z1=1+4i
z1 =
1.0000 + 4.0000i
1
>> z2=3+6i
z2 =
3.0000 + 6.0000i
>> z1+z2
ans =
4.0000 +10.0000i
>> z1*z2
ans =
-21.0000 +18.0000i
>> conj(z1)
ans =
1.0000 - 4.0000i
>> conj(z2)
ans =
3.0000 - 6.0000i
>> z2-z1
ans =
2.0000 + 2.0000i
>> abs(z2-z1)
ans =
2.8284
>> angle(z2-z1)
ans =
0.7854
>> real(z2-z1)
ans =
2
>> imag(z2-z1)
ans =
2
Exercice 2
− Affecter la chaîne de caractères ‘geo’ à une variable a.
− Affecter la chaîne de caractères ‘technique’ à une variable b.
− Concaténer les chaînes de caractères a et b et mettre le résultat dans une variable
c.
− Accéder au 3ème et 5ème caractère de la chaîne c.
>> a='geo'
a =
geo
2
>> b='technique'
b =
technique
>> c=[a b]
c =
geotechnique
>> c(3)
ans =
o
>> c(5)
ans =
e
Exercice 3
− Afficher les nombres entre 3 et 15 par pas de 1.
− Afficher les nombres entre 3 et 15 par pas de 4.
− Afficher les nombres entre 45 et 10 par pas de -5.
− Afficher les nombres entre 0 et 4π par pas de π.
− Afficher les nombres entre 0 et 4π par pas de π/2.
>> 3:15
ans =
3 4 5 6 7 8 9 10 11 12 13
14 15
>> 3:4:15
ans =
3 7 11 15
>> 45:-5:10
ans =
45 40 35 30 25 20 15 10
>> 0:pi:4*pi
ans =
0 3.1416 6.2832 9.4248 12.5664
>> 0:pi/2:4*pi
ans =
0 1.5708 3.1416 4.7124 6.2832 7.8540 9.4248
10.9956 12.5664
Exercice 4
− Créer le vecteur ligne , = 2 7 − 4 3 .
3
−1
3
Créer le vecteur colonne - = . 0.
6
−
0
− Donner le vecteur w transposé du vecteur u.
− Calculer la somme des vecteur v et w et leur produit scalaire.
− Donne les dimensions des vecteurs u et v.
>> u=[2 7 -4 3]
u =
2 7 -4 3
>> v=[-1;3;6;0]
v =
-1
3
6
0
>> w=u'
w =
2
7
-4
3
>> v+w
ans =
1
10
2
3
>> dot(v,w)
ans =
-5
>> size(u)
ans =
1 4
>> size(v)
ans =
4 1
Exercice 5
− Créer les vecteurs u = 15 3 7 − 4 et v = 1 − 2 4 20 .
4
− Donner la taille de ces vecteurs.
− Calculer la somme et le produit scalaire de ces vecteurs.
− Créer un vecteur w qui contient les éléments du vecteur u classés en ordre
croissant.
− Calculer la somme des éléments de chacun des vecteurs u et v.
− Calculer le minimum et le maximum des éléments des vecteurs u et v.
>> u=[15 3 7 -4]
u =
15 3 7 -4
>> v=[1 -2 4 20]
v =
1 -2 4 20
>> size(u)
ans =
1 4
>> size(v)
ans =
1 4
>> u+v
ans =
16 1 11 16
>> dot(u,v)
ans =
-43
>> w=sort(u)
w =
-4 3 7 15
>> sum(u)
ans =
21
>> sum(v)
ans =
23
>> min(u)
ans =
-4
>> max(u)
ans =
15
5
>> min(v)
ans =
-2
>> max(v)
ans =
20
Exercice 6
1 5 −4 7 −2 5
− Créer les deux matrices 3 = 4 7 10 36 et 7 = 4−9 8 36 .
15 6 8 12 9 1
− Donner la taille de ces matrices.
− Effectuer la somme et le produit de ces matrices.
Calculer leurs inverses 39# et 7 9#.
− Calculer leurs déterminants.
Calculer le produit de 7 9# par 39# .
−
Calculer l’inverse de 3 ∗ 7. Qu’est ce que vous remarquez ?
−
−
− Créer les matrices identité, nulle et unité d’ordres 4.
− Créer une matrice aléatoire d’ordre 5.
>> A=[1 5 -4 ; 7 10 3 ; 15 6 8]
A =
1 5 -4
7 10 3
15 6 8
>> B=[7 -2 5 ; -9 8 3 ; 12 9 1]
B =
7 -2 5
-9 8 3
12 9 1
>> [m,n]=size(A)
m =
3
n =
3
>> [p,q]=size(B)
p =
3
q =
3
>> A+B
ans =
6
8 3 1
2 18 6
27 15 9
>> A*B
ans =
-86 2 16
-5 93 68
147 90 101
>> det(A)
ans =
439
>> det(B)
ans =
-1108
>> inv(A)
ans =
0.1412 -0.1458 0.1253
-0.0251 0.1549 -0.0706
-0.2460 0.1572 -0.0569
>> inv(B)
ans =
0.0171 -0.0424 0.0415
-0.0406 0.0478 0.0596
0.1597 0.0785 -0.0343
>> inv(B)*inv(A)
ans =
-0.0067 -0.0025 0.0028
-0.0216 0.0227 -0.0119
0.0290 -0.0165 0.0164
>> inv(A*B)
ans =
-0.0067 -0.0025 0.0028
-0.0216 0.0227 -0.0119
0.0290 -0.0165 0.0164
On Remarque que : :∗; 9<
= ;9< ∗ :9<
>> eye(4)
ans =
1 0 0 0
7
0 1 0 0
0 0 1 0
0 0 0 1
>> zeros(4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
>> rand(5)
ans =
0.7577 0.7060 0.8235 0.4387 0.4898
0.7431 0.0318 0.6948 0.3816 0.4456
0.3922 0.2769 0.3171 0.7655 0.6463
0.6555 0.0462 0.9502 0.7952 0.7094
0.1712 0.0971 0.0344 0.1869 0.7547
Exercice 7
5 1 4 0
1) Construire la matrice bloc
= = > 3 8 1 7?
1 5 3 1
8 −2 0 −9
en utilisant deux vecteurs lignes et deux matrices carrées d’ordre 2 chacune.
>> u=[5 1 4 0];
>> v=[3 8 1 7];
>> A=[1 5 ; 8 -2];
>> B=[3 1 ; 0 -9];
>> E=[u ; v ; A B]
E =
5 1 4 0
3 8 1 7
1 5 3 1
8 -2 0 -9
8
2) En utilisant les fonctions eye, ones et zeros, construire les matrices suivantes :
1 0 0 1 0 0
2 0 −3 0 0 1 0 0 1 0
D G
A = >0 2 0 −3 ? ; B= C 0 0 1 0 0 1
0 0 1 1 C1 1 1 0 0 0F
F
0 0 1 1 1 1 1 0 0 0
B1 1 1 0 0 0E
>> A=[2*eye(2) -3*eye(2) ; zeros(2) ones(2)]
A =
2 0 -3 0
0 2 0 -3
0 0 1 1
0 0 1 1
On peut aussi construire la matrice A en partant des colonnes par :
>> A=[[2*eye(2);zeros(2)] [-3*eye(2);ones(2)]]
A =
2 0 -3 0
0 2 0 -3
0 0 1 1
0 0 1 1
>> B=[eye(3) eye(3) ; ones(3) zeros(3)]
B =
1 0 0 1 0 0
0 1 0 0 1 0
0 0 1 0 0 1
1 1 1 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0
On peut aussi construire la matrice B en partant des colonnes par :
>> B=[[eye(3);ones(3)] [eye(3);zeros(3)]]
B =
1 0 0 1 0 0
0 1 0 0 1 0
0 0 1 0 0 1
1 1 1 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0
Exercice 8
A l’aide de son écriture matricielle, résoudre le système linéaire suivant :
9
IJ + KL + MN = K
H J−L−N = OQ
−J + ML + N = P
Le système linéaire s’écrit sous la forme matricielle : R∗S= T
On définit la matrice A et le second membre b
>> A=[2 3 4 ; 1 -1 -1 ; -1 4 1]
A =
2 3 4
1 -1 -1
-1 4 1
>> b=[3 0 5]'
b =
3
0
5
La solution du système linéaire est donnée par : J = :9< ∗ U
>> x=inv(A)*b
x =
0.7778
1.6667
On vérifie que : ∗ J est bien égal à b.
-0.8889
>> A*x
ans =
3.0000
0.0000
5.0000
10
CPI - 1ère Année
2019-2020
Corrigé du TP2
Graphisme en Matlab
Exercice 1
1) Tracer la fonction = ∗ sin x sur l’intervalle [−10, 10] en utilisant des traits
coupés ‘- - ‘ en couleur verte.
>> x=-10:0.1:10;
>> y=x.*sin(x);
>> plot(x,y,'--g')
2) Tracer la fonction = √ + log +3 + sur l’intervalle [0, 20] en utilisant
des diamants en couleur rouge.
>> x=0:0.1:20;
>> y=sqrt(x)+log(x+3)+x.*exp(-x);
>> plot(x,y,'dr')
1
Exercice 2
1) Tracer les fonctions suivantes sur la même figure :
"#
y = x − 20x − x + 2 ; z = 2e − x + 20x − 5 x ∈ [−5 ,5]
Donner le titre ‘Temps’ à l’axe x, le titre ‘Concentration’ à l’axe y et le titre
‘Concentration en fonction du temps’ à la figure, puis une légende à chaque courbe.
Modifier les couleurs, les marques et les limites des axes x et y.
>> x=-5:0.1:5;
>> y=x.^4-20*x.^2-x+2;
>> plot(x,y)
>> hold on
>> z=2*exp(-x.^2)-x.^2+20*x-5;
>> plot(x,z)
>> xlabel('Temps')
>> ylabel('Concentration')
>> title('Concentration en fonction du temps')
>> legend('courbe 1','courbe 2')
2) Tracer les fonctions = sin x , y = cos x , y = x , y = x pour x ∈ [−10, 10] sur
2x2 figures séparées sur la même feuille.
>> x=-10:0.1:10;
>> subplot(2,2,1)
>> plot(x,sin(x))
>> subplot(2,2,2)
>> plot(x,cos(x))
>> subplot(2,2,3)
>> plot(x,x)
>> subplot(2,2,4)
>> plot(x,x.^2)
2
3) Créer un fichier que vous nommez ‘[Link]’ contenant des données sur trois
colonnes, puis tracer sur deux figures séparées, la deuxième et la troisième colonne
en fonction de la première.
Voir cours pour le traçage de courbes à partir de données lus dans
un fichier.
Exercice 3
Sur la même fenêtre, tracer les 6 courbes suivantes, en 3x2 figures, en mettant du
quadrillage et en donnant le titre indiqué :
Courbe 1 : = cos ∈ [0, 4π] , titre : ‘Cosinus’
Courbe 2 : = sin ∈ [0, 4π] , titre : ‘Sinus’
π π
Courbe 3 : = tan ∈ [− * , *] , titre : ‘Tangente’
Courbe 4 : = +,--./ ∈ [−1, 1] , titre : ‘Arccosinus’
Courbe 5 : = +,-/01 ∈ [−1, 1] , titre : ‘Arcsinus’
Courbe 6 : = +,-231 ∈ [−√3, √3] , titre : ‘Arctangente’
>> subplot(3,2,1)
>> x=0:0.1:4*pi;
>> plot(x,cos(x)), title('Cosinus'), grid
>> subplot(3,2,2)
>> plot(x,sin(x)), title('Sinus'), grid
>> subplot(3,2,3)
>> x=-pi/3:0.1:pi/3;
>> plot(x,tan(x)), title('Tangente'), grid
>> subplot(3,2,4)
>> x=-1:0.1:1;
3
>> plot(x,acos(x)), title('Arccosinus'), grid
>> subplot(3,2,5)
>> plot(x,asin(x)), title('Arcsinus'), grid
>> subplot(3,2,6)
>> x=-sqrt(3):0.1:sqrt(3);
>> plot(x,atan(x)), title('Arctangente'), grid
Exercice 4
# 5#
• Tracer la fonction 4 = pour , ∈ [−4, 4] .
• Donner un titre à chaque axe et un titre à la figure.
>> x=-4:0.2:4;
>> y=-4:0.2:4;
>> [X,Y]=meshgrid(x,y);
>> Z=exp(-X.^2-Y.^2);
>> surf(X,Y,Z) ou bien >> mesh(X,Y,Z)
>> xlabel('Abscisses')
>> ylabel('Ordonnées')
>> zlabel('Hauteur')
4
• Tracer les courbes de niveau de z dans le plan (x, y), tracer 20 lignes iso-valeurs.
>> contour(X,Y,Z,20)
On peu aussi tracer les courbes de niveau en utilisant des barres de
couleurs en écrivant :
>> contourf(X,Y,Z,20)
>> colorbar
5
Exercice 5
Sur la même fenêtre, en 2x2 figures, tracer sur la première ligne les courbes 3D des
fonctions suivantes et sur la deuxième ligne leurs courbes de niveaux :
4 = + 4 ; 4 = 2 − 5
>> x=-10:0.5:10;
>> y=-10:0.5:10;
>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+4*Y.^2;
>> T=2*X.^2-5*Y.^2;
>> subplot(2,2,1)
>> surf(X,Y,Z) ou bien >> mesh(X,Y,Z)
>> subplot(2,2,2)
>> surf(X,Y,T) ou bien >> mesh(X,Y,T)
>> subplot(2,2,3)
>> contourf(X,Y,Z,20)
>> colorbar
>> subplot(2,2,4)
>> contourf(X,Y,T,20)
>> colorbar
6
CPI - 1ère Année
2019-2020
Corrigé du TP3
Programmer sous Matlab
Exercice 1
1) Ecrire une fonction nommée ’ f ’ qui prend en entrée une variable x et retourne
f(x) = x − 4x − x + 3
Nom du programme « f.m »
function y=f(x)
y = x^3 - 4*x^2 - x + 3 ;
end
Exemple d’exécution dans la fenêtre de commandes :
>> f(1)
ans =
-1
>> f(5)
ans =
23
2) Ecrire une fonction nommée ’ g ’ qui prend en entrée deux variables x et y et
retourne
g(x, y) = x y + xy − x + 2y
Nom du programme « g.m »
function z=g(x,y)
z = x^2*y + x*y^3 - x + 2*y;
end
Exemple d’exécution :
>> g(1,2)
ans =
13
>> g(0,-3)
ans =
-6
1
Exercice 2
1) Ecrire une fonction nommée ’matdata’ qui prend en entrée une matrice A et
retourne son déterminant, sa transposée et son inverse.
Nom du programme « matdata.m »
function [d,B,C]=matdata(A)
d = det(A);
B = A';
C = inv(A);
end
Exemple d’exécution :
>> A=[4 6 ; 3 5]
A =
4 6
3 5
>> [d,B,C]=matdata(A)
d =
2
B =
4 3
6 5
C =
2.5000 -3.0000
-1.5000 2.0000
2) Ecrire une fonction nommée ’vectdata’ qui prend un vecteur u et retourne sa
taille, le minimum de ses éléments et un vecteur contenant ses éléments classés par
ordre croissant.
Nom du programme « vectdata.m »
function [n,x,v]=vectdata(u)
n = length(u);
x = min(u);
v = sort(u);
end
Exemple d’exécution :
>> u = [5 -2 7 8.3 2 15];
>> [n,x,v]=vectdata(u)
2
n =
6
x =
-2
v =
-2.0000 2.0000 5.0000 7.0000 8.3000 15.0000
Exercice 3
1) Ecrire une fonction nommée ’somme’ qui prend un entier n et retourne la somme:
= 1 + 2 + 3 + ⋯+
Nom du programme « somme.m »
function S = somme(n)
S = 0;
for i=1:n
S = S + i^2;
end
end
Exemple d’exécution :
>> S=somme(3)
S =
14
>> S=somme(5)
S =
55
N.B : On peut aussi utiliser l’instruction while au lieu de la boucle
for. Le code s’écrit :
function S = somme(n)
S = 0;
i = 0;
While (i <= n)
S = S + i^2;
i = i + 1;
end
end
2) Ecrire une fonction nommée ’sommegeo’ qui prend un réel x et un entier n et
retourne la somme :
3
= 1+ + + ⋯+
Nom du programme « somme.m »
function S = sommegeo(x,n)
S = 0;
for i=0:n
S = S + x^i;
end
end
Exemple d’exécution :
>> S=sommegeo(1,10)
S =
11
>> S=sommegeo(2,4)
S =
31
N.B : Avec l’instruction while, le code s’écrit :
function S = sommegeo(x,n)
S = 0;
i = 0;
while (i <= n)
S = S + x^i;
i = i + 1;
end
end
Exercice 4
1) Ecrire une fonction nommée ’fact’ qui utilise la boucle for pour calculer le
factoriel d’un entier n.
On rappelle que ! = 1× 2 ×…×
Nom du programme « fact.m »
function F = fact(n)
F = 1;
for i=1:n
F = F * i;
end
end
Exemple d’exécution :
4
>> F=fact(5)
F =
120
2) Reprendre la même fonction en utilisant cette fois-ci la boucle while.
Nom du programme « fact.m »
function F = fact(n)
F = 1;
i = 1;
while (i<=n)
F = F * i;
i = i + 1;
end
end
Exercice 5
Ecrire une fonction nommée ’equation.m’ qui prend comme entrée les
coefficients a, b et c de l’équation + + = 0 et retourne les racines de cette
équation.
Nom du programme « equation.m »
function equation(a,b,c)
% Résolution de l'équation a*x^2+b*x+c=0
delta = b^2 - 4*a*c
if (delta < 0)
disp('Pas de racines reelles')
elseif (delta == 0)
disp('Racine double')
x = -b/(2*a)
elseif (delta > 0)
disp('Deux racines distinctes :')
x1 = (-b-sqrt(delta))/(2*a)
x2 = (-b+sqrt(delta))/(2*a)
end
end
Exemple d’exécution :
>> equation(5,2,3)
delta =
-56
Pas de racines reelles
5
>> equation(1,2,1)
delta =
0
Racine double
x =
-1
>> equation(1,2,-3)
delta =
16
Deux racines distinctes :
x1 =
-3
x2 =
1