Vous êtes sur la page 1sur 28

Licence professionnelle 

: énergies renouvelables

Compt rendu des travaux pratiques

Module : Programmation et méthodes numériques Sous matlab

Réalisée par :

- Meryem Nafis
- mAryem Moubakir

Année universitaire : 2021/2023

Introduction
Tp1:
Tp2:
Tp3:
Tp4:
Tp5:
TP6:

Introduction
Matlab est un logiciel de calcul numérique commercialisé par la société MathWorks1. Il a
été initialement développé à la fin des années 70 par Cleve Moler, professeur de
mathématique à l’université du Nouveau-Mexique puis à Stanford, pour permettre aux
étudiants de travailler à partir d’un outil de programmation de haut niveau et sans apprendre le
Fortran ou le C.

Matlab signifie Matrix laboratory. Il est un langage pour le calcul scientifique, l’analyse de
données, leur visualisation, le développement d’algorithmes. Son interface propose, d’une
part, une fenêtre interactive type console pour l’exécution de commandes, et d’autre part, un
environnement de développement intégré (IDE) pour la programmation d’applications.

Matlab trouve ses applications dans de nombreuses disciplines. Il constitue un outil


numérique puissant pour la modélisation de systèmes physiques, la simulation de modèles
mathématiques, la conception et la validation (tests en simulation et expérimentation)
d’applications. Le logiciel de base peut être complété par de multiples toolboxes, c’est-à-dire
des boîtes à outils. Celles-ci sont des bibliothèques de fonctions dédiées à des domaines
particuliers. Nous pouvons citer par exemple : l’Automatique, le traitement du signal,
l’analyse statistique, la simulation des systèmes électriques …

INITIALISATION :

%le programme de calculer le factorielle


% on a demander a l'utilisateur d'entrer la valeur de a
a=input('entrer la valeur de a svp:');
% initialisation du s
s=1;
% boucle for pour calculé le produit (factorielle)
for i=1:a
s=s*i;
end
%pour afficher s
disp(s);
commande window :
entrer la valeur de a svp:3
le factorielle de votre nombre est :
6
 Le même programme mais le deuxième avec boucle while
%le programme de calculer le factorielle
% on a demander a l'utilisateur d'entrer la valeur de a
a=input('entrer la valeur de a svp:');
% initialisation du s
s=1;
% boucle while pour calculé le produit (factorielle)
while a>1
s=s*a;
a=a-1;
end
%pour afficher s
disp('le factorielle de votre nombre est :');
disp(s);
commande window :
entrer la valeur de a svp:6
le factorielle de votre nombre est :
720

TP1 :
Dans ce premier TP d’initiation nous avons utilisé des fonctions pratiques qui facilitent la
programmation sous Matlab

Exercice1 :

%Script 1 Premier script


a=1; %déclarer la valeur de a
b=2; %déclarer la valeur de a
c=a+b %la somme de a et b
Commande window :

>> Premierscript

c=3

 se programme permet de faire l’addition de deux nombre a et b

Exercice 2 :

 Pour résoudre cet exercice on utilise la fonction « Find» qui permet de vérifier la condition
qu’on a besoin d’étudier :

% déclaration matrice A
A = [1 2 -1 1;-1 1 0 3];
% la fonction find permet de trouver les éléments d'une matrice qui respect
la condition donnée
find(A>0)
commande window :
ans = 1 3 4 7 8

Exercice3 :
u=[1;-1;2];%la déclaration du vecteur colone
U=u';% transposé du vecteur colone u en vecteur ligne U
v=[10;-1;3];%la déclaration du vecteur colone
V=v';% transposé du vecteur colone v en vecteur ligne V
w=[5;-1;4];%la déclaration du vecteur colone
W=w';% transposé du vecteur colone w en vecteur ligne W
1)3*U% la multiplication de chaque élément du vecteur U par 3
2)norm (U,2)% norme 2 de vecteur U
3)2*U-V+5*W %ensemble des opérations
4)norm (2*U-V+5*W,1)%norme 1 de (2*U-V+5*W)
5)norm (W-4*V,inf)%norme infini de W-4V
6)angle =acos(( V(1)*W(1)+V(2)*W(2)+V(3)*W(3))/(norm(V)*norm(w)))
commande window :

1) 3 -3 6

2) 2.4495

3) 17 -6 21

4) 44

5) 35

