Vous êtes sur la page 1sur 38

Université 08 Mai 1945 - Guelma

Département de Génie Civil et d’Hydraulique

TP - PROGRAMMATION

M1 Voies et Ouvrages d’Art

Dr. LAFIFI B.

1
2020 / 2021
Organisation de l’enseignement
2

Unité d’enseignement : Méthodologique

Coefficient : 01

Crédits : 02

Nombre d’heure d’enseignement : 1,5h TP

Mode d’évaluation :

Contrôle continu : 100%


Contenu de la matière
3

TP 1: Introduction au logiciel utilisé (Matlab);

TP 2: Opérations sur les vecteurs et les matrices,


opération sur les polynômes,

TP 3: Graphiques 2D, à partir de points, ou d’une


fonction, graphiques 3D : maillage, axes,
visualisation;
Contenu de la matière
4

TP 4: Chaînes de caractère, manipulation des


fichiers;

TP 5: Applications en RDM;

TP 6: Applications en béton armé ;


TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
5

1. Opérations mathématiques avec MATLAB

L'élément de base de MATLAB est la matrice. C'est-à-dire


qu'un scalaire est une matrice de dimension 1x1.

Un vecteur colonne de dimension n est une matrice nx1. Un


vecteur ligne de dimension n est une matrice 1xn.

Contrairement aux langages de programmation usuels, il n'est


pas obligatoire de déclarer les variables avant de les utiliser
et, de ce fait, il faut prendre toutes les précautions dans la
manipulation de ces objets.

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
6

1. Opérations mathématiques avec MATLAB

Les scalaires se déclarent directement, par exemple :

>> x=5 ;
>> a=x
a=5

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
7

Les vecteurs lignes se déclarent de la manière suivante :

>> V_1=[2 3 4]
V_1 =
2 3 4
>> V_2=[2, 3, 4]
V_2 =
2 3 4
>> size(V_2)
ans =
1 3
* Comme chaque élément de MATLAB, le vecteur est une
matrice. Ici c’est une matrice 1x3.
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
8

Les vecteurs colonnes se déclarent de la manière suivante :

>> V_colonne1 = [5 ; 2 ; 4]

V_colonne1 =
5
2
4
>> V_colonne2 = [3 % retour chariot
1 % retour chariot
6] % retour chariot

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
9

V_colonne2 =
3

6
>> size(V_colonne2)
ans =
3 1
On sépare les éléments par des points-virgules ou on utilise
le retour chariot. Ici le vecteur V_colonne2 est une matrice
3x1

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
10

Le double point ( : ) est l'opérateur d'incrémentation dans


MATLAB.

Ainsi, pour créer un vecteur ligne de valeurs de 0 à 1 par


incrément de 0,2, il suffit d’écrire:

>> V=[0 : 0.2 : 1]


V=
0 0.200 0.400 0.600 0.800 1.000

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
11

Si l’incrément est de 1, le pas n’est pas noté.

On met le ( : ) uniquement entre le premier et le dernier


élément:

V = -1 : 6
V=
-1 0 1 2 3 4 5 6

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
12

On peut accéder à un élément d'un vecteur et même modifier


celui-ci directement:

>> a=V(3)
a=
1
>> V(4)=20*a
V=
-1 0 1 20 3 4 5 6

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
13

Les opérations usuelles d'addition, de soustraction et de


multiplication par scalaire sur les vecteurs sont définies dans
MATLAB :

>> V1 = [1 3];
>> V2 = [2 5];
>> V = V1 + V2 % addition de vecteurs
V=3 8
>> V = V2 - V1 % soustraction de vecteurs
V=1 2
>> V = 2*V1 % multiplication par un scalaire
V=
2 6
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
14

Dans le cas de la multiplication et de la division, il faut faire


attention aux dimensions des vecteurs en cause.

Pour la multiplication et la division élément par élément, on


ajoute un point devant l'opérateur (.* et ./). Par exemple :

>> V = V1.*V2 % multiplication élément par élément


V=
2 15
>> V = V1./V2 % division élément par élément
V=
0.500 0.600

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
15

La multiplication de deux vecteurs est donnée par (*).

Ici, l'ordre a de l'importance (et la taille aussi):

>> V1 = [1 2]; % vecteur 1x2


>> V2 = V1' ; % vecteur 2x1
>> V = V1*V2 % (1x2) * (2x1) = (1x1)
V=
5

>> V = V2*V1 % (2x1) * (1x2) = (2x2)


V =1 2
2 4
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
16

Il est aussi possible de concaténer des vecteurs. Par exemple :


>> V1 = [1 2];
>> V2 = [3 4];
>> V = [V1 V2]
V=
1 2 3 4

De même, pour les vecteurs colonnes :


V1 = [1 ; 2];
>> V2 = [3 ; 4];
>> V = [V1 ; V2]

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
17

>> V = [V1 ; V2]


1

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
18

>> V = [V1 ; V2]


1

On peut aussi créer des matrices, par exemple,

>> V1 = [1 2]; % Vecteur ligne 1x2


>> V1 = [3 4]; % Vecteur ligne 1x2
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
19

>> V1 = [1 2]; % Vecteur ligne 1x2


>> V1 = [3 4]; % Vecteur ligne 1x2

>> V = [V1 ; V2] % Concaténation de deux vecteurs ligne en


