INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES
24, rue Pasteur ± 94270 LE KREMLIN-BICETRE * Tél. : 01.44.08.01.00 * Fax : 01...
2/47
3/47
1. PRESENTATION DE MATLAB .................................................................................... 5
1.1 ...
4/47
FICHE 3 : GESTION DE L¶AFFICHAGE ................................ ................................ .................3...
5/47
1. PRESENTATION DE MATLAB
1.1 CALCULS NUMERIQUES USUELS
1.1.1 Exemple d¶application
Trouver les racines du polynôme d...
6/47
Nota :
- On peut éditer les commandes ultérieures en utilisant la flèche Ĺ. Pour
retrouver la commande plus rapidemen...
7/47
 x = [0 :0.2 :10]
 y = x.^2 .* (1+exp(-x))
 plot(x,y,¶b - -¶)
Par défaut, la figure s¶ajuste automatiquement à l¶ense...
8/47
On définit la fonction dans un fichier m, qui doit être enregistré dans le
répertoire de travail courant (Current Dir...
9/47
Exemple :
Créer une fonction permettant de trouver les racines d¶un polynôme du 2 nd
degré. On commence par ouvrir un...
10/47
2. ANALYSE
2.1 SUITES REELLES
2.1.1 Définition
On appelle suite numérique une application définie par :
)n(un
:u
C
„...
11/47
Nota :
- Une boucle d¶itération se termine obligatoirement par l¶instruction end.
- A la fin de la première ligne de...
12/47
3. ALGEBRE LINEAIRE
3.1 MATRICES
3.1.1 Notations et vocabulaire
3.1.1.1 Définition
Un tableau M constitué de n ligne...
p11211 aaa -
¹
¹
¹
¹
¹
º
¸
©
©
©
©
©
ª
¨
1n
21
11
a
a
a
/
Matrices carrées
Une matrice de type (n,n) est appelée matrice c...
13/47
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«
!
nn
22
11
a00
0
a0
00a
M
-
  /
/
 
-
les matrices carrées triangulaires supérieures ou ...
14/47
Comme les tableaux de valeurs présentés dans le paragra phe 1.1.3, les
matrices sont définies entre des crochets. On...
15/47
3.2 OPERATIONS SUR LES MATRICES
3.2.1 Addition
Soient deux matrices de même type :
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«
!
np2...
16/47
p,...,1k
n,...,1iik ]a[A
!
!! et
£,...,1j
p,...,1kkj ]b[B
!
!!
le résultat du produit
est la matrice C de type (n, )...
17/47
Pour inverser une matrice A sous Matlab, on peut utiliser :
inv(A) ou A^(-1)
3.3 SYSTEMES LINEAIRES
3.3.1 Définition...
18/47
±
±
±
±
°
±±
±
±
¯
®
!
!
!
!
nnnn
ininiii
2nn2jj2222
1nn1jj1212111
bxa
bxa...xa
bxa...xa...xa
bxa...xa...xaxa
)S(
/
...
19/47
1. Dans un système donné (S), on peut intervertir 2 lignes
quelconques Li et Lk. On écrira
ki LL m
2. On peut rempla...
20/47
On cherche ensuite à annuler toute la colonne en dessou s du pivot choisi
en effectuant des actions élémentaires de ...
21/47
alors on a obtenu un système échelonné de type (3) (cf. paragraphe
3.3.1) qui n¶admet aucune solution.
En revanche, ...
22/47
23/47
REFERENCES BIBLIOGRAPHIQUES
[R1] Applications mathématiques avec Matlab
Tome 1 : algèbre linéaire et géométrie
Tome ...
24/47
25/47
FICHES MEMO
26/47
27/47
FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES
Une session de travail peut être sauvegardée sous 2 formes différentes...
28/47
Pour réutiliser les commandes ainsi enregistrées, il existe plusieurs méthodes :
- Pour exécuter l¶ensemble des comm...
29/47
FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES
Lister les variables de la session de travail
La fenêtre Workspace list...
30/47
31/47
FICHE 3 : GESTION DE L¶AFFICHAGE
Raccourcis pour éditer les commandes utilisées dans la fenêtre de commande
On peut ...
32/47
33/47
FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE
Descriptif
Pour obtenir le descriptif d¶une fonction ou com...
34/47
35/47
FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET MATRICES
Comme les vecteurs, les matrices sont généralement dé...
36/47
37/47
FICHE 6 : TRACER DES GRAPHIQUES 2D
La commande plot permet de tracer tous les graphes plans. On l¶utilise sous la fo...
38/47
39/47
MINI-PROJETS
40/47
41/47
MINI-PROJET 1 : PARTS D¶UN MARCHE
Soient A et B deux produits concurrentiels. On suppose qu¶aucun produit nouveau n¶...
3.07.0P
t
0 ! , calculer P1, P2, P3, P10 et P20.
2. Effectuer de nouveau les calculs pour d¶autres valeurs de
00
t
0 yxP ! , vérifiant toujours
1yx 00 ! . Qu¶observe-t-on ?
3. Soit d un réel appartenant à l¶intervalle A ?4/3,4/1 . O...
nn
t
n yxP ! lorsque n tend vers g ? Quelle interprétation
économique peut-on faire de ce résultat ?
42/47
43/47
MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3)
Quels chiffres tous différents entre 1 et 9 doit -on mettre dans cha...
Prochain SlideShare
Chargement dans…5
×

57277345 cours-matlab

1 113 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 113
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
108
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

