Vous êtes sur la page 1sur 37

IntroductionaulogicielMatlab Introduction au logiciel Matlab

Introductionaulogiciel Matlab

CharlesP.Lamarche CharlesP Lamarche


AdaptenpartiedeDaniloepanoviet PatrickHo(2009)

Plandematch
PLANDEMATCH: PLAN DE MATCH:
(1) Introduction (2) Variables (3) Oprations de base Oprationsdebase (4) Matricesetvecteurs (5) Oprationsmatricielles ( ) (6) Graphiques2D p q

EnvironementMatlab

Workspace Command C d Window Command History

IntroductionMatlab

help
!!!!Lafonctionquivousseralaplusutile!!!! Nousverronslafonctionhelp plustard

Typesdevariables yp
Dans MATLAB nul besoin de dclarer les variables!! DansMATLAB,nulbesoindedclarerlesvariables!! MATLABsupporteplusieurstypesdevariables,lesplusutilisessont: 3 84 3.84 double: 32bit(pardfaut) 'a' char:16bit char: 16 bit Laplupartdesvariablesquevousutiliseraiserontdesmatricesoutableaux contenantdesdouble etdeschar contenant des double et des char Dautrestypessontsupports:variablescomplexes,variablessymboliques, entiers,etc. entiers etc

Commentnommer lesvariable
Pourcrerunevariable,onassigneunnomunevaleur var1=3.14 myString='helloworld' Nomsdevariables Lepremiercaractredoittreunelettre!! Nepasconfondreleslettremajusculesetleslettreminuscules(var1 est diffrentdeVar1) Variablesrserves i etj serventdfinirlesnombrecomplexes pi prendlavaleur3.1415926 ans metlersultatdeladernireoprationenmmoire Inf andInf reprsentes+ linfini NaNveuxdireNotaNumber,i.e.0/0=NaN

Scalaires

Lavariablea prendlavaleur10 a=10

a apparait maintenant dans la fentre workspace! apparaitmaintenantdanslafentreworkspace!


Oprationsimpliquantunevariable c = 10*2 2*a c=10*22*a Pournepasafficherlersultatdanslafentredecommande,onutilisele pointvirgule(;) pointvirgule (;) Elvis='Gratton';

Vecteurligne g
Vecteurligne g row=[125.46.6]; row=[1,2,5.4,6.6];%quivalent! Commandwindow:

Workspace: p

Vecteurcolonne
Vecteurcolonne column=[4;2;7;4]; Commandwindow: Command window:

Workspace:

Matrices
Mmeprincipequedanslecasdesvecteurs lmentparlment a=[12;34]; [ ; ];

1 2 a= 3 4

Concatnationdevecteursoudematrices a = [1 2]; a=[12]; b=[34]; c=[5;6]; d=[a;b]; e=[dc]; f=[[ee];[aba]];

Fonctionclear
Lafonctionclear allsertsupprimertouteslesvariablesduworkspace

Lafonctionclear sertsupprimerdesvariablesprcises a=1; b=1+a; c=1+b;%lesigne%sertintroduireuncommentaire! clear a l clear bc Regardezdansleworkspace,lesvariablesa,betcontdisparues!! Regardez dans le workspace les variables a b et c ont disparues!!

Exercicesurlesvariables
Effectuerles5oprationssuivantes:
1)Crerlavariabler,unvecteurlignecontenantlesvaleurs:1471013 2)Crerlavariablec,unvecteurcolonnecontenantlesvaleurs:1310741 3)Sauverdansunfichier.matdunomdevarEx 4)Effacertouteslesvariables! 5)Ouvrirlefichier varEx

r=[1471013]; [1 4 7 10 13] c=[13;10;7;4;1]; savevarExrc clearrc l loadvarEx

Oprationsscalairesdebase p
Oprationsdebase(+,,*,/) 7/45 (1+i)*(2+i) 1/0 0/0 0/0 Exposants(^) 4^2 (3+4*j)^2 Prioritdesoprations+parenthses ((2+3)*3)^0.1 Pasdemultiplicationimplicite!! 3(1+0.7) %ilyauraunmessagederreur!! Commandepourrinitialiserlafentredecommande Commande pour rinitialiser la fentre de commande clc

Fonctionsprprogrammes p p g
MATLAB a une norme librairie de fonctions!! MATLABaunenorme librairiedefonctions!! Exemples: sqrt(2) ( ) log(2),log10(0.23) cos(1.2),atan(.8) exp(2+4*i) round(1.4),floor(3.3),ceil(4.23) angle(i); abs(1+i); angle(i);abs(1+i); Lalibrairiecomportegalementdesfonctionsbeaucouppluscomplexes!!!

Fonctions Help & doc p

help p
Informations sur lutilisation dune commande: Informationssurl utilisationd unecommande: helpsin Pourunedocumentationpluscomplte: docsin

Exercicesurlesoprationsscalaires Exercice sur les oprations scalaires


