Top Banner
V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab - Instructions conditionnelles Cours 1 1
46

Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Nov 22, 2018

Download

Documents

dinhkhue
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

V. BerryMAT-3 & MI-3

AlgorithmiqueApplication en MatLab

Variables - Types - 1er contact Matlab - Instructions conditionnelles

Cours 1

1

Page 2: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

PLAN

I. Qu’est-ce que l’algorithmique

II. Objets de base : variables et leurs types

III.Organisation d’un algorithme :

• séquences

• conditionnelles

2

Page 3: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Pourquoi programmer ?

• Automatisation de tâches répétitives– analyse de signaux reçus par un sonar de sous-marin – calculs de trajectoire– test de résistance d’un matériau soumis à des vibrations aléatoires, – affichage de plusieurs résultats dans le même format Parce qu’un

ingénieur doit donner une réponse vérifiable dans un délai court à un problème posé, incorporant souvent de nombreuses variables/valeurs

• Parce que les données d’un problème peuvent varier dans le temps

• Parce qu’il n’existe pas de programme tout fait qui permet de faire exactement ce que l’on veut

3

Page 4: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Exemple d’algorithme

Problème de couplage fluide - structure

[R. Coehlo et al 2007]4

Page 5: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Exemple d’algorithme - (suite)

[R. Coehlo et al 2007]5

Page 6: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Exemple - suiteUn premier algorithme

A chaque itération de l’optimiseur, la solution en cours respecte les contraintes de couplage : elle résulte d’une analyse multi-disciplinaire (MDA) complète (≈5 cycles)Au sein de la MDA, les calculs fluide et structure sont réalisés successivement

