Vous êtes sur la page 1sur 10

Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬

Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬


Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

TP 2 : Fichiers script et Types de


données et de variables
1.Les fichiers et la programmation avec MATLAB
Dans MATLAB, il y a deux types de fichiers : les fichiers de données et les fichiers
de programmes (scripts et fonctions).
1.1. Fichiers de données
En plus des fichiers de données que l'on peut définir et utiliser par programmation,
dans MATLAB on trouve les fichiers MAT. Ce sont des fichiers binaires (d'extension
"mat") qui permettent de stocker et de restituer des variables utilisées dans l'espace
de travail. Ces opérations sont réalisées respectivement par les commandes save et
load.
Exemple
s = [1 2 3];
On sauvegarde la variable s dans le fichier fic_s
save fic_t s
Le fichier obtenu aura pour extension "mat" et sera sauvegardé sous le nom fic_t.mat.
Si on ne spécifie pas le nom d'une ou plusieurs variables dans les arguments de la
commande save, toutes les variables de l'environnement seront sauvegardées.
1.2. Fichiers de commandes et de fonctions
MATLAB peut exécuter une séquence d'instructions stockées dans un fichier. Ce
fichier est appelé fichier M (M-file). Ce nom provient du fait que l'extension est "m".
La majorité de votre travail avec MATLAB sera liée à la manipulation de ces fichiers.
Il y a deux types de fichiers M : les fichiers de commandes (fichiers scripts) et les
fichiers de fonctions.

1
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

1.2.1. Les fichiers de commandes (scripts)


Un fichier de commandes ou script est une séquence d'instructions MATLAB. Les
variables de ces fichiers sont locales à l'espace de travail. Les valeurs des variables
de votre environnement de travail peuvent être modifiées par les instructions des
fichiers scripts. Les fichiers de commandes (scripts) sont aussi utilisés pour la saisie
de données. Dans le cas de grandes matrices, l'utilisation de scripts vous permet de
corriger facilement et rapidement les erreurs de saisie.
Pour exécuter un script, dans la fenêtre de commande de MATLAB, il suffit de mettre
son nom après le prompt ou de cliquer sur la flèche verte de l’éditeur.
Pour créer un nouveau fichier, allez dans le menu de sélection à :"New/Script".
La fenêtre "Edit Window" peut être vue comme un éditeur de texte où :
• Les commentaires sont écrits en vert et débutent par "%".
• Les variables et équations apparaissent en noir.
• Les caractères apparaissent en rouge.
• Les mots-clés dans Matlab comme les boucles apparaissent en bleu.
1.2.2. Les fichiers de fonctions
Les fichiers fonctions fournissent une extensibilité à MATLAB. Vous pouvez créer
de nouvelles fonctions spécifiques à votre domaine de travail qui auront le même
statut que toutes les autres fonctions MATLAB. Les variables dans les fonctions sont
par défaut locales, mais on peut définir des variables globales.
2. Les types de données et variables
Dans MATLAB, il y a un seul type de données : le type matrice (Matrix). Tout est
matrice, un scalaire est une matrice carrée d'ordre 1. Il n'y a donc pas de déclaration
de types. MATLAB fait la distinction entre les majuscules et minuscules ; ainsi,
mavar et MAVAR sont deux variables différentes.
2.1. Vecteurs ou tableaux à 1 dimension
Le moyen le plus simple de saisir un vecteur de type ligne est d'entrer ses éléments
en les séparant par des blancs ou des virgules.

2
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

y = [4 5 8 9 14]
y=
4 5 8 9 14
Afin d'éviter l'affichage du résultat d'une expression quelconque, on terminera celle-
ci par un point-virgule. Ce vecteur est considéré comme une matrice à une ligne et
trois colonnes.
size(y)
ans =
1 5
Les dimensions d'un tableau quelconque peuvent être récupérées par la commande
size sous forme d'un vecteur, [m n], m et n étant respectivement le nombre de lignes
et de colonnes.
[m n] = size(y)
m=
1
n=
5
La longueur d'un tableau quelconque est, par définition, sa plus grande dimension.
longueur_y = length(y)
longueur_y =
5
Si l'on veut créer le vecteur v = [4 5 8 9 14 4 2 8], on peut utiliser le vecteur y
précédent, en réalisant une concaténation.
v = [y 4 2 8]
v=
4 5 8 9 14 4 2 8
3
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

Dans MATLAB, les indices d'un tableau commencent à 1. Pour récupérer une
composante d'un vecteur, il faut spécifier son indice entre parenthèses.
v(6)
ans =
4
2.2. Matrices ou tableaux à 2 dimensions
La matrice ou tableau à 2 dimensions est un type de base de MATLAB. La saisie
d’une matrice peut être faite de différentes façons.
- Vecteurs lignes séparés par un saut de ligne ( ;)
a=[8 0 9; 1 5 2;1 2 4]
a=
8 0 9
1 5 2
1 2 4
-Vecteurs séparés par un retour à la ligne
a=[8 0 9
152
1 2 4]
a=
8 0 9
1 5 2
1 2 4
La concaténation de 2 ou plusieurs matrices de dimensions adéquates, peut se faire
horizontalement ou verticalement.
Soit les matrices F et K suivantes :

4
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

