HLMA405 TP1 Introduction à MATLAB

Documents pareils
MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Calcul Formel et Numérique, Partie I

TP 1 Introduction à Matlab Février 2009

Introduction à MATLAB R

Cours 7 : Utilisation de modules sous python

Calcul Formel et Numérique, Partie I

3.2. Matlab/Simulink Généralités

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

TP 1. Prise en main du langage Python

TP 0 : INTRODUCTION À MATLAB

Aide - mémoire gnuplot 4.0

Séance 0 : Linux + Octave : le compromis idéal

Python - introduction à la programmation et calcul scientifique

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Initiation à la programmation en Python


1. Structure d'un programme FORTRAN 95

Présentation du langage et premières fonctions

Premiers pas avec Mathematica

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

L informatique en BCPST

Cours Informatique Master STEP

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Initiation à LabView : Les exemples d applications :

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Cours d algorithmique pour la classe de 2nde

Maple: premiers calculs et premières applications

Algorithmique et Programmation, IMA

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Simulation de variables aléatoires

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

1 Introduction - Qu est-ce que le logiciel R?

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Introduction à la présentation graphique avec xmgrace

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

STAGE IREM 0- Premiers pas en Python

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Découverte de Python

TP1 : Initiation à l algorithmique (1 séance)

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Correction de l examen de la première session

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Automatique des systèmes linéaires continus

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Petit Guide de Survie en Scilab

Corrigé des TD 1 à 5

Cours d Analyse. Fonctions de plusieurs variables

Algorithmique et programmation : les bases (VBA) Corrigé

Projet Matlab : un logiciel de cryptage

Le langage C. Séance n 4

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

VOS PREMIERS PAS AVEC TRACENPOCHE

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Chapitre 2 Le problème de l unicité des solutions

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

IV- Equations, inéquations dans R, Systèmes d équations

Atelier Le gestionnaire de fichier

Initiation aux calculatrices graphiques formelles TI

Rappels sur les suites - Algorithme

Outils pour la pratique

INITIATION AU LOGICIEL SAS

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Programmation C. Apprendre à développer des programmes simples dans le langage C

TP1 - Prise en main de l environnement Unix.

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Utilisation de l outil lié à MBKSTR 9

TP 1 Prise en main de l environnement Unix

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Mathématiques appliquées à l'économie et à la Gestion

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Initiation à la programmation OEF pour Wims (exercices).

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Tout savoir sur le clavier

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Note de cours. Introduction à Excel 2007

Introduction à Matlab

L ALGORITHMIQUE. Algorithme

Une forme générale de la conjecture abc

Licence Sciences et Technologies Examen janvier 2010

Dérivées d ordres supérieurs. Application à l étude d extrema.

Leçon N 5 PICASA Généralités

Du bon usage de gnuplot

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

INF 321 : mémento de la syntaxe de Java

Tutoriel Mathematica Les graphiques

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Transcription:

HLMA405 TP1 Introduction à MATLAB L UE HLMA405 contient 11 séances de travaux pratiques. Pendant ces TP, nous aborderons les grands thèmes de l analyse numérique matricielle via le logiciel propriétaire MATLAB. Ce dernier est un logiciel extrêmement complet, mais payant. Vous pouvez soit casser votre tirelire, soit l utiliser sur les PC de l Université, soit utiliser une alternative gratuite : GNU/Octave disponible à l adresse https://www.gnu.org/software/octave/. Octave utilise exactement les mêmes commandes que MATLAB, mêmes si celui-ci demeure beaucoup moins complet, ce dernier suffit pour couvrir l ensemble des TP de cette UE. 1 Organisation Cette feuille concentre les commandes de base pour utiliser MATLAB. Des remarques et exercices sont proposés pour mieux comprendre les éventuelles erreurs auxquelles vous serez confronté. Accordez une attention particulière aux remarques précédées d un A retenir, celle-ci doivent être bien comprise! Avant de se lancer dans MATLAB, nous allons commencer par créer les dossiers oú l on sauvegarde tous nos travaux faits en séance de TP. Exercice 1. Lancez un terminal via le menu déroulant (ou Ctrl Alt T sous *ubuntu) et saisissez la ligne suivante : mkdir -p ~/hlma405/tp{intro,2,3,4,5,6,7-8,9,10,11} et exécutez la avec la touche Entrée. Ceci va créer un dossier hlma405 à l intérieur duquel vont se trouver plusieurs sous-dossiers TP. Pour cette première séance, placez vous dans le sous-dossier TPintro en faisant : puis Entrée. cd ~/hlma405/tpintro/ Remarque. Ne pas oublier le symbole tilde ~! Celui-ci designe votre répertoire utilisateur Remarque. Evitez les espaces dans les noms de fichiers et dossiers, préferez l underscore ou le tiret -. 2 Lancer MATLAB Pour lancer MATLAB, ouvrez un terminal (souvent Ctrl Alt T sous *ubuntu) et taper en minuscules matlab & pour lancer MATLAB (cela peut prendre du temps suivant les pc). Pour fermer MATLAB de force, ouvrez un terminal et tapez killall matlab puis Entrée. Remarque. Le symbole & permet de lancer l application en fond et garder la main sur le terminal afin d y exécuter d autres commandes. Si vous l omettez, l application se lancera toujours, mais le terminal ne sera pas utilisable. Exercice 2. Une fois placé dans le dossier TPintro, lancer MATLAB. 1