Détails :(convergence de la phase centrale (MDA)

6

Page 7: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Les étapes de la programmation pour résoudre un problème non trivial

0. Identification et spécification du problème

1. Modélisation du problème (organigramme, UML)

1’ Subdivision du pbm en tâches simples et indépendantes

2. Planification des algorithmes en pseudo-code (le plan d’attaque pour résoudre le problème)

3. Traduction en langage de programmation (Matlab)

4. Commenter ce code au fur et à mesure

5. Tester le programme par petits bouts et traquer les erreurs

6. Utiliser ! 7

Page 8: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

I - Notion d’algorithme

Algorithme : description systématique d’un procédé de calcul (d’une méthode) pour obtenir un résultat déterminé à partir de données initiales

Exemple - comment faire une omelette

Algorithme PreparerOmelette (boîte oeufs)

pour oeuf de 1 à nb_élem(boîte_oeufs) fairecasser (oeuf,saladier)

fin pourAssaisoner (saladier) ; Mélanger (saladier)Verser (saladier,poêle) ; Cuire(poële,6)

8

Page 9: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Pourquoi utiliser Matlab ?• C’est un environnement de programmation facile à utiliser

– Plusieurs fonctions prédéfinies pour analyser et représenter des données : on peut faire des choses élaborées avec très peu de code

• Particulièrement adapté à la résolution de problèmes numériques rencontrés par les ingénieurs

– Il contient des outils d’optimisation et de résolution d’équations

– Il contient des modules spécialisés d’analyse du signal et de l’image

• Disponible dans vos salles de TP et en entreprise

Note : Scilab est un équivalent gratuit proposé par l’INRIA9

Page 10: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

L’interface de Matlab

• Les principales fenêtres• L’aide

10

TP

Page 11: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

PLAN

I. Qu’est-ce que l’algorithmique

II. Objets de base : variables et leurs types

III.Organisation d’un algorithme :

• séquences

• conditionnelles

• répétitives

11

Page 12: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

II. Les objets élémentaires en algorithmique

Un algorithme est une suite d’instructions manipulant des informations :

12

Algorithme3,12

«Y»0,01

9,98-10,1

1000,12

«voie 2»

4%

paramètres / entrées = données

résultats = sorties

Page 13: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Variables• Une variable est un emplacement mémoire pour

stocker des informations, repéré par un nom. Cet emplacement est composé d’une ou plusieurs cases, chaque case ne pouvant contenir qu’une seule valeur

X2

T2 10 -1 21 3.1

13

Page 14: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Variables en Matlab• Définition et utilisation simple d’une variable :

>> X = 2X

2>> X + 2ans =

4>> T = [ 2 10 -1 21 3.1 ]

14

TP

Page 15: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Gestion des variables dans Matlab

- la fenêtre Workspace permet d’avoir en permanence un aperçu de la liste et du contenu des variables déclarées.

15

- Quand on sélectionne une variable, on ouvre une feuille de tableur qui nous permet de modifier à la main la/les valeurs de la variable.

>> X = 2; % rôle du point-virgule

>> clear X; % «oublie» la variable X

>> clear % efface toutes les variables

Page 16: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Types• Chaque variable a un type qui indique à

l’ordinateur comment décoder l’information située dans l’emplacement et comment la manipuler dans des opérations

• nombres entiers, réels, booléens, chaînes,...

Chaque type a des opérations spécifiques :

• +,-,/,* pour les nombres

• concaténation, sous-chaîne pour les chaînes de caractères

16

Page 17: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• Quelles variables sont définies, quel type ont-elles ?

>> whos Name Size Bytes Class

X 1x1 8 double array ans 1x1 8 double array

17

Page 18: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• Les variables de ce type ne peuvent prendre que deux valeurs : Vrai ou Faux.

• Utiles pour exprimer des conditions :

• X >Y

• X ≠ Y

• (X<10) et (isDiag(M))

Valeurs logiques (booléens)

résultat booléen

18• codées par 0 (Faux) et 1 (Vrai)

Types en Matlab

Page 19: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Types en Matlab• Opérateurs et fonctions logiques :

19

Page 20: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

On prend trois échantillons (→3 mesures de conductivité) du produit à évaluer, avec en provision un échantillon supplémentaire.

Pour chaque échantillon i :

• on calcule Bi, la valeur absolue de l’écart relatif entre la conductivité thermique mesurée λmes i et la conductivité thermique λmod i modélisée

Valeurs et opérateurs logiques

20

Test de conformité thermique d’un produit (ctrl de production) :

RÈGLEMENT TECHNIQUE DE LA CERTIFICATION DES MATÉRIAUX ISOLANTS THERMIQUES DE BÂTIMENT ...

Exemple

Règlement Technique ACERMI

Isolants en vrac

ANNEXE 4.3 Rev. B Page 9/9

Pour les trois échantillons i de 1 à 3, on calcule :

- le rapport, appelé Bi (borne échantillon i), de la valeur absolue de l’écart relatif

pour l’échantillon i

i mod

i modi mes

�� - �Bi�

- le rapport, appelé S (indicateur), de la moyenne arithmétique des écarts relatifs observés :

n

)�� - �(

S

3n

1i i mod

i modi mes��

��

La règle de décision est la suivante :

a- Le résultat du test de conformité thermique est déclaré satisfaisant lorsque :

� l’indicateur S � 0,03 et si aucune valeur des bornes Bi � 0,06 ou � l’indicateur S � 0,03 et si une seule valeur des bornes Bi � 0,06 mais pour l’échantillon supplémentaire mesuré B4 � 0,06

b- Le résultat du test de conformité thermique est déclaré non satisfaisant lorsque :

� l’indicateur S � 0,03 ou � si au moins deux valeurs des bornes Bi � 0,06 ou � si une seule valeur des bornes Bi � 0,06 et pour l’échantillon supplémentaire mesuré B4 � 0,06

• le rapport indicateur S de la moyenne arithmétique des écarts relatifs observés

S =

3Pi=1

Bi

n

Page 21: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

indécision possible ?

(b) Le résultat du test de conformité thermique est déclaré non satisfaisant lorsque :

• l’indicateur S > 0,03 ou• si au moins deux valeurs des bornes Bi > 0,06

ou• si une seule valeur des bornes Bi > 0,06 et pour l’échantillon

supplémentaire mesuré B4 > 0,06

21

Valeurs et opérateurs logiques

La règle de décision est la suivante :(a) Le résultat du test de conformité thermique est déclaré satisfaisant lorsque :

• l’indicateur S ≤ 0,03 et aucune valeur des bornes Bi > 0,06 ou• l’indicateur S ≤ 0,03 et si une seule valeur des bornes Bi > 0,06 mais

pour l’échantillon supplémentaire mesuré B4 ≤ 0,06

Page 22: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

(a) Le résultat du test de conformité thermique est déclaré satisfaisant lorsque :

• l’indicateur S ≤ 0,03 et aucune valeur des bornes Bi > 0,06 ou• l’indicateur S ≤ 0,03 et si une seule valeur des bornes Bi >

0,06 mais pour l’échantillon supplémentaire mesuré B4 ≤ 0,06

22

Exemple - suiteValeurs et opérateurs logiques

B1 B2 B3 B4 S

variables

TPComment exprimer ces deux conditions

en Matlab ?(séparément pour l’instant)

Page 23: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Organisation d’un programme• Un programme est une suite d’instructions manipulant

des informations

• Les instructions doivent respecter la syntaxe du langage de programmation (ici Matlab)

• Les instructions sont composées d’expressions

• L’expression peut contenir un opérateur, un littéral, une variable, une fonction (et ses arguments le cas échéant) ou une combinaison de ceux-ci.

• L’expression évaluée renvoie une valeur

EPS = EPS / 2; if ( A(l,k) == f(x,k) )

23

Page 24: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Une expression est soit• Nombre (type implicite)

• Entiers : 1, 50394 , -2

• Décimaux : 0.45, 4.6

• Caractère : ‘a’, ‘1’

• Matrice, cellules et chaînes de caractères : [ 1 2 3; 3 4 5; 6 7 8]

• Variable Nmax, A(1,k), … (le nom doit commencer par une lettre ; éviter d’utiliser les noms de fonction préexistantes)

• Nom de fonctions (avec ou sans argument) trouvemax, plot(x, y)

• Opérateur : = == > + - * ; :

• mots clés : exit, if, ...• Combinaison de ces éléments : EPS = EPS / 2 ;

24

Page 25: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

III. Organisation d’un algorithme

actionactio

n

actio

n

• Un algorithme est une suite d’actions manipulant des informations

• Ces actions peuvent être ordonnées de différentes façons.

25

Page 26: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• séquences d’instructions

• conditionnelles

• répétitives (boucles)

• fonctions

Structures d’instructions

26

Page 27: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• L’agencement principal d’actions dans un algorithme est la séquence d’actions

• C’est une succession ordonnée d’actions élémentaires,

• les actions d’une séquence sont toutes effectuées, les unes après les autres

Séquence d’actions

27

Page 28: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Instructions conditionnellesUne conditionnelle est une structure de contrôle qui permet de choisir entre plusieurs séquences d'actions à exécuter, suivant une condition.

séquence d’actions

séquence alternative

28

Page 29: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Instructions conditionnelles1) Conditionnelle simple (sans alternative) :