6)0.3848

Exercice4:
 Pour calculer le module d’un nombre complexe on utilise la fonction «abs» 
 Pour calculer l’imaginaire de ce nombre on utilise « imag »
 Pour calculer le réal de ce nombre on utilise « real »

u = 11-7i ;
v = -1+3i ;

1) abs(11-7i) ;
ans = 13.0384

2) abs(-1+3i) 
ans = 3.1623

3) c = conj(v) ;
p1 = u*c

p1 = -32.0000 -26.0000i

4) cc = conj(u) ;
p2 = v*cc ;
disp(p2) ;
p2 = -32.0000 +26.0000i

5) r1 =u^3 ;
r2 = v^2 ;
r = r1 + r2 ;
real(r)

ans = -294

6) imag(r)

ans = -2204
Exercice 5 :
A=[1 2 3;-5 3 1;-10 0 3];%déclaration d'une matrice
A';%transposé du A
B=[1 -2 5;6 1 -1;1 0 -2];
B';
C=[10 -5;3 1];
AB=A.*B %la multiplication de chaque élement des deux matrice
BA=B.*A
A.*B'
I=eye(3)
D=I-B.*B'
Commande window
AB = 1 -4 1
-30 3 -1
-10 0 -6

BA =
1 -4 15
-30 3 -1
-10 0 -6

ans =
1 12 3
10 3 0
-50 0 -6
I =
1 0 0
0 1 0
0 0 1
D =

0 12 -5
12 0 0
-5 0 -3
%%le déterminant des matrices %%
detA=det(A)
detB=det(B)
detC=det(C)
detD=det(D)
E=A.*A'
detE=det(E)
commande window
detA =
109
detB =
-29
detC =
25
detD =
432

E =
1 -10 -30
-10 9 0
-30 0 9
detE =
-8919
%%les valeur propres de la matrice E
VLP=eig(E);
VLP=eig(A);
Commande window
VLP =-26.8748
9.0000
36.8748
VLP =2.2548 + 6.2197i
2.2548 - 6.2197i
2.4903 + 0.0000i
Exercice 6 :
 Cet exercice permet de déterminer les différences résultats afin de calculer les instructions
par plusieurs méthodes :
 on a deux matrices : A = [1 -1 7;-4 2 11;8 0 3] et B = [3 -2 -1;7 8 6;5 1 3]

3*A

On multiplie par 3 chaque élément de la matrice A :

a = 3*A ;
ans =
3 -3 21

-12 6 33

24 0 9
1) A.*B

On multiplie chaque élément de la matrice A  avec la matrice B :

c = A.*B ;
disp(c) ;

ans = 3 2 -7
-28 16 66
40 0 9

2) A*B
On fait le produit entre A et B :
d = A*B ;
disp(d) ;

ans = 31 -3 14
57 35 49
39 -13 1
3) A./B

On fait la division de chaque élément de la matrice A avec la matrice B :

l = A./B ;
disp(l) ;
ans = 0.3333 0.5000 -7.0000

-0.5714 0.2500 1.8333

1.6000 0 1.0000

5) cos(A)

Pour calculer le cos de la matrice A on utilise la fonction « cos » qui donne le cos de chaque élément
de cette matrice :

n = cos(A) ;
disp(n) ;

ans = 0.5403 0.5403 0.7539


-0.6536 -0.4161 0.0044
-0.1455 1.0000 -0.9900
6) exp(B)
Pour calculer l’exponentielle de la matrice B on utilise la fonction « exp » :

e = exp (B) ; disp(e) ;

ans = 1.0e+003 *

0.0201 0.0001 0.0004

1.0966 2.9810 0.4034

0.1484 0.0027 0.0201

Exercice 7:
script 7
%%%%Déclare les matrices A1 A2 A3 %%%%%%%%%%%
A1=[1 2 3;3 2 1;4 2 1];
A2=[0.75 0 0.25;0 1 0;0.25 0 0.75];
A3=[0.375 0 -0.125;0 0.5 0;-0.125 0 0.375];
%%%%%% la puissance des matrice^1 %%%%%%
A1.^1
A2.^1
A3.^1
Commande window
ans =
1 2 3
3 2 1
4 2 1
ans =

0.7500 0 0.2500
0 1.0000 0
0.2500 0 0.7500