3 Les fenêtres de MATLAB MATLAB se divise en plusieurs zones : (Dir) Current directory : le dossier dans lequel vous vous trouvez. C est ici oú vous chargez/sauvegardez vos fichiers. (CW) Command Window : zone oú l on exécute des commandes MATLAB. (WS) Workspace : Liste des objets MATLAB en mémoire. (CH) Command History : L historique des commandes tapées dans Command Window. (Ed) Editor : Éditeur qui permet de créer des scripts MATLAB. A retenir. Vérifiez toujours que vous êtes bien dans le bon dossier dans (Dir)! Dans le cas contraire, vous aurez certainement une erreur quand vous chercherez à exécuter un script. A retenir. Il est préférable d utiliser la zone (CW) que pour faire des petits calculs et exécuter des scripts. Ainsi, pour traiter un exercice, il est préférable de créer un script avec l Editeur (Ed) puis de l exécuter dans (CW). 4 Commandes Les commandes qui vont suivre peuvent-être exécutées directement dans (CW), après les >> ou dans un script via l éditeur (Ed). Pour accéder aux commandes que vous avez entrées précédemment, vous pouvez utiliser les touches et du clavier une fois placé dans (CW). 4.1 Les basiques Dans ce qui suit, quelques mots-clés de base de MATLAB commande pwd cd clear help disp input descripton Renvoie le dossier courant Change le dossier courant. Exemple : cd ~/hlma405/tp3/ Efface un objet précis ou tous les objets en mémoire, tous les objets de (WS) sont effacés de la mémoire. Exemple : clear b, efface l objet b tandis que clear seul, efface toute la mémoire affichée dans (WS)! Donne des informations sur une commande. Exemple : help det renvoie des information sur la fonction déterminant det. premet d afficher un texte Exemple : disp( Le résultat est: ). invite à saisir une donnée au clavier Exemple : n=input( saisissez un entier ). A retenir. La commande help répondra à bon nombre de vos questions. Pensez-y avant de poser une question! Le symbole % permet d écrire des commentaires, tout ce qui suit un % sera ignoré par MATLAB. Le point-virgule ; permet de ne pas afficher de réponse de sortie. pwd ans = / home / moi pwd ; % ne retourne rien 2

4.2 Opérations classiques Pour définir un objet on utilise l opérateur =. On se place dans (CW) et on exécute par exemple a=9 pour assigner la valeur 9 à la variable a. On peut utiliser les opérateurs classiques (+,-,*,/) sur les nombres pour définir des variables : Addition : a=9+10 Soustraction : a=3-10 Multiplication : a=3*4 Division : a=3/4 ou mêmes s aider des fonctions mathématiques usuelles : min,max,mean,std,sum,abs,real,imag,conj,round,sqrt,exp,log,log10,sin,tan,sin,asin,atan,sinh,cosh,tanh et de constantes connues comme pi et i (partie imaginaire) : a= sin (pi) b= 1+i moduleb = sqrt (b* conj (b)) e= exp (pi*i) f= (1/ sqrt (2))*(1+ i) m= max (1,3) j= 0.5 E -10 % saisie par ecriture scientifique Exercice 3. Utiliser l aide pour avoir des détails sur les fonctions qui vont sont inconnues Comme en maths, certaines opérations ne sont pas définies, dans ce cas vous serez averti d un NaN ou d un Inf : a= 1/0 % renvoie un avertissement suivi de ans = Inf ( Infini ) b= 0/0 % renvoie un avertissement suivi de ans = NaN ( Not a Number ) 4.3 Opérations logiques On peut tester des conditions grace aux opérateurs logiques : a==b : teste si a est égal à b a~=b : teste si a est différent de b a<b : teste si a est strictement inférieur à b. a>b a<=b a>=b (cond1) & (cond2) : teste si cond1 ET cond2 sont vérifiées (cond1) (cond2) : teste si cond1 OU cond2 est vérifiée ~(cond) : teste si le contraire de cond est vraie (ou si cond est fausse). Remarque. Faites attention quand il s agit de tester la condition a==0. Bien souvent, quand on manipule des approximations de nombres, cette condition est rarement satisfaite. Préferez plutôt abs(a)<=eps avec eps petit (eps=1e-15 par exemple). On peut penser par exemple au cas oú l on vérifie x = 0. 4.4 Boucles et conditions 4.4.1 Condition if La syntaxe pour une condition if est la suivante : if condition1 elseif condition2 3

