Vous êtes sur la page 1sur 28

Introduction

Matlab est un système interactif et convivial de calcul numérique et de visualisation graphique


destiné aux ingénieurs et scientifiques. Il utilise un langage de programmation puissant et
simple à utiliser avec lequel l’utilisateur peut effectuer des calculs en ligne ou par
l’intermédiaire d’un fichier de commandes.MAT (rix) LAB (oratory) est un logiciel puissant
doté à la fois d'un langage de programmation haut niveau et d'outils dédiés au calcul numérique
et à la visualisation numérique. Développé en C par la société Mathworks
(http://www.mathworks.com/), Matlab était initialement destiné à faire du calcul matriciel
simplement.  Actuellement, Matlab recouvre d'autres domaines d'applications de l'informatique
scientifique :
 visualisation graphique 2D et 3D
 résolution d'équations aux dérivées partielles
 optimisation
 contrôle de procédés
 traitement du signal
 traitement de l'image
 logique floue
 réseaux de neurones

Les système Matlab se divise en deux parties :


 le noyau Matlab, qui comprend :
1. l'environnement de travail offrant plusieurs facilités pour la manipulation des
données. Son interpréteur permet de tester rapidement ses propres programmes
Matlab.
2. le système graphique Matlab (interfaces homme-machine, graphiques, images,
animations).
3. le langage de programmation Matlab.
4. une librairie de fonctions mathématiques Matlab.
5. un système d'interfaçage facilitant l'exécution de programmes C ou Fortran sous
Matlab.
 une collection de toolboxes (boîtes à outils) regroupant un ensemble de fonctions
spécifiques à un thème.

Quelques fonctions pour bien débuter


Matlab dispose de plusieurs commandes d'aide à la manipulation des fonctions et des fichiers :
 help : fournit la liste des catégories de fonctions installées.
 help fonction/commande : indique comment utiliser une fonction.
 helpwin : ouvre une fenêtre permet d'accéder facilement aux aides des différentes
commandes.
 doc fonc : affiche la documentation HTML de la fonction fonc (cette fonction doit
appartenir au noyau Matlab).
 lookfor mot-clé : recherche dans toutes les aides le mot-clé donné en argument et
retourne la ligne contenant ce mot en précisant la fonction correspondante.
 which fonc : retourne le chemin du fichier de déclaration de la fonction fonc (lorsque
celle-ci est décrite sous la forme d'un fichier avec l'extension .m)
 dir('rep') : liste tous les fichiers présents dans le répertoire passé en argument .
 what('rep') : liste tous les fichiers Matlab présents dans le répertoire rep en précisant le
type de fichier.
 type fonc : affiche le code de la fonction fonc (à condition que la fonction soit décrite
dans un fichier m).
 dbtype fonc : identique à la fonction type en indiquant des numéros de ligne.
 exist('A') : permet de savoir si une fonction Matlab, une variable Matlab ou un
répertoire existe.

Pour contrôler le défilement des pages d'aide, il est souvent pratique d'utiliser la commande
more on/off.

Matlab fournit également la possibilité d'exécuter des commandes unix directement sous
l'interpréteur :

 les commandes cd, ls, pwd et mkdir sont analogues à celles connues sous UNIX.
 unix('unix_com') : exécute une commande UNIX et affiche une valeur de retour (0 si la
commande unix est licite).
 !unix_com : exécute juste la commande UNIX unix_com.

Chapitre I: MATRICES

Toute donnée peut être représentée sous forme matricielle. En effet, une donnée constituée
d'une valeur numérique est une matrice uni ligne uni colonne. Un ensemble de quatre
coordonnées dans un repère 0xyz peut se représenter avec une matrice ayant quatre lignes et
trois colonnes etc.. Pour spécifier un élément dans une matrice, on utilise le numéro de la ligne
et celui de la colonne.

Par exemple, soit une matrice C donnée. C_43 = 2 signifie que le nombre situé à la quatrième
ligne et deuxième colonne de la matrice C est égal à 2.

Une matrice m*n est une matrice qui à m lignes et n colonnes.

On obtient la taille d'une matrice en faisant le produit du nombre de lignes par le nombre de
colonnes

Initialisation de matrices en utilisant MATLAB

Dans une fenêtre MATLAB on écrit ce qui suit:

>> A = [1 2 3;4 5 6;7 8 9]


On obtient comme résultat une matrice 3X3:
A =

1 2 3

4 5 6

7 8 9

Exemple exercice résolu


Soit les matrices

A = [2 5 1;0 3 -1] B = [1 0 2;-1 4 -2;5 2 1] et D= [2 1;4 3]


On se propose de calculer :

a - Les transposées de A et B.

b - Le produit de A par B noté C

c - La taille de C

d - L'inverse de D

e - Le carré des éléments des matrices A B et D

Considérons les énoncés MATLAB suivants.

A =[2 5 1;0 3 -1];

B = [1 0 2;-1 4 -2];

D = [2 1;4 3];

A'

B'

D'

C = A.*B

size(C)

inv(D)

A.^2

B.^2

C.^2

On obtient les résultats suivants:

Transposée de A

ans =

2 0
5 3
1 -1

Transposée de B
ans =

1 -1
0 4
2 -2
Transposée de D

ans =

2 4
1 3
MANIPULATION DE MATRICES

Dans cette section, nous allons rencontrer un certain nombre de fonctions disponibles dans
MATLAB. Celles-ci nous permettront de voir plusieurs manipulations possibles avec les
matrices.

Rotation

Soit la matrice

En exécutant la commande:

B = rot90(A)
On obtient le résultat suivant:
B =

0 -1 6

1 5 4

2 -2 3

>>

La fonction rot90 permet d'effectuer une rotation de 90 degrés (la rotation se fait dans le sens
anti-horaire).