Vrifier que e^(i*x) =cos(x)+i sin(x)pourquelquesvaleursdex: Vrifierquee (i x) cos(x) i*sin(x) pour quelques valeurs de x: x=pi/3; a=exp(i*x) a exp(i*x) b=cos(x)+i*sin(x) ab

Dimensiondesmatricesetvecteurs
Dimensiondesmatricesetvecteurs: Regarderdansleworkspace Affichagedelafentredecommande Fonctionsize Fonction size

Pourlesvecteurs,ilyaaussilafonctionlength:

Lart detransposer p
Transpositionduvecteura a=[1234] transpose(a) Autrefaondetransposer a.' Sanslepoint:transpositionHermitienne,i.e.transposition+conjugu complexe a=[1+j2+3*j] a' a.' Pourdesvecteurdenombresrels,.' and'donnentlemmersultat!

Additionsetsoustractions
Additionsetsoustractionslmentparlment:

[12 3 + [ 2 11 = [14 14

32 11] 30 32] 2 21]

12 3 9 1 1 2 = 10 13 23 0 33 33

Lesdimensionsdoiventconcorder c=row+column(erreur!) Bonneutilisationdeladditionlmentparlment c=row+column c=row+column Sommeetmultiplicationdeslmentsdunvecteur s=sum(row); p=prod(row);

Fonctions:lmentparlment p
Les fonctions Matlab fonctionnent sur les matrices et les vecteurs! LesfonctionsMatlabfonctionnentsurlesmatricesetlesvecteurs! t=[123]; f=exp(t); Mmechosequcrire: h f=[exp(1)exp(2)exp(3)]; Lesoprateurs(*/^)ontdeuxmodesdefonctionnement lmentparlment matriciel

Oprations:lmentparlment p p
Poureffectuerdesoprationslmentparlment,onutiliselepoint(.) a=[123];b=[4;2;1]; a.*b,a./b,a.^b erreur!! a.*b,a./b,a.^(b) Ok!! , / , ( )
1 1 1 1 2 3 1 2 3 2 2 2 .* 1 2 3 = 2 4 6 3 3 3 1 2 3 3 6 9 3 3.* 3 3 = 3 3

4 [1 2 3] .* 2 = ERROR 1 1 4 4 2 .* 2 = 4 3 1 3 3 1.* 3 1 = 3 1 .

12 22 1 2 3 4 .^ 2 = 2 3 42 Can b C be any dimension di i

Oprationsstandardvs lmentparlment p p
Multiplicationstandard(*) M lti li ti t d d (*) Multiplicationlmentparlment (.*) Divisionstandard(/) Divisionlmentparlment (./) Exposant:standard(^) Exposant:lmentparlment (. ) Exposant: lment par lment (.^)

4 [1 2 3]* 2 = 11 1 1 3* 3 1 = 11

1 2 1 2 1 2 ^2= * 3 4 3 4 3 4 Must be square to do powers

1 1 1 1 2 3 3 6 9 2 2 2 * 1 2 3 = 6 12 18 3 3 3 1 2 3 9 18 27 3 3* 3 3 = 3 3

Exercicesurlesvecteurs
Produitvectorielentre[123]and[354]: [ ] [ ] a=[123]*[354] Mme produit mais lment par lment: Mmeproduit,maislmentparlment: b=[123].*[354] Vecteurcontenantleslogarithmedeslmentsduvecteurb: c=log(b)

Fonctionsdinitialisation
Matricesetvecteursdeuns,dezrosetdenombresalatoires: o=ones(1,10) vecteurligneavec10lmentstousgal1 z=zeros(23,1) vecteurcolonneavec23lmentstousgal0 r=rand(1,45) vecteurligneavec10lmentsalatoirescomprisentre0et1 g p

Exempledappeldunefonction var=zeros(M,N); (M N) g Nombredeligne Nombredecolonne

Fonctionsdinitialisationautomatique q
Pour initialiser une squence linaire: linspace Pourinitialiserunesquencelinaire:linspace a=linspace(0,10,5) dbut0,fin10(inclus),5valeurs Onpeutaussiutiliserlatechniquesuivante(:) b=0:2:10 dbut0,parincrmentde2,fin10 incrementcanbedecimalornegative c=1:5 danscecas,Lincrmentpardfautest1

Exercice
Construire un vecteur de 1000 valeurs de Construireunvecteurde1000valeursde f(x)=e^{x}*cos(x),pourxcomprisentre0et10. x=linspace(0,10,1000); li (0 10 1000) f=exp(x).*cos(x);

Manipulationdevecteurs p
Lepremierindexdunvecteurest1etnon0 x(n)retourneleneme lmentduvecteurx

[13
x(1)

5 9 10]
x(3) x(4)

x(2)

Largument(index)peutaussitreunvecteur Parexemple: x=[135910]; a=x(2:4); a x(2:4); a [5910]; a=[5 9 10]; b=x(1:end1); b=[1359];

