0% ont trouvé ce document utile (0 vote)
29 vues20 pages

Introduction à MATLAB : Polynômes et Graphisme

Transféré par

lumieredumonde765
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues20 pages

Introduction à MATLAB : Polynômes et Graphisme

Transféré par

lumieredumonde765
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 1 : Initiations à Matlab (Premier pas)

UNIVERSITÉ D’EBOLOWA
ENSET

COURS DE MASTER RECHERCHE

Méthodes numériques

1
Chapitre 2 les polynômes et Résolution d’équations linéaires

CHAPITRE 2 LES POLYNOMES, RESOLUTION


D’EQUATIONS LINEAIRES ET GRAPHISME SOUS
MATLAB

1- les polynômes
Les polynômes sont traités comme des vecteurs de coefficients dans Matlab. Trouver
les racines d'un polynôme f(x) consiste à chercher les valeurs de x qui annulent ce
polynôme. MATLAB représente un polynôme comme une matrice uniligne.
Dans MATLAB, un polynôme et ses racines sont des vecteurs. Le polynôme étant un
vecteur uniligne et les racines un vecteur unicolonne.
Fonctions : Exemple : p(x) = 3x3 + 7x2 + 6x + 14
on écrit p = [3 7 6 14];
conv(p,q) produit de polynômes p et q Pour obtenir les racines d'un tel
polynôme, on utilise la commande
deconv(p,q) Division de deux polynômes p et q roots.
>>p = [3 7 6 14]
roots(p) trouve les racines d'un polynôme >>r = roots(p)

poly(racines) trouve le polynôme à partir des ses racines

polyval(p,x) évalue le polynôme en un ou plusieurs points(x=points)

polyder(p) Calculer la dérivée du polynôme p

polyint(p) Calculer l’intégrale du polynôme p

Exercice résolu : Soit les polynômes: a(x)=x3+2x2+3x+4 et


Résolution b(x)=x3+4x2+9x+16
a- Multiplier ces deux polynômes.
close all b- Additionner ces polynômes.
clc c- Soit c le polynôme obtenu après la multiplication de a et b, faire
clear all la division de c par b.
a = [1 2 3 4]; d- tracer la courbe p(x)=x3+4x-7x-10 pour 100 valeurs de xϵ [-1,3]
b = [1 4 9 16];

2
Chapitre 2 les polynômes et Résolution d’équations linéaires

c = conv(a,b) %Multiplication des deux polynômes


d = a + b %addition des deux polynômes
[q,r] = deconv(c,b)% Division de deux polynômes
%q : représente le quotient de la division
%r : représente le reste de la division
x = linspace(-1,3,100);
p = [1 4 -7 -10];
v = polyval(p,x);
plot(x,v); %Tracé de la courbe p
title('x^3 + 4x^2 - 7x - 10'),grid

polyval évalue le polynôme p(x) aux différentes valeurs de x et place le résultat dans
v. Ce sont ces valeurs de v en fonction de x qui constituent la courbe qui représente le
polynôme p(x).

Exercice 2
Soit p(x)=3x4-7x3+2x2+1
1) trouver les racines de p(x) et reconstruire p à partir de ses racines.
2) soit x=-5 :0.5 :5, tracer la dérivé de p (dp) et la primitive de p (ip) en fonction
de x dans la fenêtre graphique.
3) évaluer le polynôme p(x) en un point donné x1=5.

3
Chapitre 2 les polynômes et Résolution d’équations linéaires

>> A = [2 -1 ; 1 1] ;
>> B = [2 ; 5] ;
>> X = A\B
L’opérateur anti-slash, ‘\’, donne systématiquement un résultat. Dans le cas où le
système d’équations n’admet pas de solution : ce résultat sera faux. Dans le cas d’une
infinité de solutions, l’opérateur donnera une solution particulière (c’est-à-dire l’une
des solutions possibles).
Exercice
Soit le système d’équations suivant :
4x+3y+2z+t=1 On suppose que
3x+4y+3z+2t=1 l’écriture matricielle de
2x+3y+4z+3t=-1ce système est A*X=b
x+2y+3z+4t=-1
I-donnez les commandes permettant de créer :1) la matrice A 2) le vecteur b
3) le déterminant de la matrice A
II- donnez la commande permettant de résoudre ce système.

4
Chapitre 3 : scripts et graphisme sous Matlab

3 : SCRIPTS ET GRAPHISME SOUS MATLAB