colonne = matrice 2x2

V=
1 2
3 4

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
20

Les matrices peuvent aussi être construites directement de


deux façons différentes:

>> M = [2 5 ; 3 6] % construction ligne et colonne en une fois


M=
2 5
3 6
>> M1 = [2 5 % construction ligne par ligne en utilisant le
retour chariot
3 6]
M1 =
2 5
3 6
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
21

On peut évidemment avoir accès aux éléments de la matrice


par :

>> m21 = M(2,1) % 2ème ligne, 1ère colonne


m21 =
3

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
22

On peut aussi "compter" les éléments. MATLAB compte alors


tous les éléments d'une ligne (de gauche à droite) avant
d'accéder à la ligne suivante. Ainsi, dans la matrice 3x3
suivante :

A = [1 2 3; 4 5 6; 7 8 9]

A=

1 2 3

4 5 6

7 8 9
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
23

La valeur des éléments ai;j sont données par leur rang affecté
par MATLAB. Le 6ème élément est 6 :

a6 = A(6)

a6 =

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
24

Il est aussi possible de stocker dans un vecteur une ou


plusieurs lignes (ou colonnes) d’un seul coup.

Ainsi, si l'on veut stocker la deuxième colonne de la matrice A


dans un vecteur V :

>> V = A(: , 2) % ici, (:) signifie toutes les lignes => mettre
toutes les lignes de la colonne 2 de A dans V

V=
2 5 8

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
25

>> V=A(1:2, 3) % ici, (1:2) signifie les lignes 1 à 2 => mettre


les lignes 1 à 2 de la colonne 3 de A dans V
V=
3
6

De la même manière, si l'on veut stocker les lignes 2 et 3 :

>> M2= A(2:3 , :) % (2:3) signifie lignes 2 à 3


% et (:) signifie toutes les colonnes
M2 =
4 5 6
7 8 9
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
26

Il est possible d'inverser inv(), de transposer transpose() ou


avec l'apostrophe (') les matrices :
>> M = [5 7 ; 6 9]
M=
5 7
6 9
>> inverseM = inv(M)
inverseM =
+3.0000 -2.333
-2.0000 +1.6667
>> transpM = M'
transpM =
5 6
7 9 Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
27

Un des intérêts de MATLAB est la possibilité d'utiliser


directement les opérations mathématiques prédéfinies pour
les matrices.

L'addition et la soustraction sont directes (attention aux


dimensions) ainsi que la multiplication par un scalaire :

>> A = [2 3 ; 5 7];

>> B = [6 1 ; 2 1];

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
28

>> C = A+B % addition


C=
8 4
7 8
>> D = A-B % soustraction
D=
-4 2
3 6
>> C = 4*A % multiplication par un scalaire
C=
8 12
20 28

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
29

Pour la multiplication et la division, les opérateurs usuels

(* et /) sont définis pour la multiplication et division matricielles


:

>> C = A*B % multiplication de matrices


C=
18 5
44 12

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
30

>> D = A/B % division de matrices


D=
-1.0000 4.0000
-2.2500 9.2500

>> E=A*inv(B) % la division de matrices est une


multiplication par l’inverse : E=D
E=
-1.0000 4.0000
-2.2500 9.2500

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
31

Afin de réaliser la multiplication et la division élément par


élément, on précède les opérateurs par un point (.* et ./) :

>> C = A.*B % multiplication élément par élément


C=

12 3
10 7
>> D = A./B %division élément par élément
D=
0.3300 3.0000

2.5000 7.0000
Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
32

Dans certaines applications, il est parfois utile de connaître


les dimensions d'une matrice, et la longueur d'un vecteur .

Dans ce cas, on utilise les fonctions length et size.

V = [0:0.2:10]; % utilisation de length - vecteur 1x51


>> n = length(V)
n=
51

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
33

>> M = [1 2 3; 4 5 6]; % utilisation de size - matrice 2x3


>> [n,m] = size(M)
n=
2 % 2 lignes
m=
3 % 3 colonnes

>> dimM = length(M) % utilisation de length sur une matrice


dimM =
3 % donne la plus grande dimension, ici 3

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
34

En outre, il existe dans MATLAB quelques fonctions qui


génèrent des matrices. On donne quelques unes d’elles.

>> A = eye(3) % matrice identité1


A=

1 0 0
0 1 0
0 0 1

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
35

>> B = ones(3) % matrice carrée contenant des 1


B=
1 1 1
1 1 1
1 1 1
>> C = zeros(2,3) % matrice rectangulaire nulle
C=
0 0 0
0 0 0

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
36

>> D = diag([1:3]) % matrice dont la diagonale varie de 1 à 3


D=
1 0 0
0 2 0
0 0 3

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
37

det : déterminant d’une matrice carrée

>> d = det(A)

diag : extrait la diagonale d’une matrice ou forme une


matrice diagonale.

Si A : matrice et d : vecteur

>> d = diag(A) % extrait la diagonale de A


>> A = diag(d) % matrice de diagonale d

Dr. LAFIFI B.
TP2 . Opérations sur les vecteurs et les matrices,
opérations sur les polynômes
38

Exemple

>> A = [5 2 1; 2 7 3; 1 3 8];

>> d = [3 6 4];

>> c = diag(A)

c=

8 Dr. LAFIFI B.

Vous aimerez peut-être aussi