ans =
0.3750 0 -0.1250
0 0.5000 0
-0.1250 0 0.3750
%%%%%%%%%% la puissance des matrices ^2
A1.^2
A2.^2
A3.^2
Commande window
ans =
1 4 9
9 4 1
16 4 1
ans =

0.5625 0 0.0625
0 1.0000 0
0.0625 0 0.5625
ans =
0.1406 0 0.0156
0 0.2500 0
0.0156 0 0.1406
%%%%%%%%%% la puissance des matrices ^3
A1.^3
A2.^3
A3.^3
Commande window
ans =

1 8 27
27 8 1
64 8 1

ans =
0.4219 0 0.0156
0 1.0000 0
0.0156 0 0.4219

ans =
0.0527 0 -0.0020
0 0.1250 0
-0.0020 0 0.0527
%%%%%%%%%%%%%%%% n=infi %%%%%%%%%
A1.^120000%si n=1200000
Commande window
ans =
1 Inf Inf
Inf Inf 1
Inf Inf 1
A2.^120000
Commande window
ans =
0 0 0
0 1 0
0 0 0
A3.^120000

Commande window
ans =
0 0 0
0 0 0
0 0 0
 si n est très grande le nombre des éléments des matrices
tans vers le zéros A2 et A3
Exercice 8:

A = [1 -1 7;-4 2 11;8 0 3]
B = [3 -2 -1;7 8 6;5 1 3]
V = [1 2 4 7] ;
%Cette vecteur détermine le nombre d’ordre de chaque éléments de la matrice
A(v) = A(v) + 0.01 ;
%Cette ligne permet de faire l’addition de 0.01 pour juste les éléments de
la vecteur v dans la matrice A.
%Le résultat de cet addition est comme le suivant :
ans = 1.0100 -3.9900 -0.9900 7.0100
B(v) = abs(B(v)) ;
%Cette ligne permet de reproduire les éléments de la vecteur v dans la
matrice B positifs :
ans = 3 7 2 1
Exercice 9:
V=linspace(-5,5,11)
B=linspace(-500,500,1001)
D=linspace(0,pi,10)
Commande window
V =

-5 -4 -3 -2 -1 0 1 2 3 4
5

D =

0 0.3491 0.6981 1.0472 1.3963 1.7453


2.0944 2.4435 2.7925 3.1416
Exercice 10 :
Pour résoudre cette problématique on a besoin d’afficher 2 conditions nécessaires n < a

et a < 2.^n avec l’utilisation de boucle « while ». Et pour afficher juste une seule valeur de n qui est
le plus petit on utilise boucle « if ».

Remarque : la fonction « break » permet d’arrêter la boucle while.

a = input('entrez un nombre real SVP :') ;

for n = 1:1:10

while n < a & a < 2.^n


s = size(n) ;
c = s(2) ;
for k = 1:2
if (n < n(k))==0
disp(n(k)) ;
end
end

break
end
end

Examples :
entrez un nombre real SVP : 3.2
2
entrez un nombre real SVP : 8.65
4
1)
On a H une matrice de dimension 3 et pour calculer cette matrice on exploite la
fonction :
hij = 1/ (i + j -1)
On donne pour i ou bien j un intervalle de 1 vers 3 parce que on a cette matrice de dimension
3, et on fixe l’autre par 1 :
i = 1 ;
for j = 1:3 ;
h = 1/(i + j -1) ;
disp(h) ;
end

La solution :
1

0.5000

0.3333
TP2 :
Dans ce TP on va étudier plusieurs problématiques par écrire des scripts bien détaillées sans utiliser
des fonctions évolués par Matlab.

Exercice 1 :
%%%%%%%% l'utilisateur peut entrer les valeur de x y z %%%%%%%%%%%
x=input('entrer la valeur de x svp:');
y=input('entrer la valeur de y svp:');
z=input('entrer la valeur de z svp:');
%%%%%%%%%%%branchement conditionnel%%%%%%%%%%%
if ((x>y)&&(x>z))
disp('le plus grande nombre est:');
disp(x);
elseif((y>x)&&(y>z))
disp('le plus grande nombre est:');
disp(y);
elseif ((z>x)&&(z>y))
disp('le plus grande nombre est:');
disp(z);
end
commende window
entrer la valeur de x svp:12300
entrer la valeur de y svp:321
entrer la valeur de z svp:0.9951
le plus grande nombre est:
12300