Flip

On utilise deux fonctions issues de flip pour intervertir une matrice. Considérons les
commandes MATLAB suivantes:

A = [1 2;4 8;-2 0]

B = fliplr(A)

C = flipud(B)
On obtient le résultat suivant:
A =

1 2

4 8

-2 0

B =

2 1

8 4

0 -2

C =

0 -2

8 4

2 1

>>

La commande flipr intervertit de la gauche vers la droite tandis que la commande flipud
intervertit de haut en bas.

Reshape

Considérons les commandes MATLAB suivantes:

A = [2 5 6 -1;3 -2 10 0];

B = reshape(A,4,2)

C = reshape(A,8,1)

On obtient les résultats suivants:


A =

2 5 6 -1

3 -2 10 0

B =

2 6

3 10

5 -1
-2 0

C =

-2

10

-1

>

Que s'est-il passé?

On utilise reshape avec trois arguments : le premier indique la matrice originale, les 2ième et
3ième arguments indiquent respectivement le nombre de lignes et le nombre de colonnes de la
nouvelle matrice. Les nombres sont choisis en colonne à partir de la vieille matrice pour former
la nouvelle matrice ordonnée en colonne

Chapitre II: POLYNÔMES

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. Par exemple, en lieu et place
de:

on écrit p = [1 -12 0 25 116]. Pour obtenir les racines d'un tel polynôme, on utilise la
commande roots. Ainsi les instructions suivantes:

p = [1 -12 0 25 116]

r = roots(p)

donnent comme résultat:

>>p =

1 -12 0 25 116
r =

11.7473

2.7028

-1.2251 + 1.4672i

-1.2251 - 1.4672i

On obtient quasi instantanément les racines d'un polynôme de degré 4. Dans MATLAB, un
polynôme et ses racines sont des vecteurs. Le polynôme étant un vecteur uni ligne et les racines
un vecteur uni colonne.

Exercice résolu

Soit les polynômes:

a- Multiplier ces deux polynômes.

b- Additionner ces polynômes.

c- Soit c le polynôme obtenu après la multiplication de a et b, faire la division de c par b.

d- tracer la courbe:

Résolution

a- Multiplication. On écrit d'abord a et b comme des vecteurs unilignes. On applique ensuite la


fonction MATLAB conv.

a = [1 2 3 4];

b = [1 4 9 16];

c = conv(a,b)

Au niveau de MATLAB on obtient comme résultat:

c =

1 6 20 50 75 84 64
b- Addition. Pour additionner deux polynômes,on écrit
a = [1 2 3 4];

