Les vecteurs et les matrices

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

Introduction à MATLAB R

TP 1 Introduction à Matlab Février 2009

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.

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I

Cours 7 : Utilisation de modules sous python

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

INTRODUCTION. Introduction (2) Espace de travail. Fonctionnement. le Workspace (1) Mode interactif : Mode programme : Type de variables :

Cours Informatique Master STEP

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

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

TP 0 : INTRODUCTION À MATLAB

Introduction à Matlab et Scilab

Introduction à MATLAB

Python - introduction à la programmation et calcul scientifique

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Initiation à la programmation en Python

Chapitre 2. Matrices

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

Plan du cours Cours théoriques. 29 septembre 2014

Architecture des Systèmes d Information Architecture des Systèmes d Information

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Cours d algorithmique pour la classe de 2nde

Initiation à la Programmation en Logique avec SISCtus Prolog

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Compter à Babylone. L écriture des nombres

Priorités de calcul :

RE SOLUTIONS CHAPITRE 1

TP 1. Prise en main du langage Python

EXCEL TUTORIEL 2012/2013

INF6304 Interfaces Intelligentes

MANUEL. Départements GEI & Mécanique. Yassine Ariba - Jérome Cadieux. Version 0.1

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

TD3: tableaux avancées, première classe et chaînes

OCL - Object Constraint Language

Scilab pour les vrais débutants

Module 16 : Les fonctions de recherche et de référence

Chap III : Les tableaux

Présentation du PL/SQL

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

Représentation géométrique d un nombre complexe

2.4 Représentation graphique, tableau de Karnaugh

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

3 ème 2 DÉVELOPPEMENT FACTORISATIONS ET IDENTITÉS REMARQUABLES 1/5 1 - Développements

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

STAGE IREM 0- Premiers pas en Python

COURS BARDON - EXCEL 2010

Cours d analyse numérique SMI-S4

Cours d initiation à la programmation en C++ Johann Cuenin

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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)


Algorithmique et structures de données I

Cours d Algorithmique et de Langage C v 3.0

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Langage SQL : créer et interroger une base

Résolution de systèmes linéaires par des méthodes directes

Calcul différentiel sur R n Première partie

COMPTABILITE SAGE LIGNE 30

Cours d Informatique

Créer le schéma relationnel d une base de données ACCESS

Note de cours. Introduction à Excel 2007

Ma conciliation bancaire ne balance pas

Dérivation CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Cours d Analyse. Fonctions de plusieurs variables

Fonctions de plusieurs variables

Aide - mémoire gnuplot 4.0

Création et Gestion des tables

1 TD 2 : Construction d'une chier Acrobat et envoi par

Projet Matlab : un logiciel de cryptage

Fonctions homographiques

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

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

Limites finies en un point

Initiation à LabView : Les exemples d applications :

Programme awk------introduction rapide

C algèbre d un certain groupe de Lie nilpotent.

SAS de base : gestion des données et procédures élémentaires

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

LES DECIMALES DE π BERNARD EGGER

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

INTRODUCTION AU LOGICIEL R

1. Introduction Création d'une requête...2

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Initiation à la programmation OEF pour Wims (exercices).

Structure fonctionnelle d un SGBD

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Rappels Entrées -Sorties

Transcription:

Les vecteurs et les matrices I. Les vecteurs : Un vecteur est une liste d éléments appelés composants. vecteur ligne : Pour créer un vecteur ligne il suffit d écrire la liste de ses composants entre crochets [et] et de les séparer par des espaces ou des virgules comme suit : v=[v1 v2 v3.vn] ou v=[v1, v2, v3,.vn] >> U = [ 4-2 1 ] U = 4-2 1 >> V = [ 2, -12, 1, -6,3 ] V = 2-12 1-6 3 >> [ 3, -1, 1, 7 ] 3-1 1 7 vecteur colonne : Pour créer un vecteur colonne il est possible d utiliser une des méthodes suivantes : 1. écrire les composants du vecteur entre crochets [et] et de les séparer par des points-virgules (;) comme suit : >> U = [ 9 ; 4 ; -1 ] % Création d un vecteur colonne U 2. écrire verticalement le vecteur : >> U = [ ] 9 4-1 3. calculer le transposé d un vecteur ligne : >> U = [ 9 4-1 ]' % Création d un vecteur colonne U 1