le programme permet de déterminer le plus grande des trois


nombre x y z par l’utilisation d’un branchement
conditionnel avec if
si x est le plus grand le programme doit l’afficher même chose
pour x et y

Exercice 2 :

Cet exercice demande d’afficher le plus grand élément dans un vecteur

v = input('entrez un vecteur') ;
s = size(v) ; % on calcule la taille du vecteur
c = s(2) ;
l = s(1) ;
for h = 1:c %Le nombre d'ordre des éléments du vecteur v
c = (v > v(h)) ;
if (v > v(h)) == 0 % Si on a pas un nombre supérieur à v(h) on affiche
v(h)
disp(v(h)) ;
end

end
Exercice 3 :
% le programme permet d'afficher le plus petit élément d'un vecteur
v=input('entrer votre vecteur:');
z=numel(v); % la fonction numel permet de déterminer le nombre des éléments
d'un vecteur
%boucle for permet de remplacé h suivent le numéro d'ordre
for h=1:z
c=(v<v(h));
% si la condition est vraie en doit afficher v(h)
if c==0
disp(v(h));
end
end

command window : entrer votre vecteur:[1 0.5 2 3]


0.5000
Exercice 4 :

Cet exercice demande la somme de l’élément d’un vecteur

V = input('entrez votre vecteur SVP :') ;


S = 0 ;
for i = V % Les éléments du vecteur
S = S + i ; % la somme des éléments du vecteur
end
disp(S) ;
Exercice 5 :

M=input('entrer votre matrice:');


s=0;
for i=M'%la transposé de matrice M
s=s+i;
end
disp ('la somme des éléments des colonnes de votre matrice:');
disp(s);
Commande window
Entrer votre matrice:[1 5 6;9 8 7]
La somme des éléments des colonnes de votre matrice :
10
13
13
 le programme permet de faire la somme des colonnes d’une
matrice

Exercice 6 :

Cet exercice demande la moyenne des élément d’ un vecteur

V= input('entrez votre vecteur SVP :') ;


S = size(V) ;
l = S(1) ;
c = S(2) ; % le nombre des colonnes du vecteur
l = 1 ; % une seule ligne car on a un vecteur
P = c * l ; % un vecteur contient une seule ligne et c colonnes
X = 0 ;

for i = V
X = X + i ; % la somme des éléments du vecteur
moy = X/P ; % la moyenne des éléments du vecteur
end
disp(moy) ;
Exercice 7 :
v=[10 20 10 19 14 15 16]; %déclaration du vecteur ensemble des éléments
entre 0 et 20
z=size(v);% pour déterminé la taille du matrice v
% initialisation de s, a, j
s=0;
a=0;
j=0;
% premier for pour déterminer le nombre des notes supérieur a 10
for i=v
if i>=10
s=s+1;
end
a=a+i;% pour la somme des éléments du vecteur v
end
%z(2)pour déterminer le nombre des colonnes du vecteur v
m=a/z(2);% la moyennes la somme des éléments diviser par le nombre du
colonnes
% pour déterminer le nombre des notes supérieur a la moyenne
for i=v
if i>m
j=j+1;
end
end
disp('le nombre des notes supérieur ou égale a 10 est:');
disp(s);
disp('le nombre des notes supérieur a la moyenne est:');
disp(j);
commande window :
le nombre des notes supérieur ou égale a 10 est:
7

le nombre des notes supérieurs a la moyenne est:


4
Exercice 8 :

Cet exercice demande de faciliter la tâche à l’utilisateur de calculer la résistance totale pour chaque
type de montage :

R1 = input('entrez la valeur de la 1er résistance :');