1- Les scripts
Le type le plus simple de programme MATLAB s'appelle un script car ils n'a pas
d'arguments d'entrée ou de sortie. Il est utile pour automatiser des séries de
commandes MATLAB, comme des calculs à effectuer de manière répétée à partir de
la ligne de commande ou des séries de commandes à référencer. Un script est un
fichier qui contient plusieurs lignes séquentielles de commandes MATLAB et
d'appels de fonctions. Le script doit avoir une extension de la forme « .m ».
On peut exécuter un script en tapant son nom sur la ligne de commande, ou bien aller
à l’onglet File, new et puis M-file.

Figure 3.1 ouvrir un script


Exercice 1 : écrire un programme Matlab qui trace la fonction suivante pour x varie
entre 0 et 20 avec un pas de 0.1 (écrire le libeller des axes et donner un titre à la figure
avec des grilles.
 3 x 3  1 
f (x )  sin 
 
 x ² 

1 .Ouvrir un nouveau script et taper le programme suivant :


clear all %clear all pour supprimer toutes les variables
créées auparavant

close all %close all pour fermer toutes les fenêtres


inutiles.

5
Chapitre 3 : scripts et graphisme sous Matlab

clc %pour nettoyer l’écran


%tp1.exo1
x=0:0.1:20
f=sin((3*sqrt(x.^3+1))./(x.^2))

2. Nommer et sauvegarder un script


Enregistrez le fichier dans le dossier actuel. Cliquer sur « file » puis « save as » pour
sauvegarder et lui donner un nom
Eviter dans la dénomination des scripts d’utiliser: deux mots séparées, le nom d’une
fonction Matlab et les caractères indiquant un opérateur spécifique à Matlab
3. Exécution d’un script
Pour exécuter le script, taper son nom dans la ligne de commande, on peut également
exécuter des scripts à partir de l'éditeur en utilisant le bouton Exécuter (flèche verte
). Si le script contient une (des) erreur(s), la ligne contenant l’erreur ainsi le type
d’erreurs sont affichées dans la fenêtre des commande.
2- Graphisme sous « Matlab »
Partant du principe qu’une image vaut mieux qu’un long discours, MATLAB offre un
puissant système de visualisation qui permet la présentation et l’affichage graphique
des données d’une manière à la fois efficace et facile. On va présenter les principes de
base indispensables pour dessiner des courbes en MATLAB.
2.1 Représentation graphique 2D
Pour tracer un graphe en 2D, on fait appel à la fonction Matlab « plot ». On continue
avec l’exercice 1
%suite exo 1
plot (x,f)
Apres exécution, une fenêtre apparait contenant le graphe de la fonction
mathématique.
Remarque : à chaque fois vous ajouter des commandes sauvegardez et exécutez votre
programme.
-Quadrillage : ajouter la commande: grid
- Titres : ajouter la commande: title(‘le graphe de f(x)’)
- Titres des axes : ajouter les commandes :
xlabel(‘x’)
ylabel(‘y’)
- Couleurs : ajouter à l’expression plot (x, f,’r’)
- Type de trait : ajouter à l’expression plot (x, f,’+r’)

6
Chapitre 3 : scripts et graphisme sous Matlab

- gtext(‘titre d’une position’) :permet d’ajouter un texte au graphique avec la souris


- text(posx,posy,’un texte’) : permet d’écrire un texte donnée à une position précise
de coordonnées (posx,posy)
le graphe de la fonction f(x)
1

0.8
titre d'une position
0.6

0.4

0.2

0
y

-0.2

-0.4

-0.6

-0.8

-1
0 2 4 6 8 10 12 14 16 18 20
x

Figure 3.2 graphe de la fonction f(x)


2.2 Tableau de styles et couleurs de trait

7
Chapitre 3 : scripts et graphisme sous Matlab

Exercice 2 :
Soit un vecteur x contenant des valeurs comprises entre 0 et 10 avec un pas de 0.05.

- Ecrire le fichier (f.m) qui crée la fonction f (x )  x exp(x ²)  0.2 / x 3


- Ecrire (prog.m) qui trace le graphe de f(x), Ajouter le libellé des axes (titres) et
donner un titre à la figure avec des grilles.
- Mettre la courbe de (𝑥) en ligne pointillée courte rouge
%solution exo2
%fonction f.m
function y=f(x)
y=x.*exp(-x.^2)-0.2./x.^3;
end
%programme prog.m
clear all
close all
clc
x=0:0.05:10
y=f(x)
plot(x,y,':r','linewidth',3)
xlabel('axe x')
ylabel('axe y')
title('la fonction f(x)= x*exp(-x^2)-0.2 /x^3')
grid
la fonction f(x)= x*exp(-x2)-0.2 /x3
200