Remarques: Si les composants d un vecteur X sont ordonnés avec des valeurs consécutives, nous pouvons le noter avec la notation suivante : X = premier_élément : dernier_élément (Les crochets sont facultatifs dans ce cas) Exemple : >> X = 1:6 X = 1 2 3 4 5 6 >>colon(1,6) 1 2 3 4 5 6 On peut aussi écrire : X = [1:6] Si les composants d un vecteur X sont ordonnés avec des valeurs consécutives mais avec un pas (d incrémentation/décrémentation) différent de 1, nous pouvons spécifier le pas avec la notation : X = [premier_élément : pas : dernier_élément] (Les crochets sont facultatifs) Exemple : >> X = [8:-2:0] % le vecteur X contient les nombres pairs < 10 X = 0 2 4 6 8 >> X = [-3:2:5] % on peut aussi écrire colon(-3,2,5) X = -3-1 1 3 5 >> X = 0:0.2:1 % on peut aussi écrire colon(0,0.2,1) 2

X = 0 0.2000 0.4000 0.6000 0.8000 1.0000 On peut construire un vecteur en plusieurs parties : >> V = [ 1:2:5, -2:2:1 ] V = 1 3 5-2 0 Attention : la valeur 1 n est pas atteinte on peut construire un vecteur par concaténation de plusieurs vecteurs : >> [1 2 3] 1 2 3 on peut concaténer des vecteurs >> B = [A, 4, 5, 6] B = 1 2 3 4 5 6 4. Référencement et accès aux éléments d un vecteur : L accès aux éléments d un vecteur se fait en utilisant la syntaxe générale suivante : Exemples : nom_vecteur ( positions ) Les parenthèses (et) sont utilisées ici (pour la consultation). Les crochets [et] sont utilisés uniquement pendant la création. positions : peut être un simple numéro, ou une liste de numéro (un vecteur de positions) >> V = [5, -1, 13, -6, 7] % création du vecteur V qui contient 5 éléments V = 5-1 13-6 7 >> V(2) % la 2 eme position -1 3

>> V(2:4) % de la deuxième position jusqu'au quatrième -1 13-6 >> V(4:-2:1) % de la 4 eme pos jusqu'à la 1 ere avec le pas = -2-6 -1 >> V(3:end) % de la 3 eme position jusqu'à la dernière 13-6 7 >> V([1,3,4]) % la 1 ere, la 3 eme et la 4 eme position uniquement 5 13-6 >> V(1) = 8 % donner la valeur 8 au premier élément V = 8-1 13-6 7 >> V(6) = -3 % ajouter un sixième élément avec la valeur -3 V = 8-1 13-6 7-3 >> V(9) = 5 % ajouter un neuvième élément avec la valeur 5 V = 8-1 13-6 7-3 0 0 5 >> V(2) = [] % Supprimer le deuxième élément V = 8 13-6 7-3 0 0 5 4

>> V(3:5) = [] % Supprimer du 3 eme jusqu au 5 eme élément V = 8 13 0 0 5 5. Les opérations élément-par-élément pour les vecteurs : Avec deux vecteurs et, il est possible de réaliser des calcules élément par élément en utilisant les opérations suivantes : L opératio n Signification + Addition des vecteurs - Soustraction des vecteurs.* Multiplication élément par élément./ Division élément par élément.^ Puissance élément par élément Exemple avec : >> u = [-2, 6, 1] ; >> v = [ 3, -1, 4] ; >> u+2 0 8 3 >> u+v 1 5 5 >> u-2-4 4-1 >> u-v -5 7-3 >> u*2-4 12 2 >> u.*2-4 12 2 >> u.*v -6-6 4 >> u/2-1.0000 3.0000 0.5000 >> u./2-1.0000 3.0000 0.5000 >> u./v -0.6667-6.0000 0.2500 >> u.^2 4 36 1 >> u.^v -8.0000 0.1667 1.0000 5