57277345 cours-matlab

  1. 1. INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES 24, rue Pasteur ± 94270 LE KREMLIN-BICETRE * Tél. : 01.44.08.01.00 * Fax : 01.44.08.01.13 Etablissement Privé d¶Enseignement Supérieur ± SIRET N° 433 695 632 00011 ± APE 803Z INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES Initiation à MATLAB Support de cours Mme VALENTIN Sontsada (Edition 2004 - 2005)
  2. 2. 2/47
  3. 3. 3/47 1. PRESENTATION DE MATLAB .................................................................................... 5 1.1 CALCULS NUMERIQUES USUELS................................ ................................ ................5 1.1.1 Exemple d¶application ................................ ................................ ..........................5 1.1.2 Les fonctions mathématiques usuelles ................................ ................................ .6 1.1.3 Calculs sur un ensemble de valeurs ................................ ................................ .....6 1.2 GRAPHIQUES................................ ................................ ................................ .................6 1.2.1 Représentations graphiques 2D ................................ ................................ ...........6 1.2.2 Représentation graphique d¶une fonction ................................ .............................7 1.3 PROGRAMMATION ................................ ................................ ................................ ........7 1.3.1 Créer ses propres fonctions ................................ ................................ .................7 1.3.2 Créer un sous-programme ................................ ................................ ...................8 2. ANALYSE ................................................................................................................... 10 2.1 SUITES REELLES................................ ................................ ................................ .........10 2.1.1 Définition ................................ ................................ ................................ ............10 2.1.2 Itérations et étude de suites ................................ ................................ ...............10 3. ALGEBRE LINEAIRE .................................................................................................12 3.1 MATRICES................................ ................................ ................................ ....................12 3.1.1 Notations et vocabulaire................................ ................................ .....................12 3.1.2 Définir des matrices avec Matlab................................ ................................ ........13 3.2 OPERATIONS SUR LES MATRICES................................ ................................ ............15 3.2.1 Addition ................................ ................................ ................................ ..............15 3.2.2 Multiplication par des scalaires ................................ ................................ ...........15 3.2.3 Multiplication des matrices ................................ ................................ .................15 3.2.4 Transposée d¶une matrice ................................ ................................ ..................16 3.2.5 Inversion de matrices carrées................................ ................................ .............16 3.3 SYSTEMES LINEAIRES................................ ................................ ................................ 17 3.3.1 Définition ................................ ................................ ................................ ............17 3.3.2 Opérations fondamentales sur les systèmes ................................ ......................18 3.3.3 Méthode de résolution de Gauss ................................ ................................ ........19 3.3.4 Systèmes de Cramer................................ ................................ ..........................21 3.3.5 Utilisation de Matlab ................................ ................................ ...........................21 REFERENCES BIBLIOGRAPHIQUES ............................................................................. 23 FICHES MEMO ................................................................................................................. 25 FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES................................ .................27 FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES................................ ....................29
  4. 4. 4/47 FICHE 3 : GESTION DE L¶AFFICHAGE ................................ ................................ .................31 FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE.........................33 FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET MATRICES................................ ................................ ................................ ....................35 FICHE 6 : TRACER DES GRAPHIQUES 2D ................................ ................................ ..........37 MINI-PROJETS ................................................................................................................. 39 MINI-PROJET 1 : PARTS D¶UN MARCHE ................................ ................................ .............41 MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3) ................................ ....................43 MINI-PROJET 3 : RESOLUTION D¶UN SYSTEME DE CRAMER................................ ...........45 MINI-PROJET 4 : DIVISION EUCLIDIENNE ET SUITE PSEUDO- ALEATOIRE ................................ ................................ ................................ ..................47
  5. 5. 5/47 1. PRESENTATION DE MATLAB 1.1 CALCULS NUMERIQUES USUELS 1.1.1 Exemple d¶application Trouver les racines du polynôme du 2 nd degré : P(x) = 3.7x²+x-1.5 Solution de la forme : a2 ac4²bb x s ! On commence par définir les paramètres du problème : a=3.7 a = 3.7 b=1 ; c= -1.5 ; Nota : - Les trois variables a,b et c apparaissent dans la fenêtre Workspace. - Dans la fenêtre Command Window, on peut aussi utiliser l¶instruction who ou whos. - Pour effacer les paramètres de la mémoire courante, on utilise l¶instruction clear (ou clear all) pour tout effacer. Dans le cas où on veut uniquement effacer la variable a : clear a. - En terminant la ligne d¶instruction par un point -virgule, on n¶affiche pas le résultat de l¶opération. - Matlab différencie les caractères minuscules des majuscules. - Lorsque l¶on affecte une nouvelle valeur à une variable, la précédente valeur est remplacée. On continue la résolution en calculant le déterminant et les deux racines : delta = b^2-4*a*c; x1 = (-b+sqrt(delta)) / (2*a) x1 = 0.5158 x2 = (-b-sqrt(delta)) / (2*a) x2 = -0.7860
  6. 6. 6/47 Nota : - On peut éditer les commandes ultérieures en utilisant la flèche Ĺ. Pour retrouver la commande plus rapidement, on tape le(s) premier(s) caractère(s) et on utilise la flèche Ĺ. - Pour modifier les caractères d¶une c ommande, on utilise les flèches ĺ ou ĸ. 1.1.2 Les fonctions mathématiques usuelles De nombreuses fonctions mathématiques sont disponibles dans Matlab. Une liste exhaustive est présentée dans l¶aide de Matlab. Pour ouvrir la fenêtre de l¶aide en ligne, on utilis e l¶instruction : helpwin Les fonctions mathématiques élémentaires se trouvent dans Elementary math functions (matlab/elfun). 1.1.3 Calculs sur un ensemble de valeurs Matlab permet d¶effectuer des calculs sur un ensemble de valeurs. Au préalable, il nous faut stocker ces valeurs dans un vecteur (ou tableau). Exemple : Calculer )e1(xy x2 ! pour x = 0, 0.2, 0.4, « , 1. On définit un vecteur de valeurs régulièrement espacées en donnant successivement la valeur initiale 0, le pas 0.2 et enfin la valeur finale 1 : x = [0 :0.2 :1] On calcule ensuite les images de ces valeurs. Pour procéder au calcul sur toutes les valeurs de x, on remplace les opérateurs ^ et *, respectivement par .^ et .* : y = x.^2 .* (1+exp(-x)) 1.2 GRAPHIQUES 1.2.1 Représentations graphiques 2D La commande plot permet de tracer tous les graphes plans. On l¶utilise sous la forme : plot(abscisse, ordonnée, options) options est une chaîne de caractères permettant de préciser par exemple le type ou la couleur du tracé. Exemple :
  7. 7. 7/47 x = [0 :0.2 :10] y = x.^2 .* (1+exp(-x)) plot(x,y,¶b - -¶) Par défaut, la figure s¶ajuste automatiquement à l¶ensemble des points à représenter, mais la commande axis permet d¶imposer ces propres choix. Pour ajouter un quadrillage, on utilise l¶instruction grid on. Plusieurs tracés peuvent être effectués sur la même figure grâce à la commande hold on. Pour ouvrir une nouvelle figure, il suffit de taper : figure La commande clf permet d¶effacer la figu re courante. On peut nommer les axes avec les commandes xlabel ou ylabel, selon l¶axe considéré, inclure un titre ( title) ou une légende (legend). xlabel(µx¶) ylabel(µy¶) title(µtracé de y = x^2(1+exp(-x))¶) Il peut s¶avérer intéressant d¶importer un tracé vers un document world. Pour cela, on sélectionne dans la fenêtre figure File Export et on choisit un format de conversion (.png, .jpeg, «). On peut aussi tracer plusieurs graphes sur la même figure : subplot 1.2.2 Représentation graphique d¶une fonction L¶instruction ezplot permet de tracer simplement les graphes de fonctions. Exemples : ezplot(µx^2*(1+exp(-x))¶) ezplot('x^3 + 2*x^2 - 3*x + 5 - y^2') ezplot('t*cos(t)','t*sin(t)',[0,4*pi]) 1.3 PROGRAMMATION 1.3.1 Créer ses propres fonctio ns Exemple : Soit la fonction f 1 définie par : xlnx)x(f1 !
  8. 8. 8/47 On définit la fonction dans un fichier m, qui doit être enregistré dans le répertoire de travail courant (Current Directory) sous le nom f1.m. Le contenu du fichier doit respecter l¶une des deux syntaxes suivantes : f1.m % définition de la fonction y=x.ln(x) function y = f1(x) y = x.*log(x) ; function y = f1(x) % définition de la fonction y=x.ln(x) y = x.*log(x) ; Le commentaire, situé en début ou juste sous la déclaration function, est le texte affiché dans la Command Window si on appelle help f1 L¶instruction function indique qu¶il s¶agit d¶une fonction et la syntaxe y = f1(x) renseigne sur le(s) entrée(s)/sortie(s) : le calcul de la fonction dépend de x et la valeur de la sort ie est enregistrée sous y. Nota : - On affecte le même nom à la fonction et au fichier m. - L¶utilisation de l¶opération .* permettra d¶appliquer cette fonction à un tableau de valeurs. - La fonction log de Matlab calcule le logarithme népérien. (voir help log) L¶utilisateur peut alors procéder selon les besoins : - soit à des calculs numériques unitaires : f1(1.5) ans = 0.6082 - soit à des calculs sur des tableaux de valeurs : f1([1 :0.2 :2]) ans = 0.2188 0.4711 0.7520 1.0580 1.3863 - soit à des représentations graphiques, grâce à la commande fplot : fplot(µf1¶,[0.2 2]) ; grid on ; title(µfonction f1(x) = x*log(x)¶) 1.3.2 Créer un sous-programme Un sous-programme permet de mémoriser, d¶adapter, de réutiliser un calcul. On l¶appelle fonction en informatique (à ne pas confondre avec une fonction au sens mathématique, même si les deux notions se rejoignent parfois, comme l¶exemple précédent).
  9. 9. 9/47 Exemple : Créer une fonction permettant de trouver les racines d¶un polynôme du 2 nd degré. On commence par ouvrir un fichier m que l¶on enregistre sous solvepoly2.m. On choisit ensuite les entrées/sorties de la fonction : - en entrée, on considère les coefficients a,b et c du polynôme P(x)=ax²+bx+c, - en sortie, les racines sont enregistrées dans un ta bleau nommé X. La syntaxe est la suivante : solvepoly2.m function X = solvepoly2(a,b,c) % solvepoly2 calcule les racines d¶un polynôme du 2 nd degré P(x)= ax²+bx+c. % X = solvepoly2(a,b,c), X est un tableau contenant les deux racines. delta = b^2-4*a*c; X(1) = (-b+sqrt(delta)) / (2*a); X(2) = (-b-sqrt(delta)) / (2*a); Résolvons de nouveau le polynôme de l¶exemple 1 à l¶aide de cette function. Supposons que l¶utilisateur ne connaisse que le nom de la fonction, pour obtenir des renseignements sur celle -ci, il doit taper : help solvepoly2 calcule les racines d¶un polynôme du 2 nd degré P(x)= ax²+bx+c. X = solvepoly2(a,b,c), X est un tableau contenant les deux racines. Une fois renseigné, il peut maintenant utiliser la fonction : solvepoly2(3.7,1,-1.5) ans = 0.5158 -0.7860
  10. 10. 10/47 2. ANALYSE 2.1 SUITES REELLES 2.1.1 Définition On appelle suite numérique une application définie par : )n(un :u C „p‚ u(n) est le terme général de la suite et est souvent noté un. Par abus de langage, la suite u qui est déterminée par ses valeurs u(n)=un, se note : 0nn )u( u Une suite peut être définie à partir d¶un certain rang p fixé. On notera : pnn )u( u Une suite 0nn )u( u est majorée s¶il existe une constante M telle q ue : Mu,0n n eu et elle est minorée s¶il existe une constante m telle que : mu,n n uu Elle est bornée s¶il existe une constante C 0 telle que : Cu,0n n eu Il est facile de vérifier qu¶une suite est bornée si, et seulement si, elle est majorée et minorée. 2.1.2 Itérations et étude de suites Pour étudier les suites sous Matlab, il est essentiel de connaître les instructions d¶itération classiques, while et for, permettant de répéter un traitement sur les termes successifs d¶une suite. La syntaxe générale est : for variable = [valeurinitiale : pas : valeurfinale], % traitements à répéter end ou bien while conditionàrespecter, % traitements à répéter end
  11. 11. 11/47 Nota : - Une boucle d¶itération se termine obligatoirement par l¶instruction end. - A la fin de la première ligne de la boucle, la virgule n¶est pas obligatoire, mais le point -virgule n¶est pas accepté ! Exemple : On veut calculer les 10 premiers termes d¶une suite géométrique de raison 0.5 et de premier terme u(1)=100. Les termes successifs de la suite sont enregistrés dans un tableau (ou vecteur) : u = [u(1) u(2) « u(n)], n=10 u(1) = 100 ; for k=[1 :1 :9], u(k+1) = 0.5 * u(k) ; end Aucun résultat ne s¶affiche en présence du point-virgule à la fin de l¶opération. Pour obtenir les 5 premiers termes de la suite, on tape : u(1:5) ans = 100.0000 50.0000 25.0000 12.5000 6.2500
  12. 12. 12/47 3. ALGEBRE LINEAIRE 3.1 MATRICES 3.1.1 Notations et vocabulaire 3.1.1.1 Définition Un tableau M constitué de n lignes et de p colonnes est appelé matrice de type (n,p) et est noté : ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ¬ ¬ ¬ ­ « ! npnj2n1n ipij2i1i p2j22221 p1j11211 aaaa aaaa aaaa aaaa M -- /1/1// -- /1/1// -- .- La notation abrégée est Le premier indice indique le numéro de la ligne et le deuxième indice celui de la colonne. 3.1.1.2 Cas particuliers Matrices lignes et matrices colonnes Une matrice de type (1,p) (resp. (n,1)) est appelée matrice ligne (resp. matrice colonne). Matrice ligne Matrice colonne
  13. 13. p11211 aaa - ¹ ¹ ¹ ¹ ¹ º ¸ © © © © © ª ¨ 1n 21 11 a a a / Matrices carrées Une matrice de type (n,n) est appelée matrice carrée d¶ordre n. Parmi les matrices carrées, on peut distinguer : les matrices carrées diagonales , vérifiant : jisiaij {! ou encore p,...,1j n,...,1iij ]a[M ! !!
  14. 14. 13/47 ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « ! nn 22 11 a00 0 a0 00a M -   / /   - les matrices carrées triangulaires supérieures ou inférieures, respectivement définies par : jisi0aij ! et jisi0aij ! ou bien ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! nn n222 n11211 a00 aa0 aaa M - /11/ 1 - et ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! nn2n1n 2221 11 aaa 0 aa 00a M - 11/ /1 - les matrices carrées symétriques, telles que : j,i,aa jiij ! et enfin, les matrices carrées identités qui vérifient : ° ¯ ® ! {! 1aii jisi0aij notée ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! 100 0 10 001 In - ¡¡/ / ¡ - 3.1.2 Définir des matrices avec Matlab 3.1.2.1 Définition et manipulation de matrices quelconques Exemple : Définir la matrice Les matrices sont généralement définies ligne par ligne. ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! 017.0 024 3105.0 952 M
  15. 15. 14/47 Comme les tableaux de valeurs présentés dans le paragra phe 1.1.3, les matrices sont définies entre des crochets. On sépare chaque élément d¶une ligne par un espace ou par une virgule et pour indiquer le passage à une nouvelle ligne, on utilise un point -virgule : M = [2 5 9 ; 0.5 10 -3 ; 4 2 0 ; -0.7 1 0] M = 2.0000 5.0000 9.0000 0.5000 10.0000 -3.0000 4.0000 2.0000 0 -0.7000 1.0000 0 On peut aussi définir 3 matrices colonnes et les concaténer : u = [2 ; 0.5 ; 4 ; -0.7] ; v = [5 ; 10 ; 2 ; 1] ; w = [9 ; -3 ; 0 ; 0] ; M = [u v w] M = 2.0000 5.0000 9.0000 0.5000 10.0000 -3.0000 4.0000 2.0000 0 -0.7000 1.0000 0 Quelques manipulations utiles : Pour accéder au terme aij : M(i,j) Pour modifier l¶élément a ij : M(i,j) = a Pour accéder à toute la iième ligne : M(i, :) Pour accéder à toute la j ième colonne : M( : , j ) 3.1.2.2 Matrices particulières de Matlab Il existe plusieurs matrices particulières sous Matlab dont la liste se trouve dans la rubrique elmat de l¶aide (helpwin). Parmi les plus connues, on trouve : La matrice identité In définie par : eye(n) La matrice de type (m,n) dont tous les coefficients sont nuls (matrice nulle) : zeros(m,n) La matrice de type (m,n) dont tous les coefficients sont unitaires : ones(m,n) Nota : pour définir des matrices carrées d¶ordre n, il suffit d¶entrée le seul argument n à la commande (ex. : zeros(n), ones(n))
  16. 16. 15/47 3.2 OPERATIONS SUR LES MATRICES 3.2.1 Addition Soient deux matrices de même type : ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « ! np2n1n p22221 p11211 aaa aaa aaa A - /1// - - et on appelle matrice somme de A et B, la matrice : ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « !! npnp2n2n1n1n p2p222222121 p1p112121111 bababa bababa bababa BAS - / ¢// - - De manière condensée, on a : p,...,1j n,...,1iij ]s[S ! !! avec ijijij bas,p,...,1jetn,...,1i !!! 3.2.2 Multiplication par des scalaires Soient P un scalaire quelconque de „ et une matrice M de type (n,p), telle que : la matrice PM est définie par : Tous les coefficients de la matrice M ont donc été multipliés par le scalaire P. 3.2.3 Multiplication des matrices Soient deux matrices A et B, respectivement de type (n,p) et (p,q) : ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « ! np2n1n p22221 p11211 bbb bbb bbb B - /1// - - p,...,1j n,...,1iij ]a[M ! !! ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « PPP PPP PPP !P np2n1n p22221 p11211 aaa aaa aaa M - /1// - -
  17. 17. 16/47 p,...,1k n,...,1iik ]a[A ! !! et £,...,1j p,...,1kkj ]b[B ! !! le résultat du produit est la matrice C de type (n, ) définie par où 3.2.4 Transposée d¶une matrice On appelle transposée de la matrice de type (n,p), la matrice notée t M (ou MT ) de type (p,n) définie par En d¶autres termes, t M est obtenue à partir de M en échangeant ses lignes avec ses colonnes. Pour obtenir la tranposée de la matrice M, on tape : M¶ 3.2.5 Inversion de matrices carrées Une matrice carrée A d¶ordre n est dite inversible s¶il existe une matrice carrée B du même ordre telle que : La matrice B, lorsqu¶elle existe est unique. On l¶appelle matrice inverse de A et on la note )q,n()q,p()p,n( CBxA ! q,...,1j n,...,1iij ]c[ ! !! §! ! ! p 1k kjik pjipj22ij11iij ba ba...babac p,...,1j n,...,1iij ]a[M ! !! n,...,1j p,...,1iij t ]b[M ! !! jiij ab,n,...,1jetp,...,1i !!! nIAxBBxA !! 1 AB !
  18. 18. 17/47 Pour inverser une matrice A sous Matlab, on peut utiliser : inv(A) ou A^(-1) 3.3 SYSTEMES LINEAIRES 3.3.1 Définition Un système linéaire de n équations (n u 1) à p inconnues (p u 1) est défini par : n i 2 1 npnpjnj22n11n ipipjij22i11i 2pp2jj2222121 1pp1jj1212111 bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa )S( ± ± ± ± ° ±± ± ± ¯ ¤ ! ! ! ! / / Les données du système linéaire sont : - les coefficients réels ou complexes aij pour i=1,«,n et j=1,«,p (n et p sont deux entiers connus), - le second membre du système constitué par les nombres réels ou complexes bi (i=1,«,n), et Li (i=1,«,n) désigne la i ième ligne du système (S). Les inconnues à déterminer sont les x j (j=1,«,p). Le système est dit carré lorsque n=p. C¶est le cas où il y a autant d¶équations que d¶inconnues. On dira que le système est homogène lorsque le second membre est nul (bi=0, i=1,«,n). On peut remarquer qu¶un système linéaire homogène admet au moins la solution nulle x i=0, i=1,«,n (qui n¶est pas nécessairement la seule). Systèmes échelonnés Lorsque tous les coefficients sous la diagonale » d¶un système linéaire sont nul, i.e. : 0aji ij !  on dit que le système est échelonné. Ils peuvent être de trois formes : 1. les systèmes triangulaires supérieurs, à n équations et n inconnues, de la forme :
  19. 19. 18/47 ± ± ± ± ° ±± ± ± ¯ ® ! ! ! ! nnnn ininiii 2nn2jj2222 1nn1jj1212111 bxa bxa...xa bxa...xa...xa bxa...xa...xaxa )S( / / Tous les coefficients aii sont non nuls. Pour obtenir toutes les inconnues xi, on procède par remontées successives. Dans ce cas, on aura une solution unique du système. 2. Les systèmes échelonnés de forme trapézoïdale, où il y a plus d¶inconnues que d¶équations, cas où n p. Ils se présentent sous la forme ± ± ° ± ± ¯ ¥ ! ! ! npnpnnn 2pp2nn2222 1pp1nn1212111 bxa...xa bxa...xa...xa bxa...xa...xaxa )S( / Si tous les coefficients aii (i=1,«,n) sont non nuls, le système admet une infinité de solutions, obtenues en donnant des valeurs arbitraires aux p-n inconnues xn+1, xn+2, «, xp. On peut alors exprimer les n premières inconnues x1, x2, «, xn en fonction de ces valeurs arbitraires. 3. Les systèmes échelonnés où on a n p : Il y a ici plus d¶équations que d¶inconnues, deux possibilités se présentent : - soit au moins l¶un des nombres bp+1, bn n¶est pas nul et le système n¶admet aucune solution, - soit tous les nombres bp+1, «, bn sont nuls et on est ramené à un système triangulaire supérieur à p inconnues et p équations. 3.3.2 Opérations fondamentales sur les systèmes Il existe 3 actions simples (provenan t de Gauss) qui permettent de transformer un système (S) en un système équivalent plus simple à résoudre. ± ± ± ± ° ± ± ± ± ¯ ® ! ! ! ! ! n 1p p 2 1 ppp pp2222 pp1212111 b b b b b 0 0 xa xa...xa xa...xaxa )S( / /
  20. 20. 19/47 1. Dans un système donné (S), on peut intervertir 2 lignes quelconques Li et Lk. On écrira ki LL m 2. On peut remplacer une ligne quelconque Li par l¶un de ses multiples non nuls. On notera 0,L.L ii {EEn 3. On peut remplacer une ligne quelconque par la somme d¶un multiple (non nul) de cette ligne et d¶une combinaison finie des autres lignes. Cela se traduit par 0,L.L.L ik kkii {EFEn §{ Lorsque l¶on effectue une quelconque des 3 actions ci -dessus, sur un système linéaire (S), on obtient une nouvelle écriture équivalente de ce système. 3.3.3 Méthode de résolution de Gauss Cette méthode consiste à effectuer un certain nombre d¶actions élémentaires pour obtenir un système équivalent échelonné. Elle s¶applique à un système linéaire quelconque (carré ou non). Exemple : Trouver toutes les solutions du système à n = 4 équations et p = 5 inconnues : 4 3 2 1 4 3 2 1 5 5 5 4 4 4 3 3 3 3 2 2 2 1 1 1 L L L L b b b b x6 x5 x6 0 0 x x x x11 x6 x7 x3 x 0 x x x4 x3 x2 0 )S( ! ! ! ! ± ± ° ± ± ¯ ® Choisir une ligne dont le coeffici ent de x1 est non nul et la mettre en première ligne. Ce coefficient est appelé pivot de Gauss. On choisit d¶intervertir les lignes L 1 et L2 : 21 LL m On a alors 4 3 2 1 4 3 1 2 5 5 5 4 4 4 3 3 3 3 2 2 2 1 1 1 L L L L b b b b x6 x5 0 x6 0 x x x x11 x6 x3 x7 x 0 x x x4 x3 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ®
  21. 21. 20/47 On cherche ensuite à annuler toute la colonne en dessou s du pivot choisi en effectuant des actions élémentaires de Gauss avec la première ligne. On applique donc : 133 L3L2L n puis 144 L4L2L n et le système est équivalent à : 4 3 2 1 24 23 1 2 5 5 5 4 4 4 4 3 3 3 3 2 2 2 21 L L L L b4b2 b3b2 b b x12 x8 0 x6 x4 x x x x6 x9 x3 x7 x2 x3 x x 0 0 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ® La première ligne ne changera plus. On réitère les deux étapes précédentes pour le sous -système constitué des trois autres lignes : ± ° ± ¯ ® ! ! ! 4 3 2 24 23 1 5 5 4 4 4 3 3 3 2 2 2 L L L b4b2 b3b2 b x12 x8 0 x4 x x x6 x9 x3 x2 x3 x )'S( par les actions successives : 233 L3LL n puis 244 L2LL n et on continue pour les sous -systèmes suivants. On a donc : 4 3 2 1 124 123 1 2 5 5 5 4 4 4 4 3 3 2 21 L L L L b2b4b2 b3b3b2 b b x12 x8 0 x6 x6 x4 x x 0 0 x3 x7 0 0 x x 0 0 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ® Finalement, on applique l¶action : 344 L3L2L n et on obtient 4 3 2 1 1234 123 1 2 5 5 4 4 4 3 3 2 21 L L L L b5bb3b4 b3b3b2 b b 0 x8 0 x6 0 x4 x x 0 0 x3 x7 0 0 x x 0 0 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ® On distingue ainsi deux cas : Si les éléments bi du second membre ne vérifient pas la condition 0b5bb3b4 1234 !
  22. 22. 21/47 alors on a obtenu un système échelonné de type (3) (cf. paragraphe 3.3.1) qui n¶admet aucune solution. En revanche, si la condition est vérifiée, alors par remontées successives, on peut résoudre le système. 3.3.4 Systèmes de Cramer On suppose que n = p. On considère donc un système carré n i 2 1 nnnnjnj22n11n ininjij22i11i 2nn2jj2222121 1nn1jj1212111 L L L L bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa )S( ± ± ± ± ° ±± ± ± ¯ ® ! ! ! ! / / Le système admet une unique solution si, et seulement si, la méthode de Gauss fait apparaître n pivots successifs tous non nuls. Dans ce cas, on dira que le système est de Cramer. 3.3.5 Utilisation de Matlab
  23. 23. 22/47
  24. 24. 23/47 REFERENCES BIBLIOGRAPHIQUES [R1] Applications mathématiques avec Matlab Tome 1 : algèbre linéaire et géométrie Tome 2 : analyse « L. Jolivet, R. Labbas Lavoisier 2005, Hermes science [R2] Introduction à Matlab J.-T. Lapresté Ellipses 1999
  25. 25. 24/47
  26. 26. 25/47 FICHES MEMO
  27. 27. 26/47
  28. 28. 27/47 FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES Une session de travail peut être sauvegardée sous 2 formes différentes selon l¶utilité ultérieure dont elle fera l¶objet : - Si on veut uniquement visualiser toutes les opérations et résultats affichés dans l¶espace de travail, on choisit la commande diary. Cette instruction permet de sauvegarder sa session de travail dans un fichier texte dès qu¶on aura donné l¶instruction diary off ou qu¶on aura quitté Matlab. Pour écrire de nouveaux éléments dans le fichier texte ainsi créé après avoir utilisé diary off (durant la même session de travail), on utilise l¶instruction diary on. - Si on veut pouvoir exécuter de nouveau les opérations de la session, il est nécessaire de créer un fichier script de Matlab (soit un m-file). Ouvrir un fichier m (m-file) qui est un fichier script de Matlab : file new m-file Ceci ouvre la fenêtre de l¶éditeur de Matlab avec un fichier nommé untitled.m, on commence par lui affecter un nom.
  29. 29. 28/47 Pour réutiliser les commandes ainsi enregistrées, il existe plusieurs méthodes : - Pour exécuter l¶ensemble des commandes : On vérifie que le fichier se trouve dans le répertoire courant (Current Directory) Dans la fenêtre de commande (Command Window), on tape le nom du fichier sans son extension : nomdufichier Une autre possibilité consiste à utiliser directement la barre de tâche de l¶éditeur. En cliquant sur , on compile directement le fichier. (il faut toutefois vérifier au préalable que le fichier se trouve dans le Current Directory !) - Pour exécuter une partie des commandes du fichier: On peut effectuer un copier -coller de l¶éditeur vers la fenêtre de co mmande. L¶éditeur possède un raccourci pour ce type de copier -coller : on sélectionne les commandes concernées et avec le clique droit de la souris, on choisit l¶option Evaluate selection (cf. figure ci-dessous). Nota : - il faut absolument éviter les espaces dans les noms des fichiers. - les commentaires débutent par le caractère % et ils sont automatiquement écrits en vert.
  30. 30. 29/47 FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES Lister les variables de la session de travail La fenêtre Workspace liste l¶ensemble des variables de la session de travail et renseigne sur le type, la dimension et la taille mémoire de chacune d¶entre elles. Depuis la fenêtre de commande, on peut retrouver ces informations grâce aux instructions who ou whos. Effacer les variables Il est parfois utile d¶effacer une ou plusieurs variables pour ne pas encombrer l¶espace mémoire ou pour réinitialiser la session de travail. Pour effacer les variables a et b : clear a b Pour effacer toutes les variables de la session : clear all ou bien clear Enregistrer des variables Il existe des fichiers de sauvegarde de variables spécifiques à Matlab, ils portent l¶extension .mat. Pour enregistrer les variables c et d dans un fichier sauvegarde1.mat : save sauvegarde1 c d Pour enregistrer dans le même fichier toutes les variables de la session : save sauvegarde1 Nota : si on utilise le même nom de fichier pour sauvegarder de nouvelles variables, les précédentes sont effacées. Importer des variables d¶un fichier .mat L¶instruction load permet de lire les fichiers .mat. Ainsi pour récupérer les variables enregistrées dans le fichier essai.mat, on tape : load essai
  31. 31. 30/47
  32. 32. 31/47 FICHE 3 : GESTION DE L¶AFFICHAGE Raccourcis pour éditer les commandes utilisées dans la fenêtre de commande On peut éditer les commandes ultérieures en utilisant la flèche Ĺ. Pour retrouver la commande plus rapidement, on tape le(s) premier(s) caractère(s) et on utilise la flèche Ĺ. Pour modifier les caractères d¶une commande, on utilise les flèches ĺ ou ĸ. Effacer la fenêtre de commande Pour effacer la fenêtre de commande, on dispose de l¶instruction clc.
  33. 33. 32/47
  34. 34. 33/47 FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE Descriptif Pour obtenir le descriptif d¶une fonction ou commande, on dispose de la fenêtre d¶aide de Matlab ( helpwin) dans laquelle l¶index permet de retrouver les commandes disponibles du logiciel. On peut aussi avoir accès au descriptif directement à partir de la fenêtre de commande en tapant : help nomdelacommande Exemple : help min Nota : en plus du descriptif, l¶utilisateur est informé de la syntaxe à suivre pour utiliser la commande selon les possibilités de celle-ci. De plus, l¶aide se termine souvent par un renvoi à d¶autres fonctions ou commandes liées à celle recherchée. Code source Pour visualiser le code source d¶une fonction : help nomdelafonction Exemple : type sphere Nota : On peut voir que l¶aide de la fonction est rappelé au début du code en commentaires Lorsque le code source est indisponible, Matlab renvoie l e message : nomdelafonction is a built-in function Exemple : type min
  35. 35. 34/47
  36. 36. 35/47 FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET MATRICES Comme les vecteurs, les matrices sont généralement définies ligne par ligne et entre des crochets. On sépare chaque élément d¶une ligne par un espace ou par une virgule et pour indiquer le passage à une nouvelle ligne, on utilise un point -virgule. Quelques manipulations utiles Pour accéder au terme aij : M(i,j) Pour modifier l¶élément a ij : M(i,j) = a Pour accéder à toute la i ième ligne : M(i, :) Pour accéder à toute la j ième colonne : M( : , j )
  37. 37. 36/47
  38. 38. 37/47 FICHE 6 : TRACER DES GRAPHIQUES 2D La commande plot permet de tracer tous les graphes plans. On l¶utilise sous la forme : plot(abscisse, ordonnée, options) options est une chaîne de caractères permettant de préciser par exemple le type ou la couleur du tracé. Par défaut, la figure s¶ajuste automatiquement à l¶ensemble des points à représenter, mais la commande axis permet d¶imposer ces propres cho ix. Pour ajouter un quadrillage, on utilise l¶instruction grid on. Plusieurs tracés peuvent être effectués sur la même figure grâce à la commande hold on. Pour ouvrir une nouvelle figure, il suffit de taper : figure La commande clf permet d¶effacer la figure courante. On peut nommer les axes avec les commandes xlabel ou ylabel, selon l¶axe considéré, inclure un titre (title) ou une légende ( legend). Il peut s¶avérer intéressant d¶importer un tracé vers un document world. Pour cela, on sélectionne dans la fenêtre figure File Export et on choisit un format de conversion (.png, .jpeg, «).
  39. 39. 38/47
  40. 40. 39/47 MINI-PROJETS
  41. 41. 40/47
  42. 42. 41/47 MINI-PROJET 1 : PARTS D¶UN MARCHE Soient A et B deux produits concurrentiels. On suppose qu¶aucun produit nouveau n¶apparaît sur le marché. Les parts sur le marché à la date t pour les produits A et B sont représentées par la matrice colonne ¹¹ º ¸ ©© ª ¨ ! t t t y x P avec 1yx tt ! (puisqu¶il n¶y a pas d¶autre produit que A et B sur le marché). La répartition prévue à la date t+1 est P t+1, telle que ¹¹ º ¸ ©© ª ¨ !¹¹ º ¸ ©© ª ¨ ! t t 1t 1t 1t y x .M y x P avec ¼ ½ » ¬ ­ « ! 8.06.0 2.04.0 M On appelle M matrice de transition. On notera que 1yx)y8.0x6.0()y6.0x4.0(yx tttttt1t1t !!! 1. Pour
  43. 43. 3.07.0P t 0 ! , calculer P1, P2, P3, P10 et P20. 2. Effectuer de nouveau les calculs pour d¶autres valeurs de
  44. 44. 00 t 0 yxP ! , vérifiant toujours 1yx 00 ! . Qu¶observe-t-on ? 3. Soit d un réel appartenant à l¶intervalle A ?4/3,4/1 . On note d4/1x0 ! . Calculer en fonction de d, les valeurs de y 0, P0, P1, P2, puis la récurrence Pn. 4. Quelle est la limite de
  45. 45. nn t n yxP ! lorsque n tend vers g ? Quelle interprétation économique peut-on faire de ce résultat ?
  46. 46. 42/47
  47. 47. 43/47 MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3) Quels chiffres tous différents entre 1 et 9 doit -on mettre dans chaque case du tableau de type (3,3) pour que la somme de chaque ligne, de chaque colonne et des deux diagonales soit toujours égale à 15 ? Une solution est la matrice ¼ ¼ ¼ ½ » ¬ ¬ ¬ ­ « 376 852 437 On propose l¶étude suivante pour trouver l¶ensemble des solutions : 1. On dit qu¶une matrice de M3(„) est magique si les huit sommes de lignes, de colonnes et des deux diagonales sont égales à un nombre donné s. Ecrire cette propriété sous forme d¶un système linéaire. 2. Vérifier que ce système est résoluble par la méthode de Gauss pour tout s  „. 3. Donner l¶ensemble solution de ce système. Effectuer des vérifications. 4. Etude du cas s = 15, avec coefficients entiers. Donner toutes les possibilités pour un tableau (3,3) à coefficients entiers tous distincts entre 1 et 9 pour avoir la propriété d¶une matrice magique avec s = 15.
  48. 48. 44/47
  49. 49. 45/47 MINI-PROJET 3 : RESOLUTION D¶UN SYSTEME DE CRAMER On considère le système linéaire ± ± ° ± ± ¯ ® ! ! ! ! 0t2z2y5x 0t3zy4x3 0t2z3yx 1tzy3x2 1. Montrer que ce système est de Cramer. 2. Résoudre ce système par la méthode de Gauss. Vérifier le résultat avec la commande rref. 3. Vérifier que l¶on obtient aussi cette solution directement par l¶inversion matricielle. 4. En adaptant les formules de Cramer au cas d¶un système de quatre équations à quatre inconnues, retrouver la solution de ce système.
  50. 50. 46/47
  51. 51. 47/47 MINI-PROJET 4 : DIVISION EUCLIDIENNE ET SUITE PSEUDO-ALEATOIRE Question 1 : Division euclidienne Ecrire une fonction [q,r] = DivEuclid(a,b) qui calcule le quotient q et le reste r de la division euclidienne de l¶entier a par l¶entier b non nul. On pourra, pour effectuer le calcul, utiliser la fonction floor qui donne la partie entière d¶un nombre réel, et la fonction mod qui donne le reste de la division euclidienne. Question 2 : Suite pseudo-aléatoire Une suite pseudo-aléatoire de nombres entiers est générée de la manière suivante : on se donne 3 entiers fixés a, c et m avec a et m non nuls, on choisit une première valeur x 1, on définit par récurrence la suite de valeurs x k par xk+1 est le reste de la division de ax k+c par m Ecrire une fonction X = SuiteAlea(a,c,m,x1,n) qui construit ainsi dans un tableau X une suite de n nombres entiers pseudo -aléatoires, compris entre 0 et m-1. Tester dans un cas simple, en vérifiant que, pour a = 13, c = 0, m = 31 , x1 = 1 les 12 premiers nombres obtenus sont 1, 13, 14, 27, 10, 6, 16, 22, 7, 29, 5, 3 Remarque : En choisissant m suffisamment grand et en divisant tous les termes de la sui te obtenue par m, on obtient une suite de nombres réels pseudo -aléatoires dans l¶intervalle [0,1].

×