b = [1 4 9 16];

d = a + b

On obtient comme résultat:


d =

2 6 12 20

qui est le polynôme:

c- Division de deux polynômes. On utilise la commande deconv. On écrit les instructions


suivantes:

a = [1 2 3 4];

b = [1 4 9 16];

c = [1 6 20 50 75 84 64];

[q,r] = deconv(c,b)

On obtient comme résultat:

q =

1 2 3 4 :représente le quotient de la
division

r =

0 0 0 0 0 0 :représente le reste de la
division
d- Tracé; de la courbe

x = linspace(-1,3,100);

p = [1 4 -7 -10];

v = polyval(p,x);

plot(x,v),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).
On obtient la courbe suivante. <P

>
CH III SYSTÈMES LINÉAIRES

Tout système linéaire peut être représenté sous forme matricielle. La résolution d'un tel système fait
appel à la notion d'inverse d'une matrice.

Considérons le système d'équations suivant:

Ce système peut être écrit sous une forme matricielle: AX = B, avec:

Résoudre ce système d'équations, c'est trouver X tel que AX = B.

MATLAB permet de résoudre ce problème en écrivant les instructions suivantes:

A = [3 2 -1;-1 3 2;1 -1 -1];

B = [10 ;5 ;-1];

X = inv(A)*B
On obtient comme résultat:
X =

-2.0000

5.0000

-6.0000

>>

Note: on peut aussi utiliser la commande MATLAB

X = A\B

CH IV Graphisme avec Matlab

Comment tracer une courbe à l'aide de MATLAB?

À partir d'un exemple nous allons introduire les notions de base nécessaires pour tracer une
courbe en utilisant MATLAB. On se propose de tracer les fonctions sinus et cosinus. Il s'agit
d'écrire le programme suivant au niveau d'une fenêtre MATLAB.

x = linspace(0,2*pi,30);

y = sin(x);

z = cos(x);

plot(x,y,x,z,'+')

title('sinus et de cosinus')

xlabel('abscisse')

ylabel('ordonnée')

grid

On obtient la figure ci-dessous.


Graphiques en trois dimensions.

Au niveau d'une fenêtre MATLAB, taper les instructions suivantes:

x = -8: .5:8;

y = x';

X = ones(size(y))*x;

Y = y*ones(size(x));

R = sqrt(X.^2 + Y.^2) +eps;

Z = sin(R)./R;

mesh(Z)

On obtient une belle figure en trois dimensions

DÉRIVÉES NUMÉRIQUES

Graphiquement, la dérivée d'une fonction peut être définie comme la pente de celle-ci à un
point donné.

La différentiation numérique consiste à calculer la dérivée d'une fonction en un point xk:


Exemple :Considérons la fonction suivante

On se propose de :

- Représenter cette fonction entre -4 et 5.

- Calculer sa dérivée par rapport à x.

- Représenter cette dérivée.

- Déterminer les valeurs de x pour lesquelles la fonction f(x) admet des maxima et des minima
locaux. En MATLAB, on écrit les instructions suivantes:

Partie 1

x = -4:0.1:5;

f = x.^5 - 3*x.^4 - 11*x.^3 + 27*x.^2 + 10*x -24;

figure; plot(x,f,'+')

title(' f = x^5 - 3x^4 - 11x^3 + 27x^2 + 10x - 24')

xlabel('abscisse')

ylabel('ordonnés')

grid

hold

Partie 2
df = diff(f)./diff(x);

xd = x(2:length(x));

figure;plot(xd,df)

title('dérivée de la fonction f')

xlabel('abscisse')