Exécuter un ensemble d’instructions seulement dans le cas où une condition est vérifiée au préalable

if conditionséquence d’instructions

end

Si condition est évaluée vraie, la séquence d’instructions est exécutée, puis on reprend le programme

Si condition est évaluée fausse, la séquence d’instructions est ignorée et on exécute l’instruction qui suit le end.

condition est une suite d’opérations logiques renvoyant vrai ou faux

29

Page 30: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Exemple : test de dépassement d’une valeur seuil

point important : l’indentation du code !

v = input(‘Entrez la vitesse de vol :’) ;

seuilDecrochage = contraintes(x,k,y,v) ;

if v < seuilDecrochage

diff = seuilDecrochage - v ;

disp(‘vitesse trop faible’) ;

disp(‘la différence est ‘, num2str(diff)) ;

end

... instructions suivantes ...

Instructions conditionnelles

30

Page 31: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

2) Conditionnelles avec alternative :Proposer deux suites d’instructions alternatives suivant le résultat d’une condition.

Syntaxe :

if condition séquence d’instructions 1

else séquence d’instructions 2

endInterprétation :

Si condition est évaluée vraie, la séquence 1 est exécutée. Si condition est évaluée fausse, la séquence 2 est exécutée.

condition est une suite d’opérations logiques renvoyant vrai ou faux

mots clefs

Instructions conditionnelles

31

Page 32: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

3) Conditionnelles en cascades :Proposer plusieurs suites d’instructions alternatives suivant le résultat d’une condition.

Syntaxe : if condition 1

séquence d’instructions 1elseif condition 2

séquence d’instructions 2elseif condition 3

séquence d’instructions 3.....else

séquence d’instructions nend