L écriture d une expression tel que : u^v génère une erreur car cette expression réfère a une multiplication de matrices (u*v' ou v'*u pour être valide). >> u = [-2, 6, 1] ; >> v = [ 3, -1, 4] ; >> u*v??? Error using ==> mtimes Inner matrix dimensions must agree. >> u*v' -8 L écriture d une expression tel que : u^2 génère une erreur car cette expression réfère a une multiplication de matrices ( u*u' ou u'*u pour être valide). 1.3 La fonction linspace : La création d un vecteur dont les composants sont ordonnés par intervalle régulier et avec un nombre d éléments bien déterminé peut se réaliser avec la fonction : linspace (début, fin, nombre d éléments). Le pas d incrémentation est calculé automatiquement par Matlab selon la formule : é é Par exemple : >> X = linspace(1,10,4) % un vecteur de quatre élément de 1 à 10 X = 1 4 7 10 >> Y = linspace(13,40,4) % un vecteur de quatre élément de 13 à 40 Y = 13 22 31 40 >> X = linspace(1,10,5) X = 1.0000 3.2500 5.5000 7.7500 10.0000 6

La taille d un vecteur (le nombre de ses composants) peut être obtenue avec la fonction length comme suit : >> length(x) % la taille du vecteur X 4 Exercices : lire les éléments d un vecteur : clear all n=input('entrer le nombre d''elements'); for i=1:1:n v(i)=input('entrer une composante'); end disp(v) affecter à tous les composants d indice i paire la valeur 2*i+1 clear all n=input('entrer le nombre d''elements'); for i=1:1:n if(mod(i,2)==0) v(i)=2*i+1; end end disp(v) entrer le nombre d'elements 9 0 5 0 9 0 13 0 17 Attention : n oubliez pas le clear all sinon aux composants non définis explicitement, il affecte les anciennes valeurs contenues dans v afficher les conjugués des composants complexes d un vecteur v clear all clear v=[2+i -5-3i 9+7i]; for i=1:1:3 w(i)=conj(v(i)); end disp(w) 2.0000-1.0000i -5.0000 + 3.0000i 9.0000-7.0000i 7

Autre méthode: clear all clear v=[2+i -5-3i 9+7i]; disp(conj(v)) On veut calculer les 10 premiers termes d une suite géométrique de raison 0.5 et de premier terme u(1)=100. Les termes successifs de la suite sont enregistrés dans un vecteur : clear all u(1) = 100 ; for k=[1 :1 :9], u(k+1) = 0.5 * u(k) ; end disp(u) u = [u(1) u(2) u(n)], n=10 100.0000 50.0000 25.0000 12.5000 6.2500 3.1250 1.5625 0.7813 0.3906 0.1953 6. les fonctions vectorielles les fonctions vectorielles les plus utilisées sont : Soit un vecteur v sum(v) : somme des éléments de v prod(v) : produit des éléments de v mean(v) : moyenne des éléments de v std (v) : écart type de v sort(v) : tri du vecteur v max(v) : le maximum de v min(v) : le minimum de v norm(v) : la norme de v dot(u,v) : produit scalaire de deux vecteurs II. Les matrices : Une matrice est un tableau bidimensionnel. Création d une matrice, il faut respecter les règles suivantes : Les éléments doivent être mises entre des crochets [ et ] Les espaces ou les virgules sont utilisés pour séparer les éléments dans la même ligne Un point virgule (ou la touche entrer) est utilisé pour séparer les lignes 8