elseif else end confition3 Exercice 4. Créer un script qui renvoit le nombre de racines réelles d un polynôme de degré 2, celui-ci peut-être vu comme un vecteur ligne P=[a b c] faisant référence au polynôme P (X) = ax 2 + bx + c. 4.4.2 Boucle for La syntaxe pour une boucle for est la suivante : for i=a: b: c % i va parcourir le vecteur a: b: c % operations utilisant i end Exercice 5. En utilisant une boucle for, calculer la factorielle de 18 4.4.3 Boucle while La syntaxe pour une boucle while est la suivante : while end condition Exercice 6. Avec une boucle while et la fonction isprime, comptez le nombre de nombres premiers inférieurs à 1000. 5 Algèbre linéaire MATLAB se base sur une représentation matricielle des données. Il est possible de définir, à la volée, des matrices de dimensions arbitraires. Un nombre est vu comme une matrice 1 1. Dans ce qui suit, nous donnons quelques raccourcis pour définir des matrices et les opérations les plus courantes. A retenir. Sur MATLAB, les indices des coefficients des matrices commencent à 1. 4

commande x=a:b x=a:h:b description crée un vecteur ligne x commencant par a finissant par b avec un pas égal à 1 crée un vecteur ligne x commencant par a finissant par b avec un pas égal à h Exemple : a=0:0.5:1 renvoie a=[0 0.5 1] ones(n,m) définit une matrice n m pleine de 1. eye(n) définit la matrice identité I n. rand(n,m) définit une matrice n m avec des coefficients aléatoires dans [0, 1]. diag(u) définit une matrice carrée diagonale à partir du vecteur u. v(i) accède au coefficient i du vecteur ligne/colonne v. A(i,j) accède au coefficient (i, j) de la matrice A. A(i,:) affiche la ligne i de la matrice A. A(:,j) affiche la colonne j de la matrice A. A(2:6,1:4) extrait le bloc (A ij ) 2 i 6 1 j 4 inv(a) renvoie la matrice inverse de A. de la matrice A. trace(a) renvoie la trace de A. norm(a) renvoie une norme de A (faire help norm pour voir les normes disponibles). eig(a) renvoie les éléments propres de A. det(a) renvoie le déterminant de A. size(a) renvoie les dimensions de A. cond(a) renvoie le conditionnement de A. diag(a) renvoie les coefficients sur la diagonale de A. Opérations sur les matrices : Pour définir des matrices, on utilise les crochets []. Une matrice peut-être définie à la main, c-à-d directement avec ses coefficients comme suit % On peut definir une matrice A1 de taille 3 x4 ligne par ligne % ( pratique pour eviter les erreurs dans le cas de matrices diagonales ) A1 =[ [1 3 4 1]; [1 1 1 9]; [0 0 1 pi] ]; % ou d une traite A2 =[ [1 3 4]; [0 1 0]; [1 1 1]; [0 0 1] ]; Le point-virgule permet d aller à la ligne au sein de la matrice. La touche Entrée pendant la saisie. Exercice 7. Extraire le bloc 3 2 de A1 contenant π. Un vecteur de R n est vu comme une matrice n 1 (ou 1 n) : v =[ 1; 2; 3; 4] % definit un vecteur colonne v =[ 1 2 3 4 ] % definit un vecteur ligne permet d aller à la ligne Exercice 8. Créer un vecteur unite contenant les racines N ième de l unité Les opérations usuelles de l algèbre linéaire sont accessibles grace aux commandes suivantes commande description A+B somme des matrices A et B (de même tailles!). A-B différence des matrices A et B. A*B multiplication matricielle des matrices A et B. A.*B multiplication termes à termes des matrices A et B. A^n puissance nième d une matrice carrée. A.^n puissance nième termes à termes de A. A\b solution du système Ax = b oú A est une matrice n m et b R n A transposée de A. 5