Manipulationdematrices p
Deuxmaniredindexerlesmatrices manirestandard(ligne,colonne) indiceslinaires(commedanslecasdunvecteur) Indexation: standard ou indices linaire Indexation:standardouindices

b(1,1) b(2,1)

14 33 9 8

b(1,2) b(2,2)

b(1) b(2)

14 33 9 8

b(3) b(4)

Sousmatrices A =rand(5)%matricealatoirededimension5x5 A rand(5) % matrice alatoire de dimension 5x5 A(1:3,1:2)%sousmatrice(3x2) A([153],[14])%sousmatrice(3x2)

Manipulationsavances
L'argument (index) peut tre une matrice. Dans ce cas, chaque lment L argument(index)peuttreunematrice.Danscecas,chaquelment estrecherchindividuellement,etretourncommeunematrice a=[1 10 3 2]; a=[11032]; b=a([124;342]); Slectiondeligneetdecolonne

1 10 2 b= 3 2 10

12 5 c= 2 13
d=c(1,:); d=[125]; e=c(: 2); e=c(:,2); e=[5;13]; c(2,:)=[36];%remplacelasecondelignedec

Exercicesurlesmanipulationdevecteurs p
valuer la fct sinus entre 0 et 2*pi en utilisant 1000 points quidistants valuerlafct.sinusentre0et2 pienutilisant1000pointsquidistants. Quelleestlavaleur: lindex55 auxindex100110 x linspace(0, 2*pi, 1000); x =linspace(0,2 pi,1000); y=sin(x); v y(100:110) (100 110)

Exercicesurlesmanipulationdematrices
Btirunematricerempliedezrosdedimenssion3x100etunvecteur p contenantdesvaleursde0100espacsde10 mat=zeros(3,100); x=linspace(0,10,100); Remplacerlapremirelignedelamatriceparcos(x) mat(1,:)=cos(x); ( ) ( ) Remplacerladeuximelignedelamatriceparlog((x+2)^2) mat(2,:)=log((x+2).^2); ( , ) g(( ) ); Remplacerlatroisimelignedelamatriceparunvecteurcontenantdes p nombrealatoirescomprisentre1et1 mat(3,:)=2.*(0.5.*ones(1,100)rand(1,100));

Graphiques2D p q
Exemple x=linspace(0,4*pi,10); y=sin(x); Valeur de y en fonction des indexes plot(y); Valeur de y en fonction de x plot(x,y);
MATLABpermetdefacilementvisualiserles fonctions!!

Graphiques2D
Plus il y a de point, plus la fonction sera lisse x=linspace(0,4*pi,1000); plot(x,sin(x)); Les vecteurs doivent tre de mme dimension!! plot([1 2], [1 2 3]) erreur!!
1 1

10 valeurs:

0.8 0.6 0.4 0.2 02 0 -0.2 -0.4 -0.6 -0.8 -0 8 -1

1000 valeurs:

0.8 0.6 0.4 0.2 02 0 -0.2 -0.4 -0.6 -0.8 -0 8 -1

10

12

14

10

12

14

Graphiques2D p q
Onpeutchangerlacouleur,letypedepoint,letypedetraitetplus encore!! !! plot(x,y, 'bo ');
couleur l point Typedetrait d

Danscecas,ilnyaurapasdetrait,seulementdespoints plot(x,y, 'o') p ( , y, ) Titres title('titredugraphique');xlabel('Axedesx');ylabel('Axedesy'); Limites xlim([xmin xmax]); ylim([ymin ymax]); Taperlacommandehelpplot pourunelistecompltedesoptions

Graphiques2D p q
Pourtracerdeuxcourbessurlemmegraphique g p q hold on; Pourtracerunnouveaugraphique(danslexemple,10estleno.dela figure) figure(10); plot(x,y,'bo '); hold on; plot(x,y,ro '); ou f figure(10); ( ) plot(x,y,bo ',x,y,'ro '); Mmersultat!!

Graphiques2D p q
Plusieurstypesdegraphiques2D yp g p q plot(x,y); loglog(x,y); og og( , y); semilogx(x,y); semilogy(x,y); bar(x,y); bar(x, y); hist(x,y); polar(,r); stairs(x,y); stairs(x y); %graphique2Dencoord.(x,y) % g ap que og(y) s og( ) %graphiquelog(y)vslog(x) %graphiqueyvslog(x) %graphiquelog(y)vsx %graphiquebarre % graphique barre %histogramme %graphique2Dencoord.(,r) %graphique2Denescalier % graphique 2D en escalier

Exercicesurlesgraphiques2D g p q
Tracer la fonction f(x) = e^(|x|/(2pi))*cos(x) sur lintervale x = [10pi 10pi] Tracerlafonctionf(x)=e ( |x|/(2pi)) cos(x)surl intervalex=[ 10pi10pi]. Utiliserunelignerougepleineetunnombredepointsadquat. x=0:.01:10; plot(x exp( abs(x)/(2*pi)) *cos(x) 'r'); plot(x,exp(abs(x)/(2*pi)).*cos(x), r );