Exemple Soit la matrice suivante : Cette matrice peut être écrite en MATLAB avec une des syntaxes suivantes : >> [1,2,3,4 ; 5,6,7,8 ; 9,10,11,12] ; >> [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12] ; >> [1,2,3,4 5,6,7,8 9,10,11,12] ; >> A=[[1;5;9], [2;6;10], [3;7;11], [4;8;12]] ; Remarques : 1) Le nombre d éléments dans chaque ligne (nombre de colonnes) doit être identique dans toutes les lignes de la matrice, sinon une erreur sera signalée par MATLAB. Par exemple : >> X = [1 2 ; 4 5 6] Error using vertcat CAT arguments dimensions are not consistent. 2) Une matrice peut être générée par des vecteurs comme le montre les exemples suivants : >> x = 1:4 % création d un vecteur x x = 1 2 3 4 >> y = 5:5:20 % création d un vecteur y y = 5 10 15 20 >> z = 4:4:16 % création d un vecteur z z = 4 8 12 16 >> [x ; y ; z] % A est formée par les vecteurs lignes x, y et z 1 2 3 4 5 10 15 20 4 8 12 16 >> B = [x' y' z'] % B est formée par les vecteurs colonnes x, y et z B = 1 5 4 2 10 8 3 15 12 9

4 20 16 >> C = [x ; x] % C est formée par le même vecteur ligne x 2 fois C = 1 2 3 4 1 2 3 4 Référencement et accès aux éléments d une matrice : L accès aux éléments d une matrice se fait en utilisant la syntaxe générale suivante : L accès aux éléments d une matrice se fait en utilisant la syntaxe générale suivante : nom_matrice ( positions_lignes, positions_colonnes ) Les parenthèses (et) sont utilisées ici (pour la consultation). Les crochets [et] sont utilisés uniquement pendant la création. positions : peut être un simple numéro, ou une liste de numéro (un vecteur de positions) Il est utile de noter les possibilités suivantes : L accès à un élément de la ligne i et la colonne j se fait par : A(i,j) L accès à toute la ligne numéro i se fait par : A(i,:) L accès à toute la colonne numéro j se fait par : A(:,j) Exemples : >> [1,2,3,4 ; 5,6,7,8 ; 9,10,11,12] % création de la matrice A 1 2 3 4 5 6 7 8 9 10 11 12 >> A(2,3) % l élément sur la 2ème ligne à la 3ème colonne 7 >> A(1,:) % tous les éléments de la 1ère ligne 1 2 3 4 >> A(:,2) % tous les éléments de la 2ème colonne 2 6 10 10

>> A(2:3,:) % tous les éléments de la 2ème et la 3ème ligne 5 6 7 8 9 10 11 12 >> A(1:2,3:4) % La sous matrice supérieure droite 3 4 7 8 >> A([1,3],[2,4]) % la sous matrice : lignes(1,3) et colonnes (2,4) 2 4 10 12 >> A(:,3) = [] % Supprimer la troisième colonne 1 2 4 5 6 8 9 10 12 >> A(2,:) = [] % Supprimer la deuxième ligne 1 2 4 9 10 12 >> [A, [0;0]] % Ajouter une nouvelle colonne {ou A(:,4)=[0;0]} 1 2 4 0 9 10 12 0 >> [A ; [1,1,1,1]] % Ajouter une nouvelle ligne {ou A(3,:)=[1,1,1,1]} 1 2 4 0 9 10 12 0 1 1 1 1 Les dimensions d une matrice peuvent être acquises en utilisant la fonction size. Cependant, avec une matrice A de dimension m n le résultat de cette fonction est un vecteur de deux composants, une pour m et l autre pour n. >> d = size(a) d = 3 4 11

Ici, la variable d contient les dimensions de la matrice A sous forme d un vecteur. Pour obtenir les dimensions séparément on peut utiliser la syntaxe : >> d1 = size (A, 1) % d1 contient le nombre de ligne (m) d1 = 3 >> d2 = size (A, 2) % d2 contient le nombre de colonne (n) d2 = 4.2 Génération automatique des matrices En Matlab, il existe des fonctions qui permettent de générer automatiquement des matrices particulières. Dans le tableau suivant nous présentons-les plus utilisées : La fonction Signification zeros(n) Génère une matrice n n avec tous les éléments = 0 zeros(m,n) Génère une matrice m n avec tous les éléments = 0 ones(n) Génère une matrice n n avec tous les éléments = 1 ones(m,n) Génère une matrice m n avec tous les éléments = 1 eye(n) Génère une matrice identité de dimension n n magic(n) Génère une matrice magique de dimension n n rand(m,n) Génère une matrice de dimension m n de valeurs aléatoires 2.3 Les opérations de base sur les matrices : L opération Signification + L addition - La soustraction.* La multiplication élément par élément./ La division élément par élément.\ La division inverse élément par élément.^ La puissance élément par élément * La multiplication matricielle / La division matricielle (A/B) = (A*B -1 ) Les opérations élément par éléments sur les matrices sont les mêmes que ceux pour les vecteurs (la seule condition nécessaire pour faire une opération élément par élément est que les deux matrices aient les mêmes dimensions). Par contre la multiplication ou la division des matrices requiert quelques contraintes (consulter un cours sur l algèbre matricielle pour plus de détail). Exemple : >> A=ones(2,3) 1 1 1 12

1 1 1 >> B=zeros(3,2) B = 0 0 0 0 0 0 >> B=B+3 B = 3 3 3 3 3 3 >> A*B 9 9 9 9 >> B=[B, [3 3 3]'] % ou bien B(:,3)=[3 3 3] B = 3 3 3 3 3 3 3 3 3 >> B=B(1:2,:) % ou bien B(3,:)=[] B = 3 3 3 3 3 3 >> A=A*2 2 2 2 2 2 2 >> A.*B 6 6 6 6 6 6 >> A*eye(3) 2 2 2 2 2 2 2.4 Fonctions utiles pour le traitement des matrices Voici quelques fonctions parmi les plus utilisées concernant les matrices: det La fonction L utilité Exemple d utilisation Calcule de déterminant d une matrice 13 >> [1,2;3,4] ; >> det(a)

inv rank trace eig norm diag diag(v) diag(v,k) tril Calcule l inverse d une matrice Calcule le rang d une matrice Calcule la trace d une matrice Calcule les valeurs propres Calcule la norme matricielle Renvoie la diagonale d une matrice (vecteur colonne) Crée une matrice ayant le vecteur V sur la diagonale et 0 ailleurs. Retourne la k ième diagonale Renvoie la partie triangulaire inferieure 14-2 >> inv(a) -2.0000 1.0000 1.5000-0.5000 >> rank(a) 2 >> trace(a) 5 >> eig(a) -0.3723 5.3723 >> norm(u) 3 >> diag(a) 1 4 >> V = [-5,1,3] >> diag(v) -5 0 0 0 1 0 0 0 3 >> A=[1 2 3;4 5 6;7 8 9] 1 2 3 4 5 6 7 8 9 >> diag(a,1) 2 6 >> diag(a,-1) 4 8 >> B=[1,2,3;4,5,6;7,8,9] B =

triu Renvoie la partie triangulaire supérieure 1 2 3 4 5 6 7 8 9 > tril(b) 1 0 0 4 5 0 7 8 9 >> tril(b,-1) 0 0 0 4 0 0 7 8 0 >> tril(b,-2) 0 0 0 0 0 0 7 0 0 >> triu(b) 1 2 3 0 5 6 0 0 9 >> triu(b,-1) 1 2 3 4 5 6 0 8 9 >> triu(b,1) 0 2 3 0 0 6 0 0 0 15