R2 = input('entrez la valeur de la 2eme résistance :');
R3 = input('entrez la valeur de la 3eme résistance :');
t = input('entrez 1 si vous avez besoin le montage en série ou bien 2 si
vous avez le montage en parallèle SVP :');
if t == 1
Req1 = R1 + R2 + R3 ;% la résistance totale du montage en série
disp(Req1)
end
if t == 2
Req2 = (R1 * R2 * R3)/(R1 + R2 + R3) ;% la résistance totale de la
montage en parallèle
disp(Req2)
end
TP3 :
Exercice 1:
% déclaration d'un tableau
x=[-5:0.01:5];
% déclaration du fonction f(x)
f=@(x)((x.^5-3)./sqrt(x.^2+1));
f(1)
f(0)
% tracer la fonction f(x)
plot(x,f(x));
commande window
f1 =-1.4142
f2 = -3
Exercice 2 :

Cet exercice facilite la tâche à l’utilisateur de calculer le périmètre et la surface juste par entrer la
valeur du rayon.

R = input('entrez la valeur de rayon :') ;


D = R*2 ; % diamètre de cercle
Per = pi*D ; % périmètre de cercle
s = pi*(R^2) ; % surface de cercle
disp(Per) ;
disp(s) ;
Example :
entrez la valeur de rayon :2
12.5664 « périmètre »

12.5664 « surface »
Exercice 3 :
%le programme permet de faire le produit et la somme de N
N=input('entrer la valeur de N SVP:');
s=0;
a=1;
for i=1:N
a=a*i;
s=s+i;
end
disp(a);
disp(s);
commande window :
entrer la valeur de N SVP:7
5040

28

Exercice 4 :

Cet exercice facilite la tâche à l’utilisateur de calculer la pression d’un gaz parfait.
V = input('entrez la valeur de volume SVP :') ;
c = input('entrez la valeur de température en c SVP:') ;
T = 273.15 + c ; % transformer la température en kelvin
n = 1 ; % La quantité de matière en mol
R = 8.314 ; % La constante universelle des gaz parfaits
P = (n*R*T)/V ; % La pression en Pa
disp(P) ;

Exemple :

entrez la valeur de volume SVP : 25


entrez la valeur de température en c SVP: 30
100.8156 « pression »
Tp4 :
Modélisation des charges résistives et inductives sur le réseau
3 phasé
% permet de l'utilisateur d'entrer les valeurs du f ,vef,t,a
f=input('entrer la valeur de f svp:');
vef=input('entrer la valeur efficace svp:');
t=input('entrer le nombre de période t svp:');
a=input('entrer le déphasage a svp: ');
% l'expression mathématique des trois tension v1 v2 v3
v1=(sqrt(2)*vef)*(sin(2*pi*f*t+a));
v2=(sqrt(2)*vef)*(sin(2*pi*f*t+a-((2*pi)./3)));
v3=(sqrt(2)*vef)*(sin(2*pi*f*t+a-((4*pi)./3)));
figure(1);
plot(t,v1,'g-',t,v2,'r-',t,v3,'y-');
xlabel('time (secondes)');% pour définir l’abscisses (x)
ylabel('amplitude (volts)');% pour définir ordonnées (y)
tille(' représentation d un système triphasé');%pour ajouter le titre a la
figure
commande window
entrer la valeur de f svp:2
entrer la valeur efficace svp:120
entrer le nombre de période t svp:[-1:0.01:1]
entrer le déphasage a svp: 0
Charge résistive

R=input('entrer la valeur du résistance R svp:');


I1=((sqrt(2)*vef)./R)*(sin(2*pi*f*t));
I2=(((sqrt(2)*vef)./R)*(sin(2*pi*f*t-((2*pi)./3))));
I3=(((sqrt(2)*vef)./R)*(sin(2*pi*f*t-((4*pi)./3))));
plot(t,I1,'r--',t,I2,'g--',t,I3,'y--');
xlabel('time (secondes)');
ylabel('amplitude (volts)');
f=input('entrer la valeur de f svp:');
vef=input('entrer la valeur efficace svp:');
t=input('entrer le nombre de période t svp:');
R=input('entrer la valeur du résistance R svp:');
% la valeur maximal du tension
Vmax=(sqrt(2)*vef);
% les trois courants de l'inductance
IL1=-(Vmax./R)*(sin(2*pi*f*t+(pi/2)));
Il2=-((Vmax./R)*(sin(2*pi*f*t+(pi/2)-((2*pi)./3))));
IL3=-((Vmax./R)*(sin(2*pi*f*t+(pi/2)-((4*pi)./3))));
%les trois tension (v1,v2,v3)
v1=(Vmax).*(sin(2*pi*f*t));
v2=(Vmax).*(sin(2*pi*f*t-((2*pi)./3)));
v3=(Vmax).*(sin(2*pi*f*t-((4*pi)./3)));
%la fonction plot pour afficher tout les graphes
plot(t,I1,'r-',t,I2,'g-',t,I3,'y-',t,v1,'m-',t,v2,'k-',t,v3,'b-');
xlabel('time (secondes)');
ylabel('amplitude (volts)');
% la fonction légend permet d'ajouter une légend à chaque ensemble de
% données
legend('v1','v2','v3','IL1','IL2','IL3');
TP5 :
Dans ce Tp on va étudier plusieurs méthodes numériques sous Matlab pour faciliter les
calculs qu’ils sont un peu compliquées ou bien ils prennent beaucoup de temps à résoudre.

Exercice 1 :

Cet exercice demande de calculer la racine de 7.2 et de 2.31^1/3 par la méthode de la


décothomé.

1) x = √ 7.2 alors : f(x) = x 2 - 7 = 0