ylabel('ordonnés'

grid
Partie 3
produit = df(1:length(df)-1).*df(2:length(df));

local = xd(find(produit<0))

On obtient les figures de f et f'

Les valeurs de x pour lesquels la fonction admet des extremas sont:

local =

-2.3000 -0.2000 1.5000 3.4000

Remarque: l'allure de la courbe représentant la dérivée montre que la fonction a des minima et
des maxima locaux. La dérivée s'annule autant de fois que la fonction admet des minima et/ou
des maxima
Exemple de représentation graphique en dimension deux

En exécutant le script suivant:


x=linspace(0,pi,30);   % crée un tableau de 30 composantes uniformément
% réparties entre 0 et pi
y=sin(x);
plot(x,y)    %relie les points (xi,yi) par un trait continu noir
plot(x,y,'p-b')  %relie les points (xi,yi) par un trait continu de couleur
et
%matérialise les points avec un symbole
plot(x,y,'pb')  %matérialise les points (xi,yi) avec un symbole de couleur

Les points peuvent être matérialisés par le symbole p prenant les valeurs suivants:
Les couleurs sont repérées par leur initiale en anglais: r(ed), b(lue), blac(k), w(hite), y(ellow),
m(agenta), g(reen)

On peut rajouter un titre à la figure avec la commande title

title('sin(x) sur l''intervalle [0,pi]')


(Remarquer l'emploi d'une double apostrophe pour en faire figurer une dans une chaîne de
caractères délimitée justement par deux apostrophes.)

On peut représenter plusieurs courbes sur la même figure de plusieurs manières: d'abord par un
seul appel à la fonction plot

plot(x,cos(x),x,sin(x),x,exp(-x))    % Matlab va automatiquement utiliser


des couleurs
%différentes pour chaque courbe
plot(x,cos(x),'o-r',x,sin(x),'x-b',x,exp(-x),'*-g')    % pour spécifier le
type
% de symbole et la couleur à utiliser pour chaque courbe
legend('cos(x)','sin(x)','exp(-x)')  % pour rajouter une légende

Par défaut la fenêtre graphique est effacée avant chaque commande plot. Pour superposer des
courbes par des appels successifs à cette fonction, il faut auparavant avoir utilisé la commande
hold on. Par exemple le script suivant donnera le résultat représenté sur la figure 2

Exemple d'appels successifs à la fonction plot.


hold on
plot(x,cos(x),'o-r')
plot(x,sin(x),'x-b')
plot(x,exp(-x),'*-g')
legend('cos(x)','sin(x)','exp(-x)')

Tableau: Principales instructions graphiques.


Instruction Description
plot(x,y) tracé de la courbe passant par les points (x,y)
loglog(x,y) idem avec échelle logarithmique sur les deux axes
semilogx(x,y) idem avec échelle logarithmique sur l'axe Ox
semilogy(x,y) idem avec échelle logarithmique sur l'axe Oy
plotyy(x,y,x,z) courbe (x,y) avec l'axe 0y à gauche,
  et courbe (x,z) avec l'axe 0z à droite
xlabel('label') légende pour l'axe 0x
ylabel('label') légende pour l'axe 0y
title('label') titre au dessus du graphique

legend('lab1','lab2','lab3',...)
légende avec une chaîne de caractères pour chaque
courbe
text(x,y,'label') chaîne de caractères à la position x,y
plot3(x,y,z) tracé de la surface passant par les points (x,y,z)

hold on, hold off


active/désactive la conservation de la fenêtre
graphique
  à l'appel de la fonction plot

CH V Equations différentielles ordinaires


Introduction

Les modèles mathématiques des sciences et techniques se présentent très souvent sous la forme
de systèmes d'équations différentielles ordinaires, qui lient des fonctions (inconnues) du temps
à leurs dérivées temporelles. En ajoutant des conditions aux limites à ces équations, on peut
alors calculer ces fonctions inconnues. Par exemple, la loi de Newton permet de trouver les
équations qui régissent le mouvement en chute libre d'un corps représenté par une masse
ponctuelle, dans un champ de gravité constant. Si on connaît la position et la vitesse initiale du
corps, on peut alors résoudre les équations du mouvement et obtenir la position et la vitesse du
corps comme des fonctions du temps.

Dans de nombreux cas, ces équations sont trop complexes pour pouvoir être résolues de façon
analytique et l'unique possibilité est d'essayer d'approximer les fonctions inconnues au moyen
de méthodes numériques. L'idée de base consiste à ne chercher la valeur des fonctions qu'en un
certain nombre de points : le problème est discrétisé.

Un certain nombre de ces méthodes numériques ont été implémentées dans le logiciel Matlab et
permettent de résoudre relativement facilement un grand nombre de problèmes. Ce document
constitue une introduction à l'utilisation des méthodes implémentées dans Matlab. Une
utilisation efficace et avertie de ces méthodes suppose un minimum de connaissance des
concepts sur lesquelles elles se basent.

Solution numérique d'EDO avec Matlab

Pour résoudre numériquement une EDO avec Matlab (ou un système d'EDOs) il faut d'abord
faire un peu d'algèbre pour ramener l'équation ou le système d'équations différentiel sous la
forme:

où u(t) est le vecteur des fonctions inconnues. Sa dérivée temporelle est exprimée par la
fonction g, qui est une fonction du temps et de u(t).

On peut ensuite lancer ODE45 pour trouver la valeur de u(t). Il faut pour cela lui fournir 3
éléments:

 La fonction g(t,u) qui donne la valeur de la dérivée de u(t) en fonction de t et de


u. Cette fonction sera décrite dans un fichier .m
 Un intervalle de temps sur lequel on souhaite connaître la valeur de la fonction
inconnue
 Une condition initiale, c'est à dire un point de passage de la fonction inconnue.

Le pourquoi du comment

Cette partie décrit le fonctionnement interne de ODE45. Tout ceci se passe automatiquement à
l'intérieur de ODE45. Si ce fonctionnement ne vous intéresse pas, passez cette partie et allez
directement voir la partie "Mais encore" ci-dessous.

ODE45 va utiliser les éléments que vous lui fournissez pour reconstruire, pas à pas, la fonction
inconnue. ODE45 va commencer par découper en morceaux l'intervalle de temps sur lequel
vous lui avez demandé la valeur de la fonction u(t) (l'explication de ceci va apparaître par la
suite). Soit [T0 T1 ... TN] cet intervalle. Notez que vous ne pouvez contrôler la manière dont
ODE45 découpe l'intervalle. Vous ne pouvez que lui fournir les valeurs extrêmes: T0 et TN.

L'information qui sera ensuite utilisée par ODE45 est la condition initiale que vous lui avez
fournie, c'est-à-dire la valeur u(0) de la fonction inconnue au temps t=T0. Connaissant T0 et
u(t=T0), et connaissant la fonction g, ODE45 peut calculer la valeur de u'(t) au temps t=T0.

Autour de la condition initiale, on peut approximer la fonction inconnue par sa tangente,


obtenue à l'aide du point de passage (condition initiale) et de la valeur de la dérivée au point de
passage:

u'(t=T0)=g(T0,u(t=T0))

Ces étapes sont résumées sur la figure suivantes:


La suite de l'histoire est assez simple. ODE45 va calculer la valeur de la fonction inconnue en
t=T1 en utilisant 2 approximations différentes de cette fonction inconnue (même principe que
celui de la tangente ci-dessus). Si les 2 estimations sont proches, il garde la plus précise. Si ce
n'est pas le cas, il choisit un T1 plus proche de T0 (on se rappellera que plus on se rapproche de
T0, plus la fonction colle à sa tangente).

Une fois la valeur de u(t=T1) connue, on peut itérer. A l'aide de g, on calcule:

u'(t=T1)=g(T1,u(t=T1))

Ceci nous donne la direction de la fonction inconnue au point de passage connu (T1,u(T1)) et
permet de choisir T2 et ainsi de suite.

Mais encore

On peut se poser toute une série de questions à propos de ODE45. En voici 2 importantes:

 Que fait-on si l'équation à résoudre est d'ordre supérieur à 1 ?


 Quelles sont les sorties fournies par ODE45 ?

Lorsque l'équation à résoudre est d'ordre supérieur à 1, on la transforme en un système de


plusieurs équations chacune étant d'ordre 1.

Par exemple :
On désire résoudre numériquement l'équation différentielle décrivant le mouvement d'un
pendule amorti (voir cours de mécanique). L'équation différentielle qui donne la position x(t)
du pendule au cours du temps est:

Pour rappel, m est la masse du pendule et k le cœfficient de frottement. Cette équation


est équivalente au système d'équations suivant:

où on a posé:

Il est à noter que dans ce cas, la condition initiale à fournir sera bien entendu un vecteur
puisque nous avons maintenant 2 fonctions inconnues à retrouver. Matlab ne peut savoir
qu'elles sont liées entre-elles par une relation de dérivée.

Quelles sont les sorties fournies par ODE45 ?

ODE45 fournit 2 sorties: U et T.

U est la valeur de la fonction inconnue et T est le vecteur contenant les instants Ti auxquels la
fonction a été évaluée. T est indispensable puisque les instants Ti ne sont pas équidistants. T est
un vecteur colonne.

Il est évident que U sera une matrice dans le cas où on résoud un système plutôt qu'une
équation seule. Dans ce cas, la matrice U contient autant de ligne que le vecteur T et chaque
colonne correspond aux valeurs d'une des fonctions inconnues.

Un exemple en détail

Reprenons l'exemple du pendule amorti. Le système d'équations à résoudre est décrit ci-dessus.
Avant d'exécuter ODE45, il faut écrire la fonction g qui lie u'(t), u(t) et t. C'est chose faite dans
ce fichier.

Comme conditions initiales, on va poser qu'en t=0s, le pendule est à sa position d'équilibre
(x(0)=0) mais possède une vitesse de 2 m/s. On a donc: u0 = [0 2].

Pour résoudre l'équation différentielle entre de t=0s jusque t=20s on va lancer par exemple:

>> [t u] = ode45('oscillateur',[0 20],[0 2]);


Si on affiche la position et la vitesse du pendule en fonction du temps, on obtient:

>> plot(t,u(:,1));
>> hold on;
>> plot(t,u(:,2),'r-.');
>> xlabel('temps (s)');
>> title('Pendule amorti');
>> legend('Position (m)','Vitesse (m/s)');

Beaucoup d'autres détails en utilisant help ODE45.

Chapitre VI: INTÉGRALES NUMÉRIQUES

Calculer l'intégrale d'une fonction, c'est déterminer l'aire sous la courbe qui représente cette
fonction. Cette surface est délimitée par deux droites parallèles à l'axe des ordonnées, passant
par les abscisses x0 et x1 (voir figure).
Pour déterminer cette aire, MATLAB utilise une méthode de segmentation numérique basée
sur plusieurs approches. Trois fonctions sont disponibles en MATLAB selon la méthode
utilisée: trapz, quad, et quad8.

trapz: utilise l'approche de la méthode des trapèzes qui consiste à découper l'aire totale à
calculer en de petites surfaces ayant la forme de trapèzes.

quad et quad8: sont basées sur le concept mathématique de la quadrature.

quad : est une forme adaptative de règle de Simpson.

quad8: est basée sur la loi de Newton.

Exercice résolu

Le fichier MATLAB hump.m contient la fonction suivante:

y = humps(x)

y = 1 ./ ((x - .3). ^2 + .01) + 1 ./ ((x - .9).^2 + .04) - 6;

On se propose de calculer l'aire sous cette courbe en utilisant les trois fonctions de MATLAB
définies ci-haut.

Traçons d'abord le graphe de cette fonction. Pour cela, on écrit les instructions suivantes en
MATLAB:

x = -1:.01:2;

plot(x,humps(x))

title(' 1 ./ ((x - .3).^2 + .01) + 1 ./ ((x - .9).^2 + .04) - 6')

xlabel('abscisse')

ylabel('ordonnée'

grid

On obtient la courbe suivante :


Déterminons maintenant l'aire délimitée par cette courbe et les abscisses x = -1 et x = 2.

On écrit les instructions suivantes au niveau de MATLAB.

x = -1:.01:2;

y = humps(x);

aire1 = trapz(x,y)

aire2 = quad('humps',-1,2)

aire3 = quad8('humps',-1,2)

Le résultat est le suivant:


>>

aire1 =

26.3449

aire2 =

26.3450

aire3 =

26.3450

>>
Chapitre VII: ITÉRATIONS&PROGRAMMATIONS

IF ELSE - FOR - WHILE


La structure générale de if et else est la suivante:

if expression logique 1

instructions A

elseif expression logique 2

instructions B

elseif expression logique 3

instructions C

else expression logique 4

instructions D

end

La structure générale de for est la suivante:


for index = expression

instructions

end

La structure générale de while est la suivante:


while expression

instructions

end

Une expression logique est une relation mathématique qui peut être soit vraie soit fausse.

Une expression est un scalaire ou un vecteur.

Les instructions sont répétées autant de fois qu'il y a de colonnes dans l'expression.

Exemples d'illustration

On considère une fibre optique reliant un serveur et plusieurs appareils. Si la distance entre le
serveur et un appareil est inférieure à 30 mètres, la vitesse est obtenue en utilisant l'expression:

Si la distance est supérieure à 30 mètres, la vitesse s'exprime par:


Pour traduire cette situation dans MATLAB on écrit:
if d<=30

else

end

Si on suppose qu'on a un vecteur contenant les différentes distances, on peut résoudre le même
problème en utilisant la boucle for comme suit:
for k = 1:length(d)

if d(k) <= 30

else

end

La fonction MATLAB length détermine le nombre de fois que la boucle sera exécutée.

Chapitre VIII: VALEURS PROPRES ET VECTEURS PROPRES

Soit une matrice carrée n x n et un vecteur colonne ayant n lignes. étant un scalaire.
Considérons l'équation suivante:

(1)

Pour non nul, les valeurs de qui vérifient cette équation sont appelées valeurs propres de la
matrice . Les vecteurs correspondants sont appelés vecteurs propres.

L'équation (1) peut également être écrite sous la forme:

Un système d'équations homogène de cette forme a une solution non triviale si et seulement si
le déterminant est nul, c'est-à-dire:
(2)

(2) est appelée équation caractéristique de la matrice . Les solutions de cette équation sont
aussi les valeurs propres de .
Exercice d'application

Soit la matrice suivante:

Déterminer les vecteurs propres et les valeurs propres de .

Utilisant MATLAB on écrit ce qui suit:

A = [0.50 0.25;0.25 0.50];

[vecteurs_propres,valeurs_propres]=eig(A)

On obtient comme résultat:


vecteurs_propres =

0.7071 0.7071

-0.7071 0.7071

valeurs_propres =

0.2500 0

0 0.7500

On obtient deux valeurs propres qui sont 0.25 et 0.75.

À la valeur propre 0.25 correspond le vecteur propre

À la valeur propre 0.75 il correspond le vecteur propre

Remarque: Soit

On a toujours QQ' = I. I étant la matrice identitée. eig produit des vecteurs unitaires.

Matlab est un logiciel extrêmement bien documenté, avec plusieurs fonctions d'aide très
performantes. Lorsqu'on est confronté à un problème technique dans l'utilisation de
Matlab, ces fonctions d'aide permettent souvent de le résoudre rapidement.
Fonction help
Lorsque vous recherchez de l'aide sur une fonction précise de Matlab, vous pouvez
simplement taper la commande:

>> help nom_de_la_fonction

Exemple
>> help det
DET Determinant.
DET(X) is the determinant of the square matrix X.
Use COND instead of DET to test for matrix singularity.
See also COND. Overloaded methods
help sym/det.m

Note

Dans l'aide de Matlab, même si les noms des fonctions sont indiqués en majuscule, il
convient d'écrire ces noms en minuscule lors de l'appel de ces fonctions. Par exemple, si

on souhaite calculer le déterminant de la matrice on écrira dans Matlab:

>> det([4 2; 1 3])


ans =
10
>>

Fonction lookfor

La fonction lookfor permet de rechercher les fonctions se rapportant à un certain sujet.


Vous devez simplement veiller à entrer les mots-clés en anglais. >> lookfor
mot_clé_en_anglais

Exemple

>> lookfor determinant


DET Determinant.DET

Fonction helpwin

La fonction helpwin fait apparaître une fenêtre qui vous permet de naviguer à travers
l'aide des fonctions de Matlab. On écrira dans Matlab:

>> helpwin
Fonction doc

Matlab dispose d'une documentation très fournie sous la forme de pages HTML. Pour
accéder à ces pages, tapez la commande: doc ou helpdesk . Si vous recherchez une
information sur une commande précise : doc nom_de_la_commande

Vous aimerez peut-être aussi