INTRODUCTION
Matlab signifie matrix laboratory
C'est un outil de calcul scientifique. C’est un langage de programmation interprété et qui
comporte de nombreux /// algèbres linéaires.
Un intérêt considérable a matlab est d'autoriser à manipuler avec la même souplesse les
scalaires les vecteurs ou les matrices.
Matlab permet aussi de visualiser les résultats des calculs que nous allons développer. Ce
cours est consacré à une initiation à matlab. L’objectif est de vous amener à effectuer la
résolution d'équations plus complexes en génies des procèdes telles que des systèmes EDO
des EDP etc.
Il s’agira de développer du code en langage de programmation matlab et de visualiser les
résultats pour ensuite les commenter.
1. Le scalaire
La syntaxe est la même pour définir un scalaire un vecteur ou une matrice. On peut
écrire un scalaire entre crochets et taper sur la touche entrée pour exécuter la
commande. >> a=[1]
Dans le cas de scalaire on n’est pas obligés de mettre les scalaires. >> b=1
Remarque : si on tape un ; en fin d’instruction le résultat ne s’affiche pas à l’écran. >>
c=2; mais le scalaire C existe bien il suffit de taper la commande >>who. Cette
commande nous permet de connaitre les variables en mémoire.
Pour effacer une variable il suffit de taper la commande >>clear suivie du nom de
l’élément a effacer. >> clear a.
*Si on veut avoir une page vierge, on utilise la commande >>clc
* Pour effacer toutes les variables, on utilise la commande >>clear all
2. Vecteur
Suivant la syntaxe on peut définir un vecteur ligne sous la forme >>A=[2 3 4]
Suivant la syntaxe on peut définir un vecteur ligne sous la forme >> B=[2;3;4]
3. Matrices
Saisir la matrice M suivante : >> M=[1 2 3; 4 5 6; 7 8 9]
Pour extraire un élément scalaire d’une matrice, il suffit de préciser le numéro de ligne
et de colonne de l’élément à extraire. Si on veut extraire l’élément qui se trouve sur la
deuxième ligne et la troisième colonne de la matrice M on met >> M(2,3).
On peut aussi extraire une partie d’une matrice on peut procéder ainsi
- Pour extraire uniquement la première colonne de M on et >> M(:,1)
- Pour extraire la première et la deuxième colonne à la fois >> M(:,[1,2])
- Pour extraire uniquement la première ligne de M >> M3=M(1,:) ( on a appelé M3 la
matrice obtenue)
- Pour extraire la première ligne et la 3eme >>M4=M([1,3],:)
Remarque : Les deux points signifient que tous les éléments sur la ligne ou sur la colonne
sont considérés
3.1 Matrices spéciales
Certaines matrices se construisent facilement grâce à des commandes dédiées. Citons les
plus utilisées :
>> I=eye(n) : Matrice identité dans R
>> ones(m,n) : Dont tous les éléments valent 1
>>Z=zeroes(2,4) : Dont tous les éléments valent 0
>> R=rand(5,4) : Matrices de m lignes et n colonnes dont les éléments sont générés de
façon aléatoires entre 0 et 1
3.2 Calculs matriciels
On affiche la matrice N tel que >> N=[1 2 3; 2 1 4; 3 4 1].
On calcule H=2N : >> H=2*N
Ensuite >> P=exp(N)
Après >> T=M/N
Enfin >> V=M+N
3.3 Extraction d’éléments d’une matrice
Pour l’extraction d’éléments de matrices on peut considérer les cas suivants :
>> diag(N) : extrait la diagonale principale de N
>> diag(N,1) : extrait la diagonale supérieure de N
>>diag(N,-1) : extrait la diagonale inférieure de N
>> triu(N) : extrait le triangle supérieur de N
>> tril(N) : extrait le triangle inférieur de N
3.4 Quelques fonctions utiles aux calculs matriciels
Déterminant d’une matrice : >> det(N)
Trace d’une matrice : >> trace(N)
Transposé d’une matrice : >> N'
Inverse d’une matrice : >> inv(N)
3.5 Systèmes d’équations linéaires
Un système linéaire s’écrit généralement sous la forme AX=B
Avec matlab cela revient à effectuer l’opération X=A\B (\ altgr+8)
Exemple : résoudre le système linéaire suivant
x+3y+4z=50
7x+2y+z=23
3x+5y-4z=2
4. Fonctions mathématiques
Il existe un grand nombre de fonctions prédéfinies sur matlab par exemple la fonction
sinus.
Pour calculer sinus de x pour différentes valeurs de x, on définit d’abord la valeur de x
puis on calcule sinus de x pour chaque valeur de x spécifiée.
Exemple : Calculer y=sin(x) sur l’intervalle [0 ;2π] avec 1 pas de π/100
>> x=[0:pi/100:2*pi];
>> y=sin(x)
On peut aussi visualiser sous forme de courbe ce résultat en utilisant la commande plot :
>> plot(x,y)
Pour cette dernière on y reviendra de façon plus détaillée dans la partie graphisme.
4.3 Quelques fonctions…
Sum : somme des éléments
Rank : rang d’une matrice
Prod : produit des éléments
Std : écart type
5. Graphismes
Matlab permet de visualiser des graphiques en 2D et 3D de haute qualité. La commande la
plus basique pour représenter un vecteur d’ordonnée y en fonction de x avec une échelle
linéaire à pour symbole plot(x,y)
Exemple :
Tracer sur l’intervalle [-2 ;2] avec un pas de 0,2 y=xsin(x)
Remarque : Lorsqu’on fait la multiplication ou la division entre des vecteurs, l’opérateur
doit toujours être précédé d’un point.
Les syntaxes de la fonction plot sont les suivantes :
Plot(x,y) : trace y en fonction de x
Plot(x1,y2,x2,y2,x3,y3) : trace y1 ,y2 et y3 en fonction de x1,x2 et x3 respectivement sur
le même graphe.
X1,x2 et x3 n’ont pas forcément la même dimension.
Exemple :
Tracer sur l’intervalle [-5 ;5] y=xsin(x) et z=xcos(x) sur le meme graphe.
5.1 Format et animation graphique
Matlab attribue par défaut des couleurs différentes lorsqu’on trace plusieurs courbes. Il est
possible cependant de changer la couleur d’une courbe, le style de trait et le symbole des
points. Ainsi on doit donner à la commande plot un troisième paramètre qui est une chaine
de 3 caractères de la forme ‘cst’ :
C comme couleur
S comme symbole des points
T , le style de trait.
La syntaxe est la suivante plot(x,y,’cst’)
Les choix possibles pour spécifier la couleur d’une courbe, le symbole des points et le
style des traits est donné par le tableau.
Exemple :
Tracer les fonctions sinx et cosx sur l’intervalle [0;2pi] avec 1 pas de pi/100. La courbe
y=sinx sera tracée en traits pointillés court vert dont le symbole des points est le carré et
l’autre z=cosx en trait plein noir dont le symbole des points est un +.
On peut aussi choisir le format du graphique.
- xlabel(‘variable x’) renseigne la variable x sur l’axe des abscisses
- ylabel('variable y') renseigne la variable y sur l’axe des ordonnées
- legend(‘…..’)
- title(‘…..’)
- grid : c’est pour ajouter un quadrillage au graphique
- hold : permet de tracer plusieurs courbes sur le même graphe. En effet à chaque
commande plot matlab efface automatiquement le graphique déjà tracé.
- Hold on : permet de superposer les courbes sur un même graphe déjà existant. Cette
commande est annulée par hold off.
- clf : efface la courbe
- bar(x,y) : trace y en fonction de x sous forme de barres
- plotyy(x1,y1,x2,y2) : cette commande crée un graphe avec deux axes des y d’échelles
différentes
- semilogx(x,y) : trace y en fonction de x avec une échelle log(x)
- subplot :divise une figure en plusieurs sous graphiques
- hist :cette commande permet de représenter une distribution y en fonction de x sous
forme d’histogramme.
Application1 :
Y :Trait plein cont rouge
Z : Trait plein cont vert
Application 2 :
En utilisant plotyy representer z1 en fonction du temps avec une échelle linéaire et z2 avec
une échelle logarithmique
APP 3
Commande subplot : Le but est de représenter sur une même fenêtre graphique plusieurs
courbes juxtaposées.
Pour cela la fenêtre graphique est découpée en plusieurs cadres de même dimension qui
contiennent chacun un graphe. On utilise alors une commande du type subplot(nombre de
cadres sur hauteur, nombre de cadres sur largeur, numéro du cadre actif)
Exemple :
subplot(2,2,1) : découpe la fenêtre graphique en deux sur la largeur, en deux sur la hauteur
et le cadre actif est le numéro 1.
Les cadres sont numérotés comme suit :
1 2
3 4
Exemple :
Subplot(2,2,1)
X en foncton de sin(x)
5.2 Graphisme en 3D
Les fonctions les plus courantes sont :
plot3(x,y,z) : représente z(x,y) avec x,y de même dimension
meshgrid :génére un mailllage de points (X,Y) à partir des vecteurs x,y pour le calcul.
Mesh(x,y,z) : représentation 3D de z
APP1 :
Fonction plot3
t=[0 :0.05 :25]
6. Initiation à la progammation matlab
il est possible d’enregistrer une séquence d’instructions dans un fichier appelé [Link] et de
les exécuter par matlab, Un tel fichier va toujours avoir une extension de la forme .m
exemple :
Carti.m
Il est possible de mettre aussi des commentaires sur le fichier mais ces derniers devront
etre précédé du symbole %.
Il est aussi preferable de mettre un ; à la fin de chaque ligne de commande pour eviter un
affichage inutile.
6.1 Instructions de contrôle : boucle et condition
Quelque soit le language de programmation matlab on retrouve des instructions
incontournables.
6.1.1 Instruction if-else-end
La syntaxe est la suivante :
If( condition logique)
Instruction ;
Elseif (condition logique)
Instruction ;
Else (condition logique)
Instruction ;
End;
Les expressions relationnelles que l’on peut utiliser sont les suivantes :
Symboles Signification
< Inf
> Sup
<= Inf ou égal
>= Sup ou égal
== égal
esperluette Operateur logique et
| Ou (barre verticale)
Ecrire un programme matlab qui permet de calculer les racines d’un polynome de degré 2.
Création du fichier [Link] avec les instructions. Enregister sous racine.m.
Puis je vais sur matlab pour exécuter le programme.
6.1.2 Instructions for-end
La syntaxe est la suivante
For variable=valeur de début :pas :valeur de fin
Instruction
End ;
Application
Ecrire un programme permettant de résoudre l’intégrale I de a à b de sini
Projet( faire un programme pour simpson)
Résolution de polynomes
Matlab représente un polynôme sous forme de tableau de ses coefficients placés dans l’ordre
des puissances décroissantes. Le polynôme P(x)=X2-6X+9 est représenté par le vecteur
P=[1,-6,9].
Pour déterminer les racines d’un polynôme on utilise la fonction roots.
Pour évaluer un Polynôme en un point on utilise la fonction polyval.
Exemple : Calculer les racines de P et évaluer P au point x=1
On peut aussi déterminer les coefficients d’un polynôme à partir de ses racines en utilisant la
fonction poly.
EXEMPLE : on cherche un polynôme dont les racines sont (1,2,3)
Connaissant les coefficients P d’un polynôme il est possible de calculer ce polynôme pour un
vecteur x.
Exercice :
Chercher les racines des polynomes suivants :
P(x)=X2-5X+4
Q(x)=5x4+x2-8
Representer le polynome P(x) x allant de -10 à 10 avec 1 pas de 1
Tracer la courbe en traits pointillés noir dont le symbole des points est un carré.
Créer un polynome ayant pour racine 1,3,8 et le représenter sur x appartenant à l’intervalle
0 :10
Pas de 1
7. Intégration numérique avec matlab
La fonction quad permet d’évaluer numériquement l’intégrale d’une fonction. Cette
dernière utilise la méthode simpson pour le calcul avec une précision de 10-6.
Soit à calculer l’intégrale I=de a vers b de f(x)
Syntaxe : I=quad(expression de f’,a,b)
Calculer de 0 à pi integrale de sin(x)
On peut aussi définir au préalable la fonction f en utilisant inline.
Exo :
Calculer les intégrales suivantes :
K=quad('exp(x).*sin(x)',0,pi/2)
T=quad('exp(x)./((3+exp(x)).*sqrt(exp(x)-1))',1,30)
8. Résolution
Ensuite il faut ecrire une fonction sous la forme d’un fichier mfile.
9.3 Résolution des EDO d’ordre n
Dans le cas ou on a une dérivée >1 il faut procéder à un changement de variable.
Exemple :
Voir cahier
dy
On pose x1=y et x2= donc on a
dt
dx2
=−3 x 2−2 x 1+ 4 exp (−2 t )−5
dt
dx1
=x 2
dt