Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

tp_matlab

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 27

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 ‘nomfic.txt’ 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 ‘nomfic.txt’ 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

Vous aimerez peut-être aussi