coursmemo.pdf

12
8/17/2019 coursmemo.pdf http://slidepdf.com/reader/full/coursmemopdf 1/12 Calcul scientifique avec Matlab Marc Buffat UFR de Mécanique Université Claude Bernard, Lyon I 11 septembre 2006 2  Marc BUFFAT, UFR Mécanique, UCBLyon

Upload: bracelets-bracelets

Post on 06-Jul-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 1/12

Calcul scientifique

avec Matlab

Marc Buffat

UFR de Mécanique

Université Claude Bernard, Lyon I

11 septembre 2006

2

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 2: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 2/12

3

Chapitre 1

Programmation avec Matlab

1.1 Démarche du calcul scientifique

1. Analyse physique du problème

2. Modèle mathématique

3. Analyse numérique

4. Solution algorithmique

5. Programmation sur un ordinateur

6. Analyse physique du résultat

1.2 Algorithme

Algorithme :   ensemble de règles précises, qui permettent d’obtenir un résultat à

partir d’opérations élémentaires

Algorithme numérique :  données et résultats = nombres

Calcul scientifique :   utilisation d’un ordinateur pour résoudre un modèle mathé-

matique d’un problème physique à l’aide d’algorithmes numériques.

1.2.1 Langage algorithmique

1. langage de description d’algorithmes

indépendant des ordinateurs

indépendant des langages (FORTRAN, PASCAL, C, Matlab, Maple)

2. langage naturel

proche du langage mathématique

mais explicite sans syntaxe rigide (compilateur=homme)

 Marc BUFFAT, UFR Mécanique, UCBLyon

1.2. ALGORITHME    4

1.2.2 Exemple

Problème :   détermination du PGCD de 2 nombres entiers a et b

Analyse :  propriété du PGCD

PGCD(a,b)=PGCD(a-b,b) (si a > b)

PGCD(a,b)=PGCD(a,b-a) (si a < b)

PGCD(a,a)=a

Algorithme PGCD

a,b entiers positifs

tant-que  a

= b faire

si a > b alors a ← a−b

sinon b ← b−a

fin tant-que

PGCD← a

Programme Matlab

1. % calcul le PGCD de 2 nombres entiers a et b

2. % initialisation aléatoire

3. A=round(1000*rand(1)); B=round(1000*rand(1)) ;

4. % algorithme

5. a=A; b=B;

6. while (a~=b)

7. if (a>b) a=a-b ;

8. else b=b-a ;

9. end

10. end;

11. PGCD=a;12. % affichage

13. disp(sprintf(’PGCD de %d et %d = %d\n’,A,B,a)) ;

1.2.3 Programmation structurée

“La gestion de la complexité d’un problème est l’essence même de la pro-

grammation. Nous serons toujours limités par le nombre restreint de détails que

l’on peut conserver clairement en mémoire”

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 3: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 3/12

5   1.3. MATLAB

1. Conception modulaire descendante

Décomposer le problème général en une succession de sous-problèmes plussimples et si possibles indépendants.

Déterminer les points essentiels

2. Rechercher d’une solution algorithmique

Utilisation de bibliothèques

3. Programmation structurée ascendante

Des sous-programmes (procédures) au programme principal

Soigner le fond en priorité et non la forme

Programmer simplement (sans astuces)

1.3 Matlab

Matlab   langage de manipulation numérique de matrices