F = [5 4 3 ;2 1 7] ;
K = [0 1 0 ; 2 1 5] ;
La concaténation horizontale se fait comme suit :
C = [F K]
C=
5 4 3 0 1 0
2 1 7 2 1 5
La concaténation verticale se fait en faisant suivre A par un retour à la ligne (point-
virgule).
T= [F; K]
T=
5 4 3
2 1 7
0 1 0
2 1 5
Nous pouvons aussi utiliser la commande cat, en spécifiant la dimension selon
laquelle on concatène ces matrices.
La syntaxe est la suivante :
cat(2,F,K) is the same as [F K].
cat(1,F,K) is the same as [F; K].
Pour extraire un élément d’une matrice, il suffit de spécifier l’indice de la ligne et
celui de la colonne où se trouve cet élément.
T(2,3)
ans =
7

5
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

Elément de la 2ème ligne et des colonnes 1 à 3 :


T(2,1:3)
ans =
2 1 7
2.3. Les chaînes de caractères
Toute chaîne de caractères est une matrice à une ligne, et un nombre de colonnes égal
à sa longueur. Une chaîne est considérée par MATLAB comme un vecteur ligne dont
le nombre d’éléments est le nombre de ses caractères.
st = 'matlab'
st =
matlab
[n, m] = size(st)
n=
1
m=
6
On peut concaténer plusieurs chaînes de caractères.
string = ['langage ' st]
string =
langage matlab
2.4. Les nombres complexes
L'imaginaire pur i ( i2  1 ) est noté i ou j. Un nombre complexe est donc de la forme
: z = a + ib ou a + jb. Mais MATLAB, dans ses réponses, donne toujours le symbole
i.

6
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

i^2
ans =
-1
j^2
ans =
-1
Le conjugué d'un nombre complexe est obtenu par la fonction conj. Considérons le
nombre complexe z.
z = 2-8i
z=
2.0000 - 8.0000i
conj(z)
ans =
2.0000 + 8.0000i
Le conjugué peut aussi se calculer par la transposition du nombre complexe.
z'
ans =
2.0000 + 8.0000i
Nous pouvons aussi effectuer les opérations courantes sur les complexes telles que
l'addition, la multiplication, l'élévation à une puissance et la division.
z1=2+4i ;
l'addition
z1+z
ans =
4.0000 - 4.0000i

7
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

la multiplication
z1*z
ans =
36.0000 - 8.0000i
la division
z1/z
ans =
-0.4118 + 0.3529i
2.5. Les polynômes
MATLAB représente un polynôme sous forme d'un tableau de ses coefficients
classés dans l'ordre des puissances décroissantes.
Le polynôme P d'expression P (x )  2x 2  8x  6 , est représenté par le tableau à 1
dimension suivant :
P = [2 -8 6];
On peut déterminer les racines des polynômes P à l'aide de la fonction roots.
roots(P)
ans =
3
1
Pour évaluer un polynôme en un point, on utilise la fonction polyval.
polyval(P,4)
ans =
6
On peut aussi déterminer les coefficients d'un polynôme à partir de ses racines en
utilisant la fonction poly. On cherche, par exemple, le polynôme qui a pour racines :
-7, 3 et1. Celles-ci peuvent être définies comme les éléments d'un vecteur r.
8
Université Ziane Achour de Djelfa ‫جامعــة زيـــان عاشـــور الجلفـــة‬
Faculté des Sciences et de la Technologie ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
Département de Génie Mécanique ‫قســــــم الهندســـــة الميكانيكيــــة‬
Filière: Génie Mécanique ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
Niveau : 2ème année GM ‫ هندسة ميكانيكية‬2 :‫المستوى‬

r = [-7 3 1] ;
K = poly(r)
K=
1 3 -25 21
On vérifie bien que les racines du polynôme K sont -7, 3 et 1.
roots(K)
ans =
-7.0000
3.0000
1.0000
La multiplication et la division de polynômes peuvent être réalisées facilement avec
MATLAB. Soient
deux polynômes P1 et P2 définis par :
P 1(x )  5x 2  4x

P 2(x )  3x 2  4x  4
P1 = [5 -4 0] ;
P2 = [-3 -4 4] ;
Le résultat de la multiplication de P1 par P2 est le polynôme P3 qui s'obtient avec la
fonction conv.
P3 = conv(P1,P2)
P3 =
-15 -8 36 -16 0
La division de deux polynômes se fait par la fonction deconv. Le quotient Q et le
reste R de la division peuvent être obtenus sous forme d'éléments d'un tableau.

9
‫‪Université Ziane Achour de Djelfa‬‬ ‫جامعــة زيـــان عاشـــور الجلفـــة‬
‫‪Faculté des Sciences et de la Technologie‬‬ ‫كليــــــة العلــــــوم والتكنولوجيـــا‬
‫‪Département de Génie Mécanique‬‬ ‫قســــــم الهندســـــة الميكانيكيــــة‬
‫‪Filière: Génie Mécanique‬‬ ‫شعبـــــة الهندســـــة الميكانيكيــــة‬
‫‪Niveau : 2ème année GM‬‬ ‫المستوى‪ 2 :‬هندسة ميكانيكية‬

‫)‪[Q,R] = deconv(P2,P1‬‬
‫=‪Q‬‬
‫‪-0.6000‬‬
‫=‪R‬‬
‫‪0 -6.4000‬‬ ‫‪4.0000‬‬

‫‪10‬‬