Home
introduction au logiciel matlab
Contents
1. fzero x fval exitflag output fzero Description e fun est une fonction inline ou fun pour une fonction Matlab ou fun pour un Mfile ex fzero fun x0 trouve un z ro pr s de x0 si x0 est un scalaire La valeur x renvoy e par fzero est pr s d un point o fun change de signe ou bien NaN si la recherche a chou e e Si x0 est un vecteur 2 composantes fzero le comprend comme un intervalle tel que fun x0 1 et fun x0 2 sont de signes oppos s Si ce n est pas le cas il y a une erreur ex fzero fun x0 P1 P2 permet de passer des param tres suppl mentaires P1 P2 etc la fonction fun Exemples 1 Trouver un z ro d un polyn me p x z x 2 p inline x 2 x 2 x fzero p 2 3 x fzero p 2 2 Trouver un z ro d une fonction param tr e p inline x 2 a x 2 x a d finition de la fonction a 1 4 d finition du param tre p 2 a doit renvoyer 0 y fzero p 3 optimset disp off a Le 3 me argument de fzero indique qu on ne veut pas afficher les messages ventuels Le s 4 me et suivant argument s passe nt le s param tre s suppl mentaire s de la fonction ici a p y a doit renvoyer 0 Une description plus d taill e de la fonction fzero mais en anglais est bien s r disponible dans l aide en ligne 4 Les boucles Il y a deux types de boucles en Matlab les boucles while et les boucles for La boucle for parcourt un vecteur d i
2. 6 0000i 14 0000 gt gt w v division des composantes terme terme gt w 73 mise la puissance 3 de chaque composante Les composantes sont s par es par des blancs dangereux ou de pr f rence par des virgules pour les vecteurs lignes et par des points virgules pour les vecteurs colonnes Des messages erreurs sont affich s si une op ration impossible est tent e par exemple addition de vecteurs de longueurs diff rentes Et pour aller plus vite gt gt v 1 5 1 23 4 vecteur a increment constant y 1 0000 6 1000 11 2000 16 3000 21 4000 gt gt ones size v vecteur de meme taille que v et contenant des 1 ans 1 1 1 1 1 gt gt ones 1 4 vecteur ligne 4 composantes egales a 1 ans 1 1 1 1 gt gt 3xones 1 5 vecteur ligne 5 composantes egales a 3 ans 3 3 3 3 3 gt gt zeros 3 1 vecteur colonne 3 composantes nulles ans 0 0 0 2 3 Matrices Les matrices suivent la m me syntaxe que les vecteurs Les composantes des lignes sont s par es par des virgules et chaque ligne est s par e de l autre par un point virgule gt gt une mani re de d finir une matrice 3 x 3 gt gt A 1 2 3 0 0 atan 1 5 9 1 gt gt une autre syntaxe pour faire la m me chose gt gt A 1 2 3 gt gt O 0 atan 1 gt gt 5 9 1 A Li 2 3 A O 1853982 5 9 1 gt gt ne pas confondre avec ce groupe d instructions gt gt A 1 2 3 gt gt 0 0 atan 1 gt gt 5 9 1 A
3. Exercice 8 On pose 1 1 7 3 2 1 A 4 2 11 B 7 8 6 8 0 3 5 1 3 Que font les instructions suivantes v 1 2 4 7 A v A v 0 01 B v abs B v Exercice 9 1 Cr er un vecteur de 11 coordonn es contenant les nombres 5 4 4 5 2 Cr er un vecteur de 1001 coordonn es contenant les nombres 500 499 498 499 500 linspace 3 Cr er un vecteur u contenant 10 valeurs entre O et m s par es par un incr ment constant 4 Cr er un vecteur v tel que v2 cos Uz et Uzi 1 S N U2i 1 Exercice 10 On rappelle deux approximations de la d riv e d une fonction par diff rences finies de e Eth moyn Eth fe Ms EL pa ALE 1 D finir dans un M file la variable h 0 1 et un tableau d abscisses x pour discr tiser finement l intervalle 0 7 2 Calculer dans un tableau d la d riv e exacte de la fonction sin aux points x et dans un tableau d1 les valeurs approch es par la premi re formule ci dessus Calculer l erreur maximale commise en faisant cette approximation sur l intervalle 0 7 Diminuer h que remarque t on 3 M mes questions avec la deuxi me approximation Les valeurs approch es seront calcul es dans un vecteur d2 4 Repr senter sur le m me graphique la d riv e et ses deux approximations plot x d x d1 x d2 Que remarque t on quelle est la meilleure approximation 3 Fonctions ou macros function Nous allons maintenant d tailler quelques r gles de programmat
4. gt qui doit contenir la valeur calcul e par le script Plusieurs types de donn es sont disponibles dans Matlab Les types traditionnels que l on retrouve dans tous les langages de programmation les types num riques single double int8 etc caracteres char les tableaux de r els et les tableaux creux sparse et les types compos s cell structure ainsi que les types d finis par Putilisateur comme les fonctions inline Le type de donn e privil gi sous Matlab est les tableaux une ou deux dimensions qui correspondent aux vecteurs et matrices utilis s en math matiques et qui sont aussi utilis s pour la repr sentation graphique Nous allons donc nous attarder sur leur d finition et leur maniement dans les paragraphes qui suivent 2 2 Vecteurs Pour d finir un vecteur la syntaxe est une des suivantes gt gt v 2 3 7 vecteur colonne composantes r elles y 2 0000 3 0000 7 0000 gt gt v 2 3 i 7 vecteur ligne composantes complexes 172 1 v 2 0000 3 0000 1 0000i 7 0000 gt gt v vecteur transconjugu ans 2 0000 3 0000 1 0000i 7 0000 gt gt v 4 vecteur transpos ans 2 0000 3 0000 1 0000i 7 0000 gt gt w 3 3 1 2 vecteur colonne w 3 0000 3 0000 1 0000i 2 0000 gt gt v Ww somme de deux vecteurs ans 1 0000 6 0000 2 0000i 9 0000 gt gt V W produit scalaire euclidien ans 18 gt gt w v produit des composantes terme terme ans 6 0000 8 0000
5. 1 2 30 O 0 7853982 5 Y gt gt v 1 5 W v v multiplication de matrices W 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 gt gt W 1 extraction de la premi re ligne ans Le 2 3 4 5 gt gt A eye 3 3 Matrice identit A 1 0 0 0 1 0 0 0 1 gt gt B toeplitz 2 1 0 07 une matrice de Toeplitz B 2 1 0 0 1 2 1 0 0 1 2 1 0 0 1 2 Le tableau 1 r sume les principales fonctions affectant ou effectuant des op rations sur des matrices Noter que les fonctions scalaires courantes sin exp etc peuvent aussi s appliquer des matrices composante par composante comme dans l exemple suivant gt gt u 0 1 4 DE 0 1 2 3 4 gt gt v sin u Tos 0 0 8415 0 9093 0 1411 0 7568 La fonction find C A renvoie les indices dans le tableau A des composantes v rifiant la condition C A Par exemple gt gt A rand 1 5 cree un vecteur ligne contenant 5 nombres repartis aleatoirement entre 0 et 1 gt gt find A gt 0 5 renvoie les indices des composantes de A gt 0 5 gt gt find A 4 renvoie les indices des composantes de differentes de O gt gt find A 0 2 renvoie les indices des composantes de egales a 0 2 Exercice 2 Tester et comprendre les deux lignes suivantes A 1 2 1 1 1 1 O 3 find A gt 0 2 4 Exercices sur la syntaxe de base et les tableaux La solution des exercices ne doit pas tre tap e directement dans la fen tre de commandes mais au contraire dans
6. 1 4142 f1 0 3 3 Cr er un tableau x d abscisses de 5 5 par pas de 0 1 4 Repr senter la fonction f aux points x avec la commande plot x f1 x Modifier si besoin f1 m pour que ceci soit possible Exercice 12 Reprendre l exercice 10 et crire une fonction recevant en argument d entr e le param tre h et renvoyant en param tre de sortie l erreur maximale entre la discr tisation avant et la valeur exacte de la d rivee de la fonction sin 3 5 Algorithmes pr programm s Il existe de nombreux algorithmes pr programm s dans Matlab pouvant tre utilis s dans des programmes de simulation plus complexes comme bo te noire Tous sont r pertori s et pr sent s dans l aide en ligne Leur nom peut se retrouver gr ce aux menus search ou index de help A titre d exemple nous d taillons ici la syntaxe pour utiliser la fonction fzero pour trouver une racine d une fonction d une variable Syntaxe d appel fzero fun x0 fzero fun x0 options X X 12 fzero f a recherche des z ros d une fonction f autour de a quad f a b calcul de l int grale d une fonction f entre a et b spline xx yy calcul de la spline cubique passant par les points xx yy fft a transformation de Fourier rapide du vecteur a ode23 f t y0 r solution de l quation y f t x y 0 y0 TAB 3 Quelques algorithmes pr programm s x fzero fun x0 options P1 P2 x fval fzero x fval exitflag
7. site officiel de Matlab www mathworks com e La version html de ce cours www ann jussieu fr postel matlab e Un cours d analyse matricielle niveau DEA avec des applications Matlab www ann jussieu fr joly matlab php3 Merci d envoyer vos remarques et suggestions sur ce document par email y q P postel ann jussieu fr Thttp www mathworks com Shttp www ann jussieu fr postel matlab Yhttp www ann jussieu fr joly matlab php3 l0mailto postel ann jussieu fr 23
8. v rifiant la condition C A TAB 1 Principales op rations sur les matrices help norm dans la fen tre de commandes pour conna tre la syntaxe d utilisation de la fonction norm Exercice 3 On note u v et w les vecteurs suivants u 1 1 2 7 v 10 1 3 7 w 5 1 4 T 1 Calculer 3u full2 2u v 5w 2u v 5wll1 w 4ullo norm 2 D terminer langle form par les vecteurs v et w acos Exercice 4 On note u et v les nombres complexes u 11 7 v 1 31 conj Calculer les modules de u et de v les produits uv vu la partie r elle et la partie imaginaire de u v real Exercice 5 On note A B et C les matrices suivantes GG be B2 5 3 1 1 2 5 10 5 TE 10 0 3 SEL 1 et a 1 0 2 1 Calculer les matrices AB BA et ABT 2 Calculer les matrices D 12 BBT eye 3 Calculer les d terminants des matrices A B C D et E AA det 4 Calculer les inverses des matrices A B C D et E AA inv 5 Calculer les valeurs propres de la matrice E Quel est le rayon spectral de E spec 6 D terminer les vecteurs propres de la matrice A bdiag Exercice 6 On pose 1 1 7 3 2 1 A 4 2 11 B 7 8 6 8 0 5 1 3 Que font les instructions suivantes 3 A A B A B cos A exp B COS erp Exercice 7 Pour chacune des matrices SE 1 2 3 0 75 0 0 25 0 375 0 0 125 A1 13 2 1 42 0 1 A3 0 0 5 0 4 2 1 0 25 0 0 75 0 125 0 0 375 calculer 4 pour n 1 2 3 Que vaut lim AP
9. 1 pour VRAI et 0 pour FAUX Dans Matlab on dispose du classique if else agr ment du elseif parfois bien utile La syntaxe est par exemple gt gt x 16 x 16 gt gt if x gt 0 y x else y x end y 16 On a aussi la possibilit d utiliser le switch case qui a son quivalent dans le langage C P gag 14 switch expression case case_expr commande commande case case_expr1 case_expr2 case_expr3 commande commande otherwise commande commande end Cet l ment de syntaxe permet de g rer plus l gamment les tests portant sur un seul critere pouvant prendre plus de deux valeurs enti res comme dans l exemple suivant n round 10 rand 1 1 switch n case 0 fprintf cas numero 0 case 1 fprintf cas numero 1 case 2 fprintf cas numero 2 otherwise fprintf autre cas end RASE et ou non gal diff rent plus petit que plus grand que plus petit ou gal plus grand ou gal TAB 4 Les op rateurs logiques dans les tests On a vu dans le paragraphe 2 3 qu on pouvait utiliser la plupart des fonctions d finies pour un argument scalaire avec un argument tableau Dans ce cas la fonction renvoie dans un tableau la valeur de la fonction appliqu e chaque composante Si la fonction met en oeuvre des tests logiques sur la valeur de la variable scalaire pass e en argument d appel le r sultat appliqu un vecteur d pend du r sultat logique intersection d
10. 3 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 2 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 TAB 6 Principales instructions graphiques 7 2 Autres types de repr sentation Outre la repr sentation cart sienne de courbes ou de surfaces il existe d autres possibilit s pour illustrer graphiquement un r sultat On peut citer parmi les plus utiles les instructions contour ezmesh pour tracer les courbes de niveau d une surface param trique mesh ezplot3 courbes param triques dans l espace hist rose histogramme d un chantillon de donn es statistiques etc 8 Exercices d analyse num rique On pr sente maintenant sous forme d exercices quelques exemples simples de simulations avec Matlab 8 1 Interpolation inline Exercice 16 1 D finir dans un M file la fonction 1 1 gt D finir un vecteur d abscisses xx avec i 1 2 100 uniform ment reparties entre 5 et 5 Repr senter graphiquement la fonction f aux abscisses zx par un trait continu vert spline 2 D finir un vecteur de points d interpolation x avec i 1 2 10 tels que 11 5 lt 2 lt lt T9 lt 210 5 Calculer dans un tableau yy les valeurs aux abscisses xx de la spline cubique passant par les p
11. Introduction au logiciel Matlab Marie Postel Version r vis e septembre 2004 Table des mati res 1 Prise en main de Matlab 2 Programmation 21 Syntaxe du langage y suis its res den dim do den nee te ne OS dE e a 2 32 NeCteuTSrs fes dus por dote be 6 06 dt Et eo at a ns 2e he Ra tete 2 3 Matrics res sus frs en ee Re RENE Ne E AA A TEA Re rare nr NS 2 4 Exercices sur la syntaxe de base et les tableaux 3 Fonctions ou macros function 3 1 M files functions LLL LUI Les none la Love an a A e ar 4 de A 3 2 nline functions ct LAPS A A ble A RE eue e a dns 3 93 Fonctions outils s cus aoe DRE EA MER Hire rhin EE das tendant Mandat le co a 3 4 Exercices sur les fonctions 3 5 Algorithmes pr programm s 4 Les boucles 5 Tests 6 Lecture et criture au clavier et dans des fichiers 7 Repr sentation graphique sous Matlab 7 1 Exemple de repr sentation graphique en dimension deux 7 2 Autres types de repr sentation 8 Exercices d analyse num rique amp L Interpolati n 5 4 4 MUR AM Se a ada d 8 2 R solution approch e des quations diff rentielles Laboratoire Jacques Louis Lions Universit Pierre et Marie Curie 13 14 16 17 17 19 Introduction MATLAB est un logiciel commercial de calcul interactif Il perme
12. ans la fen tre de saisie Search index for ou bien la rechercher dans la liste alphab tique propos e Pour avancer dans l alphabet taper la premi re lettre de la commande recherch e dans la fen tre de saisie Search Un moteur de recherche dans l index Favorites La liste des chapitres de l aide stock s dans les favoris Pour ajouter un chapitre dans cette liste se positionner dessus partir de Contents et cliquer sur le bouton de droite de la souris Une aide tr s importante se pr sente sous la forme de programmes de d monstration auxquels on peut acc der partir de Contents gt Begin Here puis en cliquant sur demos dans la sous fen tre de droite ou bien en tapant demos directement dans la fen tre de commande 2 Programmation 2 1 Syntaxe du langage Un script Matlab est compos d une suite d instructions toutes s par es par une virgule ou de mani re quivalente un passage la ligne ou un point virgule La diff rence entre ces deux types de s paration est li e l affichage ou non du r sultat l cran seulement effectu dans le premier cas Comme tout langage Matlab poss de aussi un certain nombre d instructions syntaxiques boucles simples conditionnelles etc et de commandes l mentaires lecture criture etc r capitul es dans les tableaux 2 3 D s que le calcul effectuer implique un encha nement de commandes un peu compliqu il vaut mieux crire ces derni
13. auche et d une population en fonction de l autre droite Exercice 19 Dans cet exercice tir de 5 on veut calculer la trajectoire d un chien C lanc la poursuite d un li vre L Le chien court vitesse constante le plus vite possible mais en ajustant sa trajectoire de mani re ce que sa vitesse soit toujours colin aire la droite LC On note Y t yl t ys t la trajectoire du li vre qui est une donn e du probl me et Y t y t y t celle du chien qui est l inconnue 1 Traduire les hypoth ses le chien se d place avec une vitesse constante en module ve et la vitesse du chien colin aire la droite LC 2 Ecrire le syst me diff rentiel v rifi par Y t Programmer en Matlab la fonction f t y de IR x IR dans IR de ce syst me diff rentiel 3 crire un script pour int grer Y t l aide de ode23 On repr sentera sur le m me graphique les trajectoires du li vre et du chien en fonction du temps avec des couleurs diff rentes Utiliser la fonction Matlab pause et des marqueurs pour visualiser l avancement des deux protagonistes 4 Tester avec diff rentes trajectoires pour le li vre et diff rentes vitesses pour le chien 22 Table des figures 1 Fen tre de commandes Matlab 3 2 Exemple d appels successifs la fonction plot 18 3 Interpolation de Lagrange de la fonction 1 1 x avec 10 points 20 4 Mo
14. d le proie pr dateur volution des 2 populations en fonction du temps gauche et d une population en fonction de l autre droite 22 Liste des tableaux 1 Principales op rations sur les matrices 8 2 Commandes de controle 4 es pipe RAR has Bot np VAN dE re ue du 12 3 Quelques algorithmes pr programm s 13 4 Les op rateurs logiques dans les tests 15 5 Les commandes d entr e sortie et les acc s fichiers 17 6 Principales instructions graphiques a 19 R f rences 1 DANAILA I JOLY P KABER S M AND POSTEL M Introduction la mod lisation et au calcul scientifique par la pratique Dunod Paris 2005 2 ALLAIRE G KABER S M Introduction Scilab Exercices pratiques corrig s d alg bre lin aire Ellipses Paris 2002 3 ALLATRE G KABER S M Cours d Alg bre Lin aire Th orique Ellipses Paris 2002 CROUZEIX M MIGNOT A L Analyse Num rique des Equations Diff rentielles Masson Paris 1983 5 GANDER W HREBICEK J Solving Problems in Scientific Computing Using Maple and Matlab Springer Verlag 1991 6 GUERRE DELABRIERE S POSTEL M M thodes d Approximattion Equations Diff rentielles Applications Scilab Ellipses Paris 2004 7 LAPREST J T Introduction Matlab Ellipses 2000 Quelques sites internet e le
15. e On peut ventuellement sp cifier le nombre maximal de donn es lire avec le param tre size et le param tre de sortie count renvoie le nombre de donn es effectivement lues Pour crire des r sultats sur l cran la m thode la plus simple et de taper le nom de la variable sans la faire suivre d un point virgule Si on veut un format plus lisible en particulier afficher plusieurs variables sur la m me ligne on peut utiliser la commande fprintf comme dans l exemple ci dessous a 1 5 b 2 fprintf a f et b d a b a 1 5 et b 2 dimread NomDeFichier delimiteur lecture du fichier dlmwrite NomDeFichier M delimiteur criture de M dans le fichier textread NomDeFichier format lecture du fichier fid open NomDeFichier ouverture du fichier NomDeFichier A count fscanf fid format lecture du fichier ouvert par open fprintf fid format donn es criture des donn es avec un format close fid fermeture fprintf format donn es criture des donn es avec un format fprintf format donn es criture des donn es avec un format TAB 5 Les commandes d entr e sortie et les acc s fichiers 7 Repr sentation graphique sous Matlab Dans toutes les repr sentations graphiques le logiciel se base sur des donn es discr tes rang es dans des matrices ou des vecteurs colonnes Par exemple pour repr senter des courbes du type y f x ou de
16. ent les instructions effectu es l appel de la fonction Le passage des arguments d entr e dans les fonctions se fait par valeur Aussi m me si elles sont modifi es dans la fonction les valeurs des param tres ne sont pas modifi es dans le programme appelant Si une des variables de la proc dure n est pas d finie l int rieur de celle ci elle doit obligatoirement tre fournie en argument d entr e La r cup ration des valeurs calcul es par la fonction se fait par les param tres de sortie y1 y dans la d finition de toto ci dessus Prenons l exemple d une fonction angle qui doit calculer l angle form par le segment d extr mit s 0 0 et x y avec l horizontale et aussi le dessiner On peut cr er le fichier angle m contenant les lignes function s angle x y s 180 atan y x pi patch x 0 x 0 0 y1 y axis equal puis dans la fen tre de commandes on tape angle 4 5 Le nom du fichier contenant la fonction porte obligatoirement le nom de cette derni re On peut mettre plusieurs fonctions dans le m me M file mais seule la fonction du m me nom que le fichier peut tre utilis e appel e partir de la fen tre de commandes ou d une autre fonction ou d un script Les autres fonctions ventuellement stock es dans le fichier peuvent s appeler entre elles mais ne sont pas visibles de l ext rieur S il n y a qu un r sultat comme dans l exemple de la fonction angle on peut se dispen
17. es sp ciales ne peuvent s utiliser qu en relation une fonction nargin donne le nombre d arguments d entr e pass s l appel de la fonction function c testargl a b if nargin 1 c 2x a elseif nargin 2 c a b end nargin peut aussi tre utilis e pour conna tre le nombre pr vu d arguments d entr e 11 gt gt nargin testargl ans 2 La commande nargout fonctionne de mani re analogue pour les arguments de sortie nargin nombre d arguments d entr e d une fonction nargout nombre d arguments de sortie d une fonction error interrompt l ex cution de la fonction affiche le message d erreur et retourne dans le programme appelant warning imprime le message mais ne retourne pas dans le programme appelant pause interrompt l ex cution jusqu ce que l utilisateur tape un return pause n interrompt l ex cution pendant n secondes pause off indique que les pause rencontr es ult rieurement doivent tre ignor es ce qui permet de faire tourner tous seuls des scripts requi rant normalement l intervention de l utilisateur break sort d une boucle while ou for return retourne dans le programme appelant sans aller jusqu la fin de la fonction TAB 2 Commandes de contr le 3 4 Exercices sur les fonctions find Exercice 11 1 Ecrire un Mfile pour la fonction x 3 fi x en 2 Tester la fonction sur quelques valeurs par exemple f1 1
18. ion qui pour la plupart ne devraient pas surprendre outre mesure si on conna t d j un autre langage C ou Fortran Les fonctions sont des encha nements de commandes Matlab regroup es sous un nom de fonction permettant de commander leur ex cution On peut mettre dans une fonction un groupe de commandes destin tre ex cut plusieurs fois au cours du calcul avec ventuellement des valeurs de param tres diff rents La fonction peut aussi tre charg e de r aliser un calcul avec un certain algorithme qui pourra tre remplac ventuellement par un autre plus rapide ou plus pr cis en changeant simplement le nom de la fonction dans le programme appelant Enfin d s que le programme est un peu long et compliqu il est souhaitable de le d couper en fonctions correspondant des tapes pour am liorer la lisibilit et la compr hension de l algorithme Les fonctions peuvent tre d finies inline c est dire dans le corps du progamme appelant ou bien dans des fichiers externes ind pendants Mfile 3 1 M files functions D s que la fonction n cessite plusieurs instructions il vaut mieux la d finir dans un fichier part l aide de l diteur de texte De maniere g n rale la syntaxe de d finition d une fonction externe est function y_1 y_ml toto x_1 x_n o toto est le nom de la fonction 11 n les n arguments d entr e et y1 Ym les m arguments de sortie Les points verticaux symbolis
19. la fen tre de l diteur de mani re tre sauvegard e dans un script pour pouvoir y revenir ult rieurement cf 1 Les mots clefs en italiques dans la marge sont des fonctions Matlab utiliser pour faire l exercice Taper par exemple ones 1 cr e un tableau de i lignes j colonnes contenant des 1 zeros i j cr e un tableau de i lignes j colonnes contenant des 0 eye 1 cr e un tableau de i lignes j colonnes avec des 1 sur la diagonale principale et 0 ailleurs toeplitz u cr e une matrice de Toeplitz sym trique dont la premi re ligne est le vecteur u diag u cr e une matrice carr e avec le vecteur u sur la diagonale et 0 ailleurs diag U extrait la diagonale de la matrice U triu A renvoie la partie sup rieure de A tril A renvoie la partie inf rieure de A linspace a b n cr e un vecteur de n composantes uniform ment r parties de a b A b r solution du syst me lin aire Ax b cond A conditionnement d une matrice norme euclidienne det A d terminant d une matrice rank A rang d une matrice inv A inverse d une matrice pinv A pseudo inverse d une matrice svd A valeurs singuli res d une matrice norm A norme matricielle ou vectorielle y u prend le transpos de u u v multiplication matricielle addition matricielle soustraction matricielle multiplication des tableaux u et v terme terme division du tableau u par le tableau v terme terme indices des composantes du tableau A
20. mable de ce document en format Postscript Cliquer ici pour t l charger la version imprimable de ce document en format PDF Fonctionnement g n ral Ce document est destin tre utilis sur un poste de travail LINUX ou UNIX typiquement les ordinateurs de la salle 1022 Chevaleret Ouvrez simultan ment une session Matlab en tapant tout simplement Matlab dans une fen tre de commandes Vous allez voir appara tre une ou plusieurs nouvelles fen tres sur votre cran dont la fen tre de commandes repr sent e sur la figure 1 Les principales caract ristiques de cette fen tre sont Les caract res gt gt en d but de ligne constituent le prompt de Matlab C est apr s eux que vous pouvez taper des commandes qui seront ex cut es par le logiciel apr s avoir tap sur la touche entr e Le r sultat de l ex cution s inscrit alors dans la fen tre ou est repr sent graphiquement dans une nouvelle fen tre sp cifique avec possibilit de zoom d impression etc Pour rentrer une suite complexe d instruc tions on parle aussi d un script on les tape au pr alable dans un fichier en utilisant l diteur int gr Une fois le script enregistr on peut l ex cuter en tapant son nom dans la fen tre Matlab cf exercice 1 L historique des instructions entr es depuis le d but de la session sur la ligne de commande est accessible par pressions successives de la touche f Enfin pour effacer les donn es en m moi
21. n length x y c n ones size t for i n 1 1 1 y y t x i ones size t c i rones size t end 1 V rifier le comportement de l interpolation de Lagrange en choisissant comme fonction un polyn me 2 L algorithme est ensuite appliqu la fonction f x a sur l intervalle 5 5 La repr sentation graphique conjointe de ce polyn me pour n 13 et de la fonction est reproduite sur la figure 3 o le ph nom ne de non convergence ph nom ne de Runge est manifeste 8 2 R solution approch e des quations diff rentielles On renvoie 4 pour une pr sentation des quations diff rentielles et des m thodes num riques pour les r soudre Matlab poss de plusieurs solveurs approch s pour les quations diff rentielles du type y f t y t tel y to Yo IR Le solveur choisi par exemple ode45 ode23 ode113 odei5s ode23s ode23t ou ode23tb r sout le probl me de Cauchy ci dessus en utilisant une m thode et une pr cision choisies par l utilisateur La syntaxe de base est T Y solver odefun tspan y0 odefun fonction au second membre du systeme diff rentiel ci dessus f t y tspan t0 t1 tf temps o on veut calculer la solution y yo Condition initiale y t0 vecteur colonne n composantes AT En sortie les temps o est calcul e la solution Y Les valeurs de la solution aux temps T Exercice 18 Dans cet exercice on s int resse un mod le de dynamique des po
22. ndices et effectue chaque pas toutes les instructions d limit es par l instruction end gt gt x 1 for k 1 4 x x k end x 1 x 2 x 6 13 24 la boucle for peut parcourir un vecteur ou une matrice en prenant comme valeur chaque pas les l ments ou les colonnes successifs gt gt v 1 3 0 y 1 3 0 gt gt x 1 for k v x x k end x 0 x 3 x 3 La boucle while effectue une suite de commandes jusqu ce qu une condition soit satisfaite gt gt x 1 while x lt 14 x x 5 end x 6 x 11 x 16 Les deux types de boucles peuvent tre interrompus par l instruction break Dans les boucles imbriqu es break n interrompt que la boucle la plus interne Exercice 13 1 D finir dans un M file un vecteur H contenant des valeurs croissantes entre 0 et 1 2 Utiliser une boucle pour appeler la fonction crite l exercice 12 avec 1 argument d entr e h pre nant successivement les valeurs contenues dans H Stocker l erreur renvoy e par la fonction dans la composante correspondante d un vecteur E 3 Repr senter graphiquement l erreur en fonction du param tre h l aide de la commande plot H E Que remarque t on 5 Tests Un test est une alternative entre deux commandes ou groupe de commandes Matlab s lectionn es suivant le r sultat d une op ration logique Le r sultat d une op ration logique voir tableau 4 est une variable logique ou bol enne qui vaut
23. oints x et interpolant la fonction f 3 Repr senter sur le m me graphique la fonction f aux abscisses xx en vert la spline aux abscisses xx en bleu et les points d interpolation x f x par des croix rouges 19 Exercice 17 Afin d illustrer graphiquement l interpolation polynomiale de Lagrange le script 2 calcule le polyn me d interpolation d une fonction quelconque associ n 1 points quir partis sur un intervalle avec la m thode des diff rences divis es La fonction interpoler est repr sent e en vert le polyn me d in terpolation en bleu et les points d interpolation sont mat rialis s avec des ronds rouges Illustration du phenomene de Runge 1 T T T T T T FIG 3 Interpolation de Lagrange de la fonction 1 1 x avec 10 points Script 2 Interpolation polynomiale de Lagrange f inline sin 0 5x x xmin 5 xmax 5 n 10 h xmax xmin n 1 interpolation de f x sin x 2 sur 5 5 xp linspace xmin xmax n d f xp calcul des diff rences divis es for k 2 n for j n 1 k d j 4a j 4 j 1 CCk 1 xh end end estimation de Horner x linspace xmin xmax 100 y HHorner d xp x plot x y b x f x 8 xp f xp 0r legend polynome fonction points title Interpolation de Lagrange Avec un M file contenant la fonction d valuation du polyn me pour la repr sentation graphique function y HHorner c x t 20
24. 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 o0 r x sin x x b x exp x 8 4 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 FIG 2 Exemple d appels successifs la fonction plot 18 hold on plot x cos x 0o r plot x sin x x b plot x exp x p legend cos x sin x exp x 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 Oy gauche et courbe x z avec laxe 0z droite xlabel label l gende pour l axe Ox ylabel label l gende pour l axe Oy title label titre au dessus du graphique legend labi 1ab2 lab
25. ppara tra pas l cran Essayez la s quence de commandes suivantes gt gt clear gt gt A gt gt A ones 2 3 gt gt A Enfin si vous voulez que Matlab ignore compl tement ce que vous tapez ce qui sera utile dans l criture des scripts pour y mettre des commentaires am liorant leur lisibilit il faut le faire pr c der du caract re Utilisation de l aide en ligne L apprentissage du bon maniement de l aide en ligne ou papier du logiciel est indispensable tant donn le tr s grand nombre d instructions utilisables il est hors de question de pouvoir m moriser chacune d elles avec sa syntaxe correspondante noter galement que cette aide est uniquement disponible en langue anglaise ce qui n cessite le cas ch ant l apprentissage compl mentaire de quelques rudiments de cette langue L aide en ligne permet de retrouver toutes les informations utiles en allant dans le menu Help gt MATLAB help voir figure 1 une nouvelle fen tre s ouvre partag e en deux gauche on peut en cliquant sur le signet sup rieur correspondant activer Contents La table des mati res de l aide en ligne En cliquant sur un chapitre de l arborescence son contenu est affich dans la fen tre de droite Index L index de l aide en ligne qui r pertorie toutes les commandes Matlab et permet d acc der leur mode d emploi sp cifique On peut taper le nom de la commande si on la conna t d
26. pulations On va illustrer graphiquement l volution du syst me proie pr dateur u t v t u pr dateur et v proie suivant le mod le de Volterra E us o te Ra eri t v t 1 u t P u 0 9 v 0 2 1 On pose Y u vu la fonction vectorielle solution du syst me diff rentiel ci dessus Programmer dans un M file la fonction f t Y de IRF x IR dans IR de ce syst me Attention le syst me est autonome f ne d pend pas de t mais Matlab s attend ce que la fonction pass e en argument du solveur d pende de t et de Y 2 D finir un vecteur T de 50 temps uniform ment r partis entre 0 et 25 Calculer une solution approch e de P aux temps T en utilisant la fonction Matlab ode23 3 Repr senter sur le m me graphique l volution u en bleu et de v en rouge en fonction de t Repr senter dans une autre fen tre l volution de v en fonction de u On observera en particulier sur les figures 4 que le syst me semble p riodique en temps Des explications plus d taill es sur ce mod le proie pr dateur sont disponibles dans un TP de ma trise en SCILABS Shttp www ann jussieu fr postel scilab volterra 21 3 T T T T Modele proie predateur proie 3 T T T predateur 2 5 a 0 5 10 15 20 25 0 1 1 1 1 1 1 1 temps 0 4 0 6 0 8 1 1 2 1 4 1 6 1 8 2 FIG 4 Mod le proie pr dateur volution des 2 populations en fonction du temps g
27. re par exemple avant d ex cuter un nouveau calcul il suffit d utiliser la commande clear Exemple Tapez dans la fen tre de commande la ligne suivante gt gt A ones 2 3 l http www mathworks com 2http www rocq inria fr scilab Shttp www ann jussieu fr algebrelineairenumerique http www ann jussieu fr postel dess MATLAB ps Shttp wuw ann jussieu fr postel dess MATLAB pdf File Edit View Web Window Help Djs ejej olo mi 2 current nizectory 7nome postez acss tente A Command Window le Doptinizati Ste lt MATLAB gt Pao S Copyright 1984 2000 The Mathllorks Inc partial Differential Equation Toolbox Version 6 0 0 88 Release 12 d uaveiet Toolbox Sep 21 2000 a e To get started select MATLAB Help from the Help menu gt gt HE Launch Pad Ba ChienLieure Folder CA CorPart20 10 03 Folder Folder Folder Folder M file Command History Current Directory j Ready FIG 1 Fen tre de commandes Matlab Le r sultat devrait ressembler A ones 2 3 1 1 1 1 1 Ceci repr sente une matrice 2 x 3 dont toutes les composantes valent un Matlab est assez friand de lignes blanches Si vous pr f rez des sorties plus compactes tapez gt gt format compact en d but de session Si vous ne d sirez pas voir le r sultat d une commande imm diatement il faut la faire suivre d un point virgule La commande sera ex cut e mais son r sultat n a
28. res dans un fichier Par convention un fichier contenant des commandes Matlab porte un nom avec le suffixe m et s appelle pour cette raison un M file ou encore script On utilisera TOUJOURS l diteur int gr au logiciel qui se lance partir de la fen tre de commande en cliquant sur les ic nes new M file ou open file dans la barre de menu Une fois le fichier enregistr sous un nom valide on peut ex cuter les commandes qu il contient en tapant son nom sans le suffixe m dans la fen tre de commande Si vous avez ouvert l diteur comme indiqu partir de la fen tre de commande les M file seront cr s dans le r pertoire courant accessible depuis cette fen tre et vous n aurez pas de probl me d acc s Si vous voulez ex cuter des scripts qui se trouvent ailleurs dans l arborescence des fichiers vous aurez ventuellement modifier le Path en cliquant sur le menu file gt SetPath ou bien en changeant de r pertoire de travail cliquer sur onglet current directory Exercice 1 Un premier script Cr er dans le r pertoire courant un M file en cliquant sur l icone New M file et taper les instructions sui vantes Script 1 Premier script a 1 b 2 c a b Sauver en cliquant sur l icone save sous le nom PremierScript m et ex cuter la commande gt gt PremierScript dans la fen tre Matlab soit en la tapant au clavier soit en cliquant sur l icone Run partir de la fen tre d dition Taper maintenant gt
29. s surfaces z f x y les donn es x y z doivent tre des vecteurs colonnes x et y ou des matrices z aux dimensions compatibles L instruction de dessin correspondante par exemple plot x y pour tracer des courbes planes est alors utilis e et ventuellement compl t e par des arguments optionnels couleur type de trait chelle sur les axes etc La visualisation du r sultat s effectue dans une fen tre graphique avec possibilit de zoom de rotation d impression 7 1 Exemple de repr sentation graphique en dimension deux En ex cutant le script suivant 17 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 o x x 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 1 intervalle 0 pil 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
30. s valeurs par exemple f2 1 0 0230 f2 3 0 0235 3 Cr er un tableau d abscisses x de 2 5 par pas de 0 01 4 Repr senter la fonction f2 aux points x avec la commande plot x f2 x Modifier si besoin f2 m pour que ceci soit possible 6 Lecture et criture au clavier et dans des fichiers On peut avoir lire des donn es num riques ou alphanum riques dans un fichier par exemple les conditions initiales d un calcul ou un maillage qui a t g n r par un autre programme Inversement on peut vouloir sauver le r sultat d un calcul pour s en servir ult rieurement dans Matlab ou dans un autre programme M dimread NomDeFichier Delimiteur Lit des donn es num riques du fichier ASCII NomDeFichier chaque nombre est s par du suivant par le caract re D limiteur ou par un retour la ligne La virgule et l espace sont des d limiteurs par d faut A B C textread NomDeFichier format 16 Lit les variables avec le format sp cifi jusqu puisement du fichier Le nombre de variables lire et le nombre de donn es dans le fichier doivent correspondre fid fopen NomDeFichier 4 ouvre le fichier A fscanf fid format A count fscanf fid format size Lit les donn es avec le format sp cifi Un format est une chaine de caract res sp cifiant en lecture le type de donn es lire d pour un entier 4f pour un r el hc pour un caract r
31. ser de le r cup rer dans une variable En revanche s il y a plus d un param tre de sortie il faut r cup rer leurs valeurs dans des variables dans le script d appel Regardons par exemple l utilisation de la fonction polaire d finie ci dessous et sauv e dans le fichier polaire m 10 function r theta polaire x y r sqrt x 2 y 2 theta atan y x Pour l utiliser partir de la fen tre Matlab on tape les instructions suivantes gt gt r polaire 2 3 4 ou bien gt gt polaire 2 3 si seulement le rayon nous int resse ans 3 6055513 gt gt r t polaire 2 3 si on veut r cup rer la fois le rayon et l angle 9828 r 3 6056 3 2 Inline functions Une fonction ne comportant qu un petit nombre d instructions peut tre d finie directement dans la fen tre de commandes de la mani re suivante gt gt angle inline 180 atan y x pi angle Inline function angle x y atan y x gt gt angle 5 4 ans 0 6747 Les arguments de la fonction angle sont normalement fournis l appel dans l ordre d apparition dans la d finition de la fonction On peut aussi sp cifier les arguments d appel explicitement gt gt f inline sin alphax x y x y alpha f Inline function f x y alpha sin alpha x y gt gt f 0 2 0 3 pi ans 1 3 3 Fonctions outils Enfin pour clore ce paragraphe d introduction la programmation sous Matlab notez que certaines com mand
32. t de r aliser des simulations num riques bas es sur des algorithmes d analyse num rique Il peut donc tre utilis pour la r solution approch e d quations diff rentielles d quations aux d riv es partielles ou de syst mes lin aires etc L objectif de ces s ances Matlab est double la connaissance de ce logiciel est en soi indispensable parce qu il est de plus en plus utilis dans l industrie et les banques pour d velopper des prototypes de logiciels et tester de nouveaux algorithmes Tous les ans entre vingt et trente pour cent des tudiants du DESS utilisent Matlab pendant leur stage Ensuite son apprentissage va passer par la mise en pratique des algorithmes d analyse num rique tudi s plus th oriquement dans le reste du module Pour cela on r alisera au cours des s ances un projet directement inspir d un cas concret sch matisant un probl me industriel Signalons au passage que des logiciels en shareware freeware mulent Matlab de mani re de plus en plus satisfaisante Leur utilisation permet de palier l inconv nient principal du co t de la licence Vous pouvez par exemple t l charger Scilab gratuitement sur le site Internet de PINRIA Vous pouvez apprendre programmer en Scilab dont la syntaxe est proche de celle de Matlab avec l ouvrage r cent et complet de G Allaire et S M Kaber 3 2 1 Prise en main de Matlab Version imprimable du document Cliquer ici pour t l charger la version impri
33. u test appliqu toutes les composantes Pour appliquer la fonction composante par composante il faut parfois la r crire en rempla ant les tests sur des valeurs scalaires par l emploi de la fonction find Prenons par exemple la fonction suivante function y test1 x if x gt 0 5 y 1 else y 0 end 15 qui teste la position d une variable r elle par rapport 0 5 Si on l applique un vecteur on obtient une seule valeur correspondant au r sultat du test scalaire v rifi pour toutes les composantes Ici test1 v sera gal 1 si toutes les composantes de v sont sup rieures 0 5 Pour appliquer le test composante par composante le plus simple est de remarquer que test1 se programme aussi par l instruction y x gt 0 5 qui donne le r sultat attendu dans le cas scalaire et aussi vectoriel le v rifier Exercice 14 Regardons maintenant une deuxi me fonction test2 function y test2 x if x gt 0 5 y sin x else y X end 1 Cr er un vecteur contenant 10 valeurs al atoires uniform ment distribu es entre 0 et 0 5 2 Tester l emploi des deux fonctions test1 et test2 sur ce vecteur 3 Ecrire une fonction test2v qui fait la m me chose que test2 composante par composante Utiliser find Exercice 15 1 Ecrire un M file pour la fonction 0 x lt 1 Le BEEN t ge 1 2 fla 4 1 1 2 lt x lt 3 e 15 7 2 3 lt x lt A 0 r gt 4 sur l intervalle 2 5 2 Tester la fonction sur quelque
Download Pdf Manuals
Related Search
Related Contents
victron energy Proteção de sistemas elétricos de média e baixa COBY electronic DVD-937 User's Manual フレックスクッション 取扱説明書 Manual - Resol V7 Slim Rotating Case & Stand for all iPad mini - black User Manual Attire-poussière DEBUGSCOPE 取扱説明書 追記事項 - Mizoue Project Japan Copyright © All rights reserved.
Failed to retrieve file