Académique Documents
Professionnel Documents
Culture Documents
Introduction
MatLab
MATrix LABoratory
I.MEDARHRI
O.KAFI
2012-2013
Plan
1.
2.
3.
4.
5.
6.
7.
8.
Introduction
Syntaxe du langage
Vecteurs et Matrices
Fonctions
Boucles
Test
Graphiques
EDP
1. Introduction
MATrix LABoratory
Logiciel Interactif de calcul bas sur le calcul matriciel
Calcul scientifique ou Ingnierie
Permet de raliser des simulations numriques bases sur des
algorithmes danalyse numrique
Affichages graphiques
Programmation : dition de scripts
Mise en uvre trs rapide
2.
Syntaxe du langage(1/3)
2. Syntaxe du langage(2/3)
Utilisation de laide en ligne
2. Syntaxe du langage(3/3)
Premiers pas
Dfinir un scalaire :
>> a=21;
>> c=2+i
c = 2.0000 + 1.0000i
Fonctions courantes:
Trigonomtrie : sin, cos, tan, asin, acos, atan
Complexes : real, imag
Fonctions classiques : exp, log, sqrt, ^
Quelques constantes
>> pi
ans = 3.1416
Complexes : i
>> i^2
ans =
-1
%vecteur transconjugu
>> v
ans =
2.0000
-3.0000 - 1.0000i
5.0000
>> v.
% vecteur transpos
ans =
2.0000
-3.0000 + 1.0000i
5.0000
% vecteur colonne
>> w=[-3;pi;8]
W=
-3.0000
3.1416
8.0000
%somme de 2 vecteurs
ans =
-1.0000
0.1416+1.0000i 13.0000
Remarques:
Les composantes sont spares
par espace ou des virgules pour
les vecteurs ligne.
Gnration des vecteurs:
[BorneInf : pas : BorneSup]
linspace(a,b,N):N composantes
uniformment rparties entre a et
b.
2
5
8
1.
1.
1.
1.
1.
3
6
9
=
0.
1.
2.
3.
4.
0.
0.
1.
3.
6.
P(3: end,2:3)
0.
0.
0.
1.
0.
0.
0.
1.
4.
0.
0.
0.
0.
1.
*
^
\
/
.*
.^
.\
./
Addition
C=A+B
Soustraction
C=A-B
Multiplication
C=A*B
Puissance
C = A^2
Transpose
C = A'
division gauche x = A\b
division droite
x = b/A
Multiplication lment lment
Puissance lment par lment
division gauche lment par lment
division droite lment par lment
Attention aux
correspondances de
tailles pour *, /
eye :
-->I4 = eye(4,4)
I4 =
1.
0.
0.
0.
1.
0.
0.
0.
1.
0.
diag :
ones,
zeros :
0.
0.
-->rand(3,2)
ans =
rand :
0.
0.
0.
1.
-->d = [1 3 9 27];
-->diag(d)
ans =
1.
0.
0.
0.
3.
0.
0.
0.
9.
0.
0.
0.
0.7263507
0.1985144
0.5442573
0.2320748
0.2312237
0.2164633
-->A = [1 2 3 ; 4 5 6 ; 7 8 9];
-->diag(A)
ans =
0.
0.
0.
27.
-->ones(2,4)
ans =
1.
5.
9.
-->zeros(2,2)
ans =
1.
1.
1.
1.
1.
1.
1.
1.
0.
0.
0.
0.
2 1 5
1
3
3 1 7
A
=
u = 4 v = 2
4 3 2
2
3u , u 1 , u 2 , v AAT , ( AAT ) 1
4. Fonctions(1/6)
Scripts et Fonctions
Scripts (fichiers .m) :
4. Fonctions(2/6)
Fonctions (.m)
Syntaxe :
function [o_1, ..., o_M] = test(x_1, ..., x_N)
...
...
end
4.Fonctions(3/6)
Editeur intgr
run(nomscript)
test()
4. Fonctions(4/6)
Quelques commandes d'environnement
importantes
path : permet de savoir quels sont les dossiers que Matlab rfrence
et de spcifier de nouveaux dossiers windows o se trouvent des
ressources personnelles, par exemple :
path(path,'D:\matlab7.0\work')
Avant dexcuter une fonction il faut toujours sassurer quon travail
dans le bon rpertoire
4. Fonctions(5/6)
Exemples
function [y]=fact1(n)
y = prod(1:n)
End
function [r,theta]=polaire(x,y)
r = sqrt(x.^2+y.^2);
theta = atan(y./x);
End
function test()
5. Fonctions(6/6)
Exemples
Appel de la fonction :
>> fact1(4)
Ans =
24.
>> polaire(2,3)
ans =
3.6056
>> r=polaire(2,3)
r =
3.6056
>> [r, theta]=polaire(2,3)
r =
3.6056
theta =
0.9828
ATTENTION aux
arguments de sortie !
5. Boucles(1/2)
Boucle for
Renvoie s=6
ATTENTION !
Pour les calculs viter les boucles FOR, et tirer au
maximum partie du calcul matriciel
Boucle prcdente quivalente :
sum(x)
5. Boucles(2/2)
Boucle WHILE
Effectue une suite de commandes tant quune condition
est satisfaite.
epsilon = 0;
while ( epsilon<1 )
epsilon = epsilon + 0.1
end
6.
Test Conditionnel IF
Exemple :
if expression
elseif expression
(elseif expression
)
else
end
function [y]=my_abs(x)
if ( x<0 )
y = -x;
else
y = x;
end
end
Appel :
>> my_abs(-7)
>> ans =
7
7.
LES GRAPHIQUES(1/3)
Dans toutes les reprsentations graphiques, le logiciel se base sur des donnes discrtes
ranges dans des matrices ou des vecteurs colonnes.
L'instruction de dessin
correspondante (par exemple plot(x,y) pour tracer des courbes planes) est alors utilise et
ventuellement complte par des arguments optionnels (couleur, type de trait, chelle sur
les axes, etc...). La visualisation du rsultat s'effectue dans une fentre graphique (avec
possibilite de zoom, de rotation, d'impression).
x=linspace(0,pi,30);
y=sin(x);
plot(x,y)
plot(x,y,'*-b') %relie les points (xi,yi)
par un trait continu de couleur et
materialise les points avec un symbole
plot(x,y,'*r') %materialise les points
(xi,yi) avec un symbole de couleur
Les surfaces
x=linspace(0,2*pi,31);
z=cos(x)'*cos(x);
plot3(x,x,z)
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
grid on
7.
LES GRAPHIQUES(2/3)
Les points peuvent tre matrialises par le symbole p prenant les valeurs
suivants : o : + Les couleurs sont repres par leur initiale en anglais :
(red),( blue), (black), (white), (yellow), (magenta),(green)
On peut rajouter un titre la figure avec la commande title
title('sin(x) sur l''intervalle [0,pi]')
7.
LES GRAPHIQUES(3/3)
8. EDP(1/6)
Applications
Rsolution de lquation diffrentielle :
8.
EDP(2/6)
Problmes elliptiques
8.
EDP(3/6)
Analyse du problme :
On cherche dterminer y dfinie sur ]0,1[
Discrtisation : xi+1 xi = h avec h=1/n
xi = i h + x0 = i h
x0
x1
xi
xi+1
xn
9. EDP(4/6)
Le problme discrtis
y" ( xi ) y ( xi ) = g ( xi )
2
( Papp) = g ( xi ) = sin( xi ) sin( xi )
y = y = 0
0 n
9.
EDP(5/6)
yi +1 2 yi + yi 1
y" ( xi )
h2
yi +1 2 yi + yi 1
yi = g i
2
( Papp ) =
h
y0 = y n = 0
i = 1,..., n 1
9. EDP(6/6)
yi +1 yi (2 + h 2 ) + yi 1 = h 2 g i
( Papp) =
y0 = y n = 0
sous forme matricielle
AY = b Y = A / b
(2 + h 2 ) 1 0 0 ...0
1 (2 + h 2 ) 1 0..0
2
A = 0 1 (2 + h ) 1 0.....0
.........................................
0.................... 1 (2 + h 2 )
i = 1,..., n 1
y1
g1
y2
g2
g , Y = y
=
,
b
3
3
....
....
yn 1
g n 1