Exercice 9. Assembler la matrice R de rotation de π 3 autour de l axe y dans R3. Sans utiliser MATLAB, parmi les deux commandes R*[0;3;0] et R.*[0;3;0], laquelle est valide? Le vérifier. A retenir. Bien faire la différence entre * et.*! 6 Visualisation MATLAB permet de tracer très facilement des courbes à partir de vecteurs. Le petit script suivant épargne un long discours : x = -10:0.01:10; % abscisses separes de 0.01 y=x.^2; % on met au carre chacune ( grace a.^) des composantes de x plot (x, y) % on trace la ligne qui relie les points plot (x,y, * ) % cette fois on affiche uniquement les points avec des etoiles * On peut aussi tracer sur un même graphe plusieurs courbes ainsi qu un titre, des labels, etc : h =0.1; % intervalle des abscisses x = -10: h :10; % abscisses separes de 0.1 y1 =x.^2; % on met au carre chacun des x y2 = sin ( x); % on calcule les sinus des x plot (x,y1, b-,x,y2, r- ) % on trace x vs y1 en trait continu bleu % et x vs y2 en trait continu rouge sur % le meme graphe title ( Fonction carre et sinusoidale ); % donne un titre xlabel ( abscisses x ); % ylabel ( ordonnees y ); % donne des noms aux axes legend ( fct carre, fct sin ); % une legende dans une petite boite Exercice 10. A partir de l exercice précedent sur les racines de l unité, calculer la différence entre le périmètre du cercle et du polygone obtenu. Afficher la décroissance par rapport à N sur un graphe. Pour les surfaces en 3D, on doit faire appel à d autres fonctions : x =[ 0: 0. 1: 1]; % vecteur qui contient les x y=x; % vecteur qui contient les y [X, Y]= meshgrid (x, y); % meshgrid va construire le produit cartesien de x et y % et stocker les abscisses dans une matrice X et les ord - % - onnees dans une matrice Y. Z= sin (X.^2+ Y.^2) % z = sin (x ^2+ y ^2) pour chaque point (x,y) du maillage mesh (X,Y,Z) % trace la surface z= sin (x ^2+ y ^2) 7 Les scripts Un script MATLAB est un fichier d instructions MATLAB, son extension doit finir par.m. Une fois exécuté dans (CW), les commandes sont exécutées les unes après les autres. Une fois que vous êtes dans le bon dossier, utilisez l Editeur (Ed) pour créer un script MATLAB, sauvegardez le sous la forme monscript.m. Pour exécuter le script, il suffit d écrire le nom du fichier en omettant l extention dans (CW), c est-à-dire : monscript Exercice 11. Ecrire un script fonctions.m qui trace les fonctions x x 4 x + 1 et x sin(cos(x)) et rouge et bleu et l exécuter. Exercice 12. Soit N points ((x i, y i ) 1 i N définis aléatoirement, écrire un script qui calcule le polynôme, de degré N 1, passant par tous ces points, puis le tracer. [Etapes : définir les points x i et y i avec rand, assembler la matrice du système linéaire grâce à vander, résoudre avec l opérateur \, puis tracer avec plot ] 6

7.1 Les fonctions Pour définir une fonction mafonction sous MATLAB, il faut commencer par créer un script mafonction.m dans (Ed). La fonction peut être définie avec la syntaxe suivante : function y= mafonction (x, t) % operations pour calculer y a partir de x et t endfunction Ici, les variables d entrées sont x,t et la variable de sortie est y. A retenir. Le nom de la fonction doit obligatoirement correspondre avec le nom du fichier. Exercice 13. Ecrire une fonction qui prend en entrée une liste de points (sous forme de matrice n 2) et qui renvoie l aire (algébrique) sous la courbe de la fonction affine par morceaux passant par ces points. On peut aussi définir sous MATLAB des fonctions à la volée très rapidement. Exemple : f=@( x)( x ^2+1) % definit la fonction x --> x ^2 + 1 f (2) % on evalue f en x=2 ans = 5 % reponse attendue Pour des fonctions à plusieurs variables il suffit d adapter légèrement f=@(x,y,z )([ x ^2; y ^2; z ^2]) % definit la fonction f: (x,y,z) --> (x^2,y^2,z ^2) f (1,2,1) % on evalue en (x,y,z )=(1,2,1) ans = 1 4 1 % renvoie (1,4,1) 7