condition est une suite d’opérations logiques renvoyant vrai ou faux

mot clefs

Instructions conditionnelles

32

Page 33: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

TP conditionnelles

A vous de jouer sur la feuille d’exercices 1-2

33

TP

Page 34: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

ANNEXES

34

Page 35: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Exemple d’algorithme• Diviser un intervalle en sous-intervalles réguliers :

Algorithme DivIntervalleDonnées : valeurs numériques deb, fin et nbValsRésultat : vecteur de valeurs V

35

fonction linspace() en Matlab

inc = (fin-deb) / (nbVals-1)Vect(1) = debval = debi = 1tant que i < nbVals faire

val = val + inci = i + 1Vect(i) = val

fin tant quefin algorithme

Utilisation : V = DivIntervalle(0,1.23,50)V = DivIntervalle(0,2π,100)

Paramètres formels

Page 36: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• Par définition, une matrice contient des valeurs numériques. En informatique, ces valeurs sont stockées en binaire sous forme de bits et d’octets.

36

Page 37: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• Les nombres réels sont codés approximativement sous la forme de nombres à virgule.

• L’ordinateur utilise un codage à virgule flottante, utilisant pour un type donné (par ex double) un nombre constant de bits pour représenter tous les nombres.

Types en MatlabNombres à virgule

37

Page 38: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Codage des nombres à virgules

Un nombre à virgule est codé par 3 informations : un bit de signe, un exposant et une mantisse

exposantsigne

mantisse

En faisant varier l’exposant, on fait « flotter » la virgule décimale

permet d’avoir des nombres petits (-) ou

grands (+)

38

exprimés en base 2 (binaire)

Page 39: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Codage des nombres à virgulesExemple de -3.1415

http://babbage.cs.qc.edu/IEEE-754/Decimal.html39

Page 40: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Limites du codage

La notation en virgule flottante ne permet de représenter qu’un nombre fini de nombres

Les nombres représentés ne sont pas uniformément répartis.

par exemple la distance entre deux nombres consécutifs est plus faible pour les nombres proches de 0

pour tout nombre non représentable, on utilise le nombre représentable le plus proche (troncature)

40

Page 41: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Limites du codage

41

Répartition non uniforme des nombres représentés !

écart entre deux nombres très petits :

écart entre deux nombres très grands :

1, 4⇥ 10�45

2⇥ 1031

0

nombres négatifs

représentables

nombres positifs

représentables

Page 42: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Erreurs de calcul✦ En raison des erreurs de calcul, les opérations sur

les nombres à virgule ne sont pas forcément commutatives ou associatives :

>> 2^60 +1 - 2^60ans = 0 >> 2^60 - 2^60 +1ans = 1

Règle de conduite

effectuer d’abord les opérations sur les nombres de même ampleur

42

TP

Page 43: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• Valeurs d’intérêt :

l'abréviation NaN (Not a Number) est utilisée quand un calcul est impossible.>>isNaN(1.12)

ans = 0>>isNaN(NaN)ans = 1

• l’abréviation Inf pour infini

Types en Matlab

(Faux)

(Vrai)

43

Page 44: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

• Les noms de variables commencent par une lettre et peuvent contenir des chiffres mais pas de symbole de ponctuation

• Les noms de variables sont sensibles à la «casse» : majuscule ≠ minuscule

• Le choix des noms de variable est important

Variables en Matlab

44

Page 45: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Sauvegarder des données

• - la cmde save mesDonnees permet de sauvegarder dans un fichier l’état des variables actuelles.

• Choisir au préalable un dossier où travailler -> créez un dossier Matlab dans votre répertoire personnel (P:\)

• On recharge les données sauvegardées en sélectionnant le nom du fichier qui apparaît dans la fenêtre Current Folder : faîtes un essai après avoir «oublié» les variables (clear)

45

Page 46: Application en MatLab - lirmm.frvberry/COURS/POLYTECH/ALGO-MATLAB/poly-CM1-1.pdf · V. Berry MAT-3 & MI-3 Algorithmique Application en MatLab Variables - Types - 1er contact Matlab

Liens

• Cours de F. Buffat à l’UFR de Méca de Lyon http://ufrmeca.univ-lyon1.fr/~buffat

• http://www.phon.ucl.ac.uk/courses/spsci/matlab/

46