-200

-400

-600
axe y

-800

-1000

-1200

-1400

-1600
0 1 2 3 4 5 6 7 8 9 10
axe x

Figure 3.3 graphe de la fonction f(x)=xexp(-x²)-0.2/x3

8
Chapitre 3 : scripts et graphisme sous Matlab

2.3 Ecrire des fonctions simples


Pour écrire une fonction dans Matlab, la première règle à respecter est de donner au
fichier .m le même nom que la fonction que l’on est en train d’écrire. Par exemple,
une fonction qui s’appellerait mfact devra être écrite dans le fichier mfact.m. Pour
écrire une fonction dans Matlab, on doit d’abord donner le nom des valeurs en sortie
générées par la fonction, puis le nom de la fonction, et enfin les noms des paramètres
en entrée de la fonction :
 function [sortie1, sortie2, ...] = nom_fonction(entree1,entree2, ...)
...
end
 nom_fonction=@(x) [fonction], exemple : f=@(x) [sin(x)]

3- Tracer deux graphes dans deux fenêtres graphiques séparées


On utilise figure(n) (n est le numéro de la fenêtre graphique) pour tracer deux graphes
dans deux fenêtres graphiques séparées.
Exemple : écrire un programme Matlab qui trace les deux fonctions suivantes dans
deux fenêtres graphiques pour x varie entre 0 et 4𝜋 avec un pas de ᴫ/100 (écrire le
f (x )  sin(3 x )
libeller des axes et donner un titre à la figure avec des grilles.
g (x )  cos(3 x )

clear all
close all
clc
x= [0 : pi/100 : 4*pi] ;
y=sin (3*pi*x) ;
y1=cos(3*pi*x);
figure(1)
plot(x, y)
grid
title('le graphe de la fonction sin (3*pi*x)')
xlabel('la variable x')
ylabel('la fonction y')
figure(2)
plot(x, y1)
grid
title('le graphe de la fonction cos(3*pi*x)')
xlabel('x')
ylabel('la fonction y1')

9
Chapitre 3 : scripts et graphisme sous Matlab

le graphe de la fonction sin (3*pi*x) le graphe de la fonction cos(3*pi*x)


1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

la fonction y1
la fonction y

0 0

-0.2 -0.2

-0.4 -0.4

-0.6 -0.6

-0.8 -0.8

-1 -1
0 2 4 6 8 10 12 14 0 2 4 6 8 10 12 14
la variable x x

Figure 3.4 graphes dans deux fenêtres graphiques séparées


4- Tracer deux graphes dans la même fenêtre graphique
4.1 La fonction ‘hold’
la fonction ‘hold’ permet de tracer deux ou plusieurs graphes dans la même fenêtre
graphique.
Exemple: le même exemple précédent
clear all
close all
clc
x=[0 : pi/100 : 4*pi] ;
y=sin (3*pi*x) ;
y1=cos(3*pi*x);
plot(x, y,'linewidth',2)
grid
hold
plot(x, y1,'r','linewidth',1.5)
legend('sin (3*pi*x)',' cos(3*pi*x)')
title('le graphe des fonction sin (3*pi*x),cos(3*pi*x)')
xlabel('x')
ylabel('y')

10
Chapitre 3 : scripts et graphisme sous Matlab

le graphe des fonction sin (3*pi*x),cos(3*pi*x)


1
sin (3*pi*x)
0.8 cos(3*pi*x)

0.6

0.4

0.2

0
y

-0.2

-0.4

-0.6

-0.8

-1
0 2 4 6 8 10 12 14
x

Figure 3 .5 graphes dans la même fenêtre graphique.


4.2 La fonction ‘subplot’
subplot(m,n,p) divise la figure actuelle en une grille m par n et crée des axes à la
position spécifiée par p. MATLAB numérote les positions des sous-plots par ligne. Le
premier sous-plot correspond à la première colonne de la première ligne, le deuxième
sous-plot correspond à la deuxième colonne de la première ligne, et ainsi de suite. Si
des axes existent à la position spécifiée, cette commande fait de ces axes les axes
actuels. La syntaxe de cette commande est la suivante : Subplot(m,n,p) avec m:
nombre de lignes, n: nombre de colonnes, p: la position du graphe.

11
Chapitre 3 : scripts et graphisme sous Matlab

Figure 3 .6 division de la figure avec la commande subplot.


%exemple
clear all
close all
clc
x= linspace(0,4*pi,100);
y=sin(pi*x/4) ;
y1=cos(pi*x/4);
y2=5*sin(pi*(x-1))+1;
y3=5*cos(2*(x-pi/2))+0.25;
subplot(2,2,1);plot(x, y)
title('sin(pi*x/4)')
xlabel('x')
ylabel('y')
grid
subplot(2,2,2);plot(x, y1)
title('cos(pi*x/4)')
xlabel('x')
ylabel('y')
grid
subplot(2,2,3);plot(x, y2)
title('5*sin(pi*(x-1))+1')
xlabel('x')
ylabel('y')
grid
subplot(2,2,4);plot(x, y3)
title('5*cos(2*(x-pi/2))+0.25')
xlabel('x')
ylabel('y')
grid

12
Chapitre 3 : scripts et graphisme sous Matlab

Figure 3 .7 graphes de l’exemple donné

5. Représentation graphique 3D
5.1 La fonction ‘ plot3’
Une courbe en 2D est définie par une liste de doublets (x,y), une courbe en 3D peut
être définie par une liste de triplets (x,y,z), plot3(x,y,z) trace des coordonnées dans un
espace tridimensionnel elle est identique à la commande « plot » en ajoutant le
troisième axe z.
%Exemple
clear all
close all
clc
t = linspace(0,pi,500);
x = sin(t).*cos(10*t);
y = sin(t).*sin(10*t);
z = cos(t);
plot3(x,y,z,'linewidth',2)
xlabel('x');
ylabel('y');
zlabel('z');
grid ;
13
title('plot 3D')
Chapitre 3 : scripts et graphisme sous Matlab

plot 3D

0.5

0
z

-0.5

-1
1
0.5 1
0 0.5
0
-0.5 -0.5
y -1 -1
x

Figure 3 .8 Plot 3D

Pour modifier la rotation des axes, on utilise la flèche de rotation (figure) soit en
tapant la commande « view » dans le programme.

Fléche de rotation
Exemple (precedent) :
clear all
close all
clc
t = linspace(0,pi,500);
x = sin(t).*cos(10*t);
y = sin(t).*sin(10*t);
z = cos(t);
plot3(x,y,z,'linewidth',2)
xlabel('x');
ylabel('y');
zlabel('z');
grid ;
title('plot 3D')
subplot(2,2,1);plot3(x,y,z,'linewidth',2);
xlabel('x');

14
Chapitre 3 : scripts et graphisme sous Matlab

ylabel('y');
zlabel('z');
view(2); %Display the plot in a 2-D view
title(' plot in a 2-D view');
grid La commande view a deux arguments
subplot(2,2,2);plot3(x,y,z,'-hg'); qui sont l’angle de vision horizontal et
xlabel('x'); l’angle de vision vertical en degré. Par
ylabel('y'); défaut ces angles ont respectivement les
zlabel('z'); valeurs −37.5° et 30°. view(37.5,30),
view(-10,57); view(az,el), az :azimuth angle el :
title('az=-10, el=57'); elevation angle.
grid Afficher le graphe en vue 2-D :
view(2) .Obtenir les angles d'azimut et
subplot(2,2,3);plot3(x,y,z,'-+m');
d'élévation pour un tracé: [caz,cel] =
xlabel('x');
view
ylabel('y');
zlabel('z');
view(0,45);
title('az=0, el=45');
grid
subplot(2,2,4);plot3(x,y,z,'-vc');
xlabel('x');
ylabel('y');
zlabel('z');
view(90,0);
title('az=90, el=0');
grid

plot in a 2-D view az=-10, el=57


1 1

0.5 0
z

-1
0 1
y

-0.5 0

-1 y 1
-1 0 1 -1 -1 0
x
x
az=0, el=45 az=90, el=0
1

0.5

1 1 0
z

0 0 -0.5
y
z

-1 -1 -1
-1 0 1 -1 0 1
x y

Figure 3 .9 Plot 3D avec différents ‘View’

15
Chapitre 3 : scripts et graphisme sous Matlab

Sauvegarder une figure : La commande saveas ou print permet de sauvegarder la figure


d’une fenêtre graphique dans un fichier sous divers formats d’images. La syntaxe des
commande: saveas(fig,filename), saveas(fig,filename,formattype)
print(filename,formattype), print(filename,formattype,formatoptions)
où –fig : désigne le numéro(ou nom) de la fenêtre graphique. Si ce paramètre n’est pas spécifié,
c’est la fenêtre active qui est prise en compte. – filename : est le nom du fichier dans lequel est
sauvegardée la figure. Si aucune extension de nom n’est donnée, une extension par défaut est
ajoutée au nom du fichier en fonction du format choisi (.ps pour du PostScript, .jpg pour du
jpeg, par exemple). –formattype : format de sauvegarde de la figure. Ces formats sont
nombreux. On pourra obtenir la liste complète en tapant help plot. Ex :
saveas(h,'Courbe.png'), print(fig,'MySavedPlot','-dpng')

5.2 La fonction ‘ Mesh’


On veut tracer une fonction à deux variables ; c à d une fonction de la forme
z=f(x, y)
 [X,Y] = meshgrid(x,y) renvoie les coordonnées d'une grille 2-D basée sur les
coordonnées contenues dans les vecteurs x et y. X est une matrice où chaque
ligne est une copie de x, et Y est une matrice où chaque colonne est une copie
de y. La grille représentée par les coordonnées X et Y a une longueur(y) de
lignes et une longueur(x) de colonnes.
 mesh (X,Y,Z) crée un tracé maillé, c'est-à-dire une surface tridimensionnelle.
Exemple : Tracer la fonction f définie : (x , y )  x ²  y ² définie dans le domaine
[-1,1] x [-2,2].
x=[-1:0.2:1];
y=[-2:0.2:2];
[X ,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
mesh(X, Y, Z)

16
Chapitre 3 : scripts et graphisme sous Matlab

0
2
1 1
0 0.5
0
-1 -0.5
-2 -1

Figure 3 .10 graphe avec la commande ‘mesh’

Les fonctions les plus courantes sont


-mesh, trace une série de lignes entre les points de la surface en mode «lignes
cachées» ;
-meshc, fonctionne comme mesh mais en ajoutant les courbes de niveau dans le
plan (x,y) ;
-surf, peint la surface avec une couleur variant selon la cote ;
-surfl, qui peint la surface comme si elle était éclairée ;
-surfc, qui fonctionne comme mesh mais en ajoutant les courbes de niveau dans le
plan (x,y).

Reprenons l'exemple précédent pour comparer les quatre premières fonctions :


x = [-1:0.2:1];
y = [-2:0.2:2];
[X,Y] = meshgrid(x,y);
Z = X.^2 + Y.^2;
subplot(2,2,1)
mesh(X, Y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title('mesh');
subplot(2,2,2)
meshc(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('meshc');
subplot(2,2,3)
surf(X, Y, Z);

17
Chapitre 3 : scripts et graphisme sous Matlab

6. les diagrammes
La commande bar(x, y) dessine un diagramme sous forme de barres des
valeurs de y aux emplacements spécifiés par x.
Exemple 1
x = 1983:3:2013
y = [75 90 105 125.5 142 150 181 210 216 253 291.5];
bar(x,y)
xlabel('année')
ylabel('croissance')

18
Chapitre 3 : scripts et graphisme sous Matlab

300

250

200
croissance

150

100

50

0
1983 1986 1989 1992 1995 1998 2001 2004 2007 2010 2013
année

Figure 3 .12 diagramme de la croissance

x ² y ²

Exercice1 : tracer la fonction z  cos(x ) cos( y )e 20 pour x variant de -5 à 5
avec un pas de 0.2 et y de -6 à 6 pas de 0.2, en utilisant les fonctions vu
précédemment (mesh, meshc, surf, surfl, surfc) et les comparer dans la même fenêtre
graphique (utiliser subplot).
-Changer le pas de x et y à 0.1
Z=cos(x).*cos(y).*exp(-sqrt(x.^2+y^2) /20)

Exercice2 : tracer la fonction z  ye (x ² y ²) pour x et y variant de -2 à 2 avec un


pas de 0.1, en utilisant la commande « view » avec différentes valeurs de ‘ az’ et ‘el’
et les comparer dans la même fenêtre graphique (utiliser subplot).
Z= Y.*exp ( -X.^2 - Y.^2)

19
Chapitre 3 : scripts et graphisme sous Matlab

20

Vous aimerez peut-être aussi