(voir aussi Scilab (http ://www-rocq.inria.fr/scilab))

Matlab est une boite à outils d’analyse numérique, avec un environnement agréable

pour faire du calcul numérique avec sa programmation matricielle. Il dispose des

méthodes usuelles de l’analyse numérique :

1. résolution de système linéaire

2. détermination des valeurs propres

3. résolution de problème non-linéaire

4. résolution d’équations différentielles (raides)

5. intégration numérique

6. optimisation et contrôle

7. graphique 2D et 3D

Utilisation de l’aide en ligne! ! !

1.3.1 Rappel sur Matlab

clear   efface toutes les variables

variable  définition lors de l’initialisation

instruction   si terminer par un ; pas d’affichage du résultat

vecteur ligne   X=[1 2 3]; X=[1 :0.5 :3]; X=ones(1,5);

vecteur colonne   Y=[1;2 ;3] ; Y=X’; Y=zeros(5,1);

matrice   A=[ 1 0 ; 0 1] ; A=eye(2,2) ; M=[X ;X]; M=[Y Y]; M=[Y;Y] ;M=A’ ;

 Marc BUFFAT, UFR Mécanique, UCBLyon

1.3. MATLAB   6

opérations   *, -, / , \ : X=A\B ; ou X=inv(A)*B ;

fonctions   s’appliquent aux matrices

sin(A) ; A^2; A.^2;

sin(A).^2+cos(A).^2-ones(size(A))

chaînes  caractères entre 2 ’  , concatenation S=[’un’ ’ et deux’] (tableau de car.)

entrée sortie   disp(X) ; X=input(’X=’);

1.3.2 Structures de contrôle

boucles

for var=exp, inst., end  boucle sur les colonnes de exp

for var=1 :n, inst, end  boucle classique de 1 à n

Un premier exemple

X=rand(1,5) ;

S=0 ; for K=X, S=S+K^2, end ;

qui peut s’écrire plus classiquement

X=rand(1,5) ;

S=0 ; for i=1 :length(X), S=S+X(i)^2, end ;

En général, on peut éviter les boucles explicites

Exemple   calcul d’un résidu partiel des lignes 2 à 4 d’un système 5*5

A=rand(5,5) ; X=rand(5,1); B=rand(5,1) ; R=zeros(5,1) ;

for i=2 :4

R(i)=B(i)

for j=1 :5

R(i)=R(i)-A(i,j)*X(j)end

end

que l’on peut écrire plus efficacement

for i=2 :4, R(i)=B(i)-A(i,1 :5)*X(1 :5), end

ou encore

R(2 :4)=B(2 :4)-A(2 :4,1 :5)*X(1 :5) ;

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 4: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 4/12

7   1.3. MATLAB

Test s i

if cond , inst1 ,else inst2, end  test classique (possibilité de  elseif )

if x<0, y=x, else, y=-x, end

valeur logique :   0=faux, 1=vrai

opérateurs logiques :  & (et), | (ou), ~ (négation)

opérateurs relationnels :  <, <= ,> ,>= ,== ,~=

fonctions logiques :   any(Y==1), all(X==0)

Choix multiple

switch var, case val1, exp1 ; case val2, exp2 ; ... ;otherwise, exp ; end

switch num

case -1

disp(’moins un’) ;

case 1

disp(’plus un’) ;

case 0

disp(’zero’) ;

otherwise

disp(’autres valeurs’) ;

end

Boucle tant que

while cond, inst., end  exécute les instructions tant que la cdt est vrai

n=1

while prod(1 :n)<1.0e100

n=n+1

end

continue   passage à l’itération suivante

break  arrêt de la boucle interne

 Marc BUFFAT, UFR Mécanique, UCBLyon

1.3. MATLAB   8

Script

Un programme ou suite d’instructions Matlab peut être sauvegardé dans un

fichier script (M-File) ayant une extension .m

fichier program.m

1. a=0; fa=-Inf;

2. b=3; fb=-fa ;

3. while (b-a) >eps*b

4. x=(a+b)/2 ; fx=x^3-2*x-5 ;

5. if (sign(fx) == sign(fa))

6. a=x ; fa=fx ;

7. else

8. b=x ; fb=fx ;

9. end

10. end

11. x

Pour exécuter le script, il suffit de taper le nom du fichier sans l’extension

> > program

Rem : les variables du script sont globales

Fonctions

Une fonction sont écrites dans un fichier avec une extension  .m  (M-File) et le

nom du fichier doit être le nom de la première fonction définie (la seule visible).

On l’exécute en tapant le nom avec des arguments.

fonction   function arguments de sortie = nom(arguments d’entrée)

fonction racine

1. function x=racine(a,b)

2. % calcul la racine de la fonction f(x) définie ci-après sur [a,b]

3. fa=f(a); fb=f(b) ; x=(a+b)/2 ;

4. if (fa*fb>0) x=-Inf ; return ; end;

5. while (b-a)>eps*x

6. x=(a+b)/2 ; fx=f(x);

7. if(sign(fx)==sign(fa))

8. a=x; fa=fx ;

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 5: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 5/12

9   1.3. MATLAB

9. else

10. b=x ; fb=fx ;

11. end

12. end

13. % definition de f(x) (fonction locale)

14. function y=f(x)

15. y=x^3-2*x-5

Exemples

Fonction calculant n!

1ere version récursive

1. function y=fact(n)

2. if (n<=1) y=1

3. else y=n*fact(n-1)

4. end

2nd version avec une boucle

1. function y=fact(n)

2. y=1;

3. for i=2 :n, y=y*i, end3ieme version optimisée

1. function y=fact(n)

2. y=prod(1 :n) ;

Pointeurs vers une fonction

function handle   pointeur vers une fonction=adresse

ptr_fonct=@fonction

evaluation feval(ptr_fonct,liste arguments)

Calcul de l’intégrale I  =R 

 ba   f ( x) dx  par la méthode des trapézes

1. function A=trapezes(ptr_f,a,b,n)

2. h=(b-a)/n ; X=[a :h :b] ; Y=feval(ptr_f,X) ;

3. A=h*((Y(1)+Y(n+1))/2+sum(Y(2 :n))) ;

4. % ou A=trapz(X,Y) ;

Utilisation

> > fp=@sin

> > A=trapezes(fp,0,pi)

 Marc BUFFAT, UFR Mécanique, UCBLyon

1.3. MATLAB   10

1.3.3 Optimisation

 Matlab est un langage matricielle !

il faut donc utiliser en priorité les  notations matricielles

Exemple : calcul de la matrice de Vandermond A

 At  =

1   t 1   t 2   ..   t n1   t 21   t 22   ..   t 2n.. .. .. .. ..1   t m1   t m2   ..   t mn

première version :  méthode naturelle (identique au C)

1. t=[0 :1 :200]; n=100 ;

2. cpu0=cputime() ;

3. m=size(t,1) ;

4. for i=1 :m

5. for j=1 :n+1

6. A(i,j)=t(i) (j-1);

7. end

8. end

9. cputime()-cpu0

qui s’exécute en 4,87 sec

version matricielle optimisée

1. cpu0=cputime() ;

2. m=size(t,1) ;

3. A=zeros(m,n+1) ;

4. for i=1 :n

5. A( :,i+1)=A( :,i).*t;6. end

7. cputime()-cpu0

Alors que la version matricielle s’exécute en 0,06 s, soit 80 fois plus rapidement

1.3.4 E/S avec Matlab

E/S formattées  générales et similaires au C

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 6: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 6/12

11   1.3. MATLAB

ouverture du fichier

fid=fopen(nomfichier,permisson)

permission=’r’,’w’ (sous windows) ’rt’,’wt’

lecture dans le fichier

A=fscanf (fid,format)

format=’%d %g %f %s %c’

ecriture dans le fichier

count=fprintf (fid,format,A1,A2,..)

fermeture du fichier

status=fclose(fid)

 Marc BUFFAT, UFR Mécanique, UCBLyon

1.3. MATLAB   12

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 7: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 7/12

13

Chapitre 2

Memo Matlab

2.1 Manipulation des vecteurs et des matrices

A=[1,3,6;2,7,8;0,3,9]

size(A)

A’ transposé d’une matrice

A( :,3) composant d’une matrice

A(1, :)

A(1, :) +A(3, :) addition de la 1ere et 3 eme ligne

B=[3 4 5 ; 6 7 2 ; 8 1 0]; pas de sortie sur l’écran car la ligne finit par (; )B

C=A+B addition de deux matrices

C=A-B soustraction de deux matrices

C=A*B produit de deux matrices

X=A\B résolution de A.X=B

Symbole Explication

inv   inverse d’une matrice

det   déterminant d’une matrice

rank   rang d’une matrice

cond   condition d’une matrice

eye(n)   nxn matrice identité

trace   sommation des termes de la diagonale d’une matrice

zeros(n,m)   n×m matrice d’éléments nulles

 Marc BUFFAT, UFR Mécanique, UCBLyon

2.2. VALEURS PROPRES   14

>> inv(A) Inversion d’un matrice

>>A*inv(A) ;>>d=det(A) déterminant d’une matrice

>>rank(A) ; ang d’une matrice

>>eye(3) matrice identité 3x3

>>rand(3,3) matrice contenant des nombres aléatoires

Le nombre condition d’une matrice traduit le degré de  singularité de la ma-

trice. Une matrice identité à un nombre condition égale à 1 alors qu’une matrice

singulière à un nombre condition qui tend vers l’infini.

>>cond(eye(6))

ans=

1

>>A=[1 1 ;1 1+0.000001] ;

>>cond(A)

ans=

4.0000e+006

Symbole Explication

expm   exponentiel d’une matrice

eig   valeurs propres et vecteurs propres d’une matricelu   décomposition LU d’une matrice

qr   décomposition QR d’une matrice

2.2 Valeurs propres

Le problème des valeurs et vecteurs propres est défini comme suit :

 =λΦ

où sont les  λ  sont les valeurs propres et  Φ  les vecteurs propres.

>>e=eig(A) % donne les valeurs propres de A

>>[V,D]=eig(A) % V est une matrice dont les

colonnes sont les composantes des vecteurs propres

D est une matrice dont les diagonales sont les valeurs propres.

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

>>[V,D]=eig(A)

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 8: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 8/12

15   2.3. DÉCOMPOSITION LU 

2.3 Décomposition LU

>>[L,U]=lu(A)

>>L*U

>>[L,U,P]=lu(A) % La matrice P contient les purmutations tel que

P*A=L*U

2.4 Décomposition QR

La matrice A peut être décomposée en un produit de deux matrice, une matrice

orthonormée Q et une autre triangulaire supérieure R.>>[Q,R]=qr(A)

2.5 Solution d’un système linéaire

Ax = y

>>x=inv(A)*y

>>x=A\y

>>[inv(A)*y A\y]

2.6 Analyse des données

Symbole Explication

min(max)   extrait le minimum (maximum) d’un vecteur

sum   calcul la somme des éléments d’un vecteur

sort   arrange le vecteur par ordre croissant des valeurs

mean   donne la valeur moyenne d’un vecteur

 Marc BUFFAT, UFR Mécanique, UCBLyon

2.7. OUTILS POUR LES FONCTIONS POLYNÔMIALES   16

2.7 Outils pour les fonctions polynômiales

Symbole Explication

poly   convertit un ensemble de racines en une équation polynômiale

roots   donne les racines d’un polynôme

polyval   évalue un polynôme pour une valeur donnée

conv   multiplie deux polynômes

deconv   decompose un^polynôme en dividend et residu

polyfit

Exemples :

>>poly([r1,r2, ...,rn])>>roots([1 15 136 498 968 592])

>>y=polyval([1 3 4 -5],2) % evaluation du polynôme s3 +3s2 +4s -5 à s=2

Multiplication de deux polynômes

a(s)= s2+3 s-1, b(s)=s3-2s2+6s-7

>>c=conv([1 3 -1],[1 -2 6 7])

c= 1 1 -1 13 -27 7

qui sont les coefficients du polynôme produit

Décomposition d’un polynôme

a(s)=b(s) m(s) + r(s)

>>[m,r]=deconv(a,b)

>>[m,r]=deconv([1 -2 6 7],[1 3 -1])

m=

1 -5

r=

0 0 22 -12

Nombres complexes>>2 +3*i

>>i=sqrt(-1)

i=0 +1.0000i

>>c=-10 + 9* i>>[real(c), imag(c)]

ans=-10 9

Conjugué d’un nombre complexe>>conj(-1+5*i)

ans= -1-5*i

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 9: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 9/12

17   2.8. LES BOUCLES ET LES CONDITIONS LOGIQUES

2.8 Les boucles et les conditions logiques

>>for i=1 :3 :100

a(i,i)=2*i ;

end

Boucles imbriquées

>>for i=1 :100

for j=1 :50

for k=1 :50

a(i,j)=b(i,k)*c(k,j)+a(i,j) ;end

end

end

Boucle infinie

condition while

déclaration

end

 Exemple1

i=1

while (i<100)

i=i+1;

end

 Exemple2

n=1000;

var=[];

while (i<100)

i=i+1;

n=n/2-1;

var=[var,n];

end

if    condition#1

déclaration#1

elseif   condition#2

déclaration#2

 Marc BUFFAT, UFR Mécanique, UCBLyon

2.9. ECRITURE DES FONCTIONS   18

else

déclaration#3end

 Exemple

n=100 ;

if (rem(n,3)==0)

x=0;

elseif (rem(n,3)==1)

x=1;

else

x=2;

end

où rem(x,y) est utilisé pour calculer le reste de la division de x par y.

Opérateurs logiques et relationnels

symbole Explication

==   les deux conditions sont égales˜=   les deux conditions ne sont pas égales

<= (>=)   une est inférieure (supérieure) ou égale à l’autre

<(>)   une est inférieure (supérieure) à l’autre

&   l’operateur et

|   l’opérateur ou

2.9 Ecriture des fonctions

MATLAB fournit des outils pratiques avec lesquels on peut écrire des pro-

grammes qui utilisent une collection des commandes MATLAB. Cette approche

est similaire à celle des autres langages de programmation.

Le fichier programme doit avoir le format filename.m normalement appelé m-

 file. Ce-ci étant, tous les sous programmes MATLAB doivent finir par une exten-

sion .m, de sorte que MATLAB les reconnaisse comme programme MATLAB.

 Exemple

function[ov1 , ov2, ...]=func1(iv1, iv2, ....)

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 10: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 10/12

19   2.9. ECRITURE DES FONCTIONS

iv1 , iv2, ... sont les données (input) et  ov1 , ov2, ... sont les résultats (output)

 Exemple : résolution d’une équation algébrique de second ordre

ax2 +bx +c

La solution est donnée par la relation analytique  x = −b∓√ 

b2−4ac2a

function [r1,r2]=secroot(a,b,c) ;

%

% Trouver le déterminant

Det=b2- 4ac ;

if (Det<0),

r1=−b+ j

√ − Det 2a

  ;

r2=−b− j

√ − Det 2a   ;

disp(’Les deux racines sont complexes conjuguées)’ ;

[r1 r2]

elseif  (Det==0),

r1=-  b2a

r2=r1

disp(’Deux racines doubles) ;

else(Det>0)

r1=−b+√  Det 2a

  ;

r2=−b−√  Det 2a

  ;

disp(’Deux racines distinctes’) ;

end

Une fois cette fonction estcrée, on fait appelà elle comme suit :>>[r1,r2]=secroot(3,4,5)

ou>>[p1,p2]=secroot(3,4,5)

Remarque : Il est important de spécifier le chemin (pathname) du sous pro-

gramme.Un autre souprogramme fct.m est donné ci-dessous

function [f ] =   f ct ( x) f  = (1− x)ˆ2 ;

Dans la ligne de commande du programme Matlab on introduit :>>y=fct(9);

Ce type de sous programme permet une grande souplesse dans l’écriture des

programmes.

 Marc BUFFAT, UFR Mécanique, UCBLyon

2.9. ECRITURE DES FONCTIONS   20

Symbole Explication

save   sauvegarde les variables courantesload   charge un fichier Matlab déjà sauvegardé

diary   sauvegarde les données sur l’écran dans un fichier en format texte

La forme de ces symboles

save nomfichier var1 var2 ....

Le fichier généré parla commande save possède l’extension .mat  appelé mat − f ile

Dans le cas où nous voulons sauvegarder le fichier dans un format standard :

save nomfichier var1 var2 ..../ascii/double

La commande load est la contre partie de  save. Cette commande s’écrit :

load   nomfichier var1 var2 ....

>>a=[1 3 4]>>b=3

>>save test 

>>clear all % efface toutes les variables

>>who % affiche toutes les variables utilisées

>>load test

>>who

diary Cette commande capture tout le texte, avec les lignes de réponse, affiché

sur l’écran. Le texte est sauvegardé dans un fichier qui peut être édité plus tard.

>>diary on>>a=1 ; b=4 ; c=5 ;

>>[a b c]

>>d=a*b

>>e=g*h

>>diary off 

A ce stade on peut utilisé tout éditeur de fichier pour modifier le fochier diary.

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 11: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 11/12

21   2.10. FONCTIONS D’ENTRÉE ET DE SORTIE DE BASE 

2.10 Fonctions d’entrée et de sortie de base

>>age=input(’quelle est votre âge’)

>>nom=input(’quelle est votre nom’,’s’)

Le signe ’s’ c’est pour indiquer que c’est une chêne de caractères.

disp cette commande affiche sur l’écran un texte ou une valeur

disp(’ Introduction à Matlab’)

format   La commande format est utilisée pour l’écriture des nombres sous dif-

férents formats. Matlab effectue les calcul en mode  double pr ecision. Il est des

fois préférable de ne pas afficher les nombres en double précision pour ne pasencombrer l’écran. Matlab offre plusieurs possibilités d’affichage :

>>format short e

>>format long

>>format long e

>>format hex

2.11 Tracer de courbes

Tracer de courbes simples :

>>t=0 :0.1 :10 ;

>>y=sin(t);

>>plot(y)

>>title(’plot(y)’)

Si on veut tracer une courbe avec une couleur donnée ou un type de ligne, on

peut le spécifier comme l’indique l’exemple suivant :

>>plot(y,’-b’)

ligne bleu en trait pointillé.Les différents style sont donnés dans le tableau ci-dessous

Style Line Couleur

Solide ’-’ point . rouge r

Pointillé ’_’ étoile * vert g

Parsemé ’ :’ cercle ◦   bleu b

Pointillé-parsemé ’-.’ plus + blanc w

x-marqueur x invisible i

 Marc BUFFAT, UFR Mécanique, UCBLyon

2.11. TRACER DE COURBES   22

Tracer plusieurs données

>>t=0 :0.1 :10 ;>>y1=sin(t).*t;

>>y2=cost(t).*t ;

>>plot(t,y1,’-’,t,y2,’- -’)

où les symboles ’-’ et ’- -’ représentent le style de ligne.

On peut aussi introduire les commandes suivantes :

xlabel(’text’) et ylabel(’text’) pour introduire la légende des axes x et y.

axis[xmin, xmax, ymin, ymax]

La commande   text   est utilisée pour introduire du texte dans la fenêtre gra-

phique à une position (x,y) donnée

text(x,y,’contenu du texte’)

Exemple

>>t=0 :0.1 :20 ;

>>plot(t,sin(t))

>>xlabel(’Time(sec)’)

>>ylabel(’ydata’)

>>title(’Ceci est un exemple’)

>>grid

>>gtext(’sin(t)’)

>>axis([0 20 -1.5 1.5])

La commande grid rajoute le ’maillage’ dans la figure.

La commande gtext introduit un texte dans la figure en utilisant la sourie.

subplot est utilisée pour introduire plusieurs graphiques sur une même fenêtre

Matlab>>subplot(pqr)

Les nombres   p  et  q  donnent la dimension de la figure et le nombre  r  permet

d’identifier (ou séparer) la figure

>>x=0 :0.1 :3*pi ; y=sin(x) ; z=cos(x) ;

>>subplot(222)

>>plot(x,y)

>>title(’x et y’)

>>subplot(223)

 Marc BUFFAT, UFR Mécanique, UCBLyon

Page 12: coursmemo.pdf

8/17/2019 coursmemo.pdf

http://slidepdf.com/reader/full/coursmemopdf 12/12

23   2.11. TRACER DE COURBES

>>plot(x,z)

>>title(’x et z’)>>subplot(224)

>>plot(x, y, ’-’, x, z, ’- -’)

>>title(’x et [y z]’)

 Marc BUFFAT, UFR Mécanique, UCBLyon