Le script :
%f(x) = x^2 - 7.21
a=2 ;
b=3 ;
c=(a+b)/2; % Le point milieu
pre=1e-5; % précision

while abs(c^2 - 7.21) > pre %La valeur absolu de f(c)


if (a^2 - 7.21) * (c^2 - 7.21) <0 % f(a)*f(c) < 0
b=c;
end
if (c^2 - 7.21) * (b^2 - 7.21) <0 % f(c)*f(b) < 0
a=c;
end
c=(a+b)/2;

end
disp(c) ; % la solution de la racine de 7.21

1
2) x = 2.31 3 alors : f(x) = x 3 - 2.31 = 0
Le script :
%f(x) = x^3 - 2.31
a=1 ;
b=2 ;
c=(a+b)/2; % Le point milieu
pre=1e-5; % précision

while abs(c^3 - 2.31) > pre %La valeur absolu de f(c)


if (a^3 - 2.31) * (c^3 - 2.31) <0 % f(a)*f(c) < 0
b=c;
end
if (c^3 - 2.31) * (b^3 - 2.31) <0 % f(c)*f(b) < 0
a=c;
end
c=(a+b)/2;

end
disp(c) ; % la solution de 2.31^1/3

Exercice 2 :
Dans cet exercice on va refaire le même exercice précédant mais maintenant avec la
méthode de Newton :
Le script :
x=0:0.05:4;
f=@(x) x^2 - 7.21 ; % la fonction général
fd=@(x) 2*x ; % la dérivée de la fonction
x1=input ('x1=');
tol=0.001; % La précision
i = 0;
while abs(f(x1)) > tol
f1=f(x1);
f1d=fd(x1);
x2=x1-(f1/f1d); % on implique la relation de cette méthode
f2=f(x2); % avec l’incrémentation i jusqu’à la vérification de
x1=x2; % la boucle while et on s’arrête
i = i+ 1 ;
disp(x2) ;

end

La solution :
x1=2
2.8025
2.6876
2.6851

Exercice 3 :
Cet exercice demande de calculer l’intégral de cos(t) par les méthodes des rectangles
et on les compare par le calcul analytique :

1) La méthode du point milieu


La méthode du point milieu composite est obtenue en subdivisant l’intervalle [a, b] en n
sous-intervalles Ij = [xj , xj+1], j = 1, ..., n,.
En répétant pour chaque sous intervalle la formule du point milieu :

I=( x(j+1)- x(j) )*f((x(j)+ x(j+1))/2)

syms t
a = int(1*cos(t),t,pi/2,pi) ; % le calcule d’intégral analytiquement
disp(a) ;
n = 2 ; % le nombre des rectangles
a = pi/2 ; % la 1er limite
b = pi ; % la 2éme limite
h = 0.258 ; % le pas
I=0;
x= a:h:b ;
for j=1:n
xb=(x(j)+ x(j+1))/2;
I=( x(j+1)- x(j) )*f(xb); % la formule du point milieu
end
disp(I) ;
La solution :
-1 la valeur analytique

-0.7367 la valeur du point milieu

2) La méthode des rectangles gauche

Les étapes de cette méthode sont les mêmes de la méthode de point milieu, la seule
différance s’agit dans la formule générale de cette méthode.
( x(j+1)- x(j) )*f(x(j))

Le script :
syms t
a = int(1*cos(t),t,pi/2,pi) ;
disp(a) ;
n = 2 ;
a = pi/2 ;
b = pi ;
h = 0.258 ;
I=0;
x= a:h:b ;
for j=1:n
I=( x(j+1)- x(j) )*f(x(j)); %la formule générale de la méthode des rectangles gauche
end
disp(I) ;
La solution :

-1

-0.9973

3) La méthode des rectangles droite

( x(j+1)- x(j) )*f(x(j+1))

Le script :
syms t
a = int(1*cos(t),t,pi/2,pi) ;
disp(a) ;
n = 2 ;
a = pi/2 ;
b = pi ;
h = 0.258 ;
I=0;
x= a:h:b ;
for j=1:n
I=( x(j+1)- x(j) )*f(x(j)); %la formule générale de la méthode des rectangles droite
end
disp(I) ;

La solution :
-1

-0.7367

4) La méthode des Trapèzes :

Dans la méthode du trapèze on joint f(xj) et f(xj+1) dans l’intervalle [x1, xn] . Le calcul de
l’intégrale dans ce cas revient au calcul de l’aire d’un trapèze comme illustrer à la Figure suivante :
S = (Petite_base + Grande_base) /2× Hauteur

On a petite base et grande base correspondent à f(xj) et f(xj+1) et Hauteur à ’h’ (h = b−a/n ), et on donne
la formule de trapèze ainsi :
I=( x(j+1)- x(j) )* (f(x(j+1))+ f(x(j)))/2

Le script :

syms t
a = int(1*cos(t),t,pi/2,pi) ;
disp(a) ;
n = 2 ;
a = pi/2 ;
b = pi ;
h = 0.258 ;
I=0;
x= a:h:b ;
for j=1:n
I=( x(j+1)- x(j) )* (f(x(j+1))+ f(x(j)))/2;
end
disp(I) ;

La solution :
-1

-0.8670

Conclusion :

On conclure que les différentes méthodes donnent des résultats presque proches entre les
quelles mais le plus proche à la valeur analytique c’est la méthode des rectangles gauche.
TP6 :

En analyse mathématique, les séries de Fourier sont un outil fondamental dans l’étude des
fonctions périodique. C’est à partir de ce concept que s’est développée la branche des
mathématique connue sous le nom d’analyse harmonique, c’est pour cela on va étudier dans
cette exercice le signal d’un onduleur avec ses harmoniques.

Pour rédiger le signal de cet onduleur on va exploiter la formule totale de la série de fourier :

F = a0/2 + an * cos(w0*t) + bn * sin(w0*t)


T
avec a0 = (2/T)* ∫ f ( t ) dt
0
T
an = (2/T)* ∫ f ( t )∗cos ⁡(w 0∗t)dt
0

T
bn = (2/T)* ∫ f ( t )∗sin ⁡(w 0∗t )dt
0

Le script :

fs = 100;
T = 2 ; % période
w0 = 2*pi/T ; % pulsation de signal
k = 0:1/fs:6-1/fs ;
y = 12*square(w0*k) ; % le signal carré

syms t % variable de temps symbolique pour calculer l’intégral facilement


N = 5 ; % le nombre des coefficients des harmoniques
n = 1:N ;
a0 = (2/T)*(int(12,t,0,1) + int(-12,t,1,2)) ;
an = (2/T) *(12*int(cos(n*w0*t),t,0,1) -12*int(cos(n*w0*t),t,1,2));
bn = (2/T) *(12*int(sin(n*w0*t),t,0,1) -12*int(sin(n*w0*t),t,1,2)) ;
F = a0/2 ; % la moyenne dévisée par 2
for i = 1:N
F = F + an(i)*cos(i*w0*k) + bn(i)*sin(i*w0*k) ;
end
figure
hold on % rassembler les figures dans une seule figure
plot(k,y,'b')
plot(k,double(subs(F,t,k)),'r') % transformer des symbols vers le numériqu
hold off
grid on
s = size(F) ;
c = s(2) ;
l = s(1) ;
v = 5:-1:1 ;
bar(F(v),'r') % representation frequentiel

La solution :

Pour N = 1, c’est le signal fondamental de l’onduleur :

Pour N = 5
Si on augmante le nombre des coefficients des harmoniques pour N = 10 ,on
trouve :

3) La représentation fréquentiel
Cet représentation permet de filtrer les harmoniques afin de réaliser un onduleur avec
une bonne qualité.
La représentation pour N = 5 :
Conclusion :
Pour réaliser un bon onduleur il faut être l’amplitude fondamentale supérieure pour un
coefficient de N = 1 par rapport les harmoniques qu’ils ont des coefficient de N >= 2 .

Vous aimerez peut-être aussi