M0SE 1003 TP d algèbre sur Scilab : Matrices, test "if-then-else" TP 2



Documents pareils
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.

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

Exercices Corrigés Premières notions sur les espaces vectoriels

Correction de l examen de la première session

Introduction à MATLAB R

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Programmation linéaire

Complément d information concernant la fiche de concordance

Programmation linéaire

Exercices - Polynômes : corrigé. Opérations sur les polynômes

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Partie 1 - Séquence 3 Original d une fonction

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

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

L ALGORITHMIQUE. Algorithme

Petit Guide de Survie en Scilab

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

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

Programmation linéaire et Optimisation. Didier Smets

TP 1 Introduction à Matlab Février 2009

Cours 7 : Utilisation de modules sous python

Exercice : la frontière des portefeuilles optimaux sans actif certain

Introduction : L accès à Estra et à votre propre espace Connexion Votre espace personnel... 5

Chapitre 2. Matrices

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

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

Simulation de variables aléatoires

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Calcul différentiel sur R n Première partie

TP 0 : INTRODUCTION À MATLAB

Problème 1 : applications du plan affine

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

Chapitre 5 : Flot maximal dans un graphe

Initiation à la programmation en Python

Cours 02 : Problème général de la programmation linéaire

Calcul Formel et Numérique, Partie I

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Corrigé Problème. Partie I. I-A : Le sens direct et le cas n= 2

Polynômes à plusieurs variables. Résultant

Chaînes de Markov au lycée

POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL

Résolution d équations non linéaires

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

1 Complément sur la projection du nuage des individus

Corrigé des TD 1 à 5

Etude des propriétés empiriques du lasso par simulations

Préparation à l examen EFA en Macro

NOTATIONS PRÉLIMINAIRES

avec des nombres entiers

Analyse en Composantes Principales

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions


Présentation du PL/SQL

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Chap III : Les tableaux


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

Tutoriel Sage One Edition Expert-Comptable. - Le cabinet d Expertise-Comptable doit appeler le Service Client Sage One au

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

1. Structure d'un programme FORTRAN 95

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

L analyse boursière avec Scilab

Cours d analyse numérique SMI-S4

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

Eléments de Théorie des Graphes et Programmation Linéaire

Le nombre d or et Fibonacci

Le langage C. Séance n 4

Probabilités Loi binomiale Exercices corrigés

Programmes des classes préparatoires aux Grandes Ecoles

3 Approximation de solutions d équations

Compter à Babylone. L écriture des nombres

Séquence 3. Expressions algébriques Équations et inéquations. Sommaire

Organigramme / Algorigramme Dossier élève 1 SI

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

Python - introduction à la programmation et calcul scientifique

Premiers Pas avec OneNote 2013

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Chapitre 1 : Évolution COURS

Enjeux mathématiques et Statistiques du Big Data

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

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

Optimisation, traitement d image et éclipse de Soleil

ZOTERO Un outil gratuit de gestion de bibliographies

Algorithmique et structures de données I

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

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

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

Mode opératoire CEGID Business Suite

Feuille TD n 1 Exercices d algorithmique éléments de correction

Modes Opératoires WinTrans Mai 13 ~ 1 ~

TP, première séquence d exercices.

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

Angles orientés et trigonométrie

Transcription:

M0SE 1003 TP d algèbre sur Scilab : Matrices, test "if-then-else" TP 2 Essayez les commandes, observez les réponses de Scilab, répondez aux questions, puis effectuer les exercices. Création de matrices -->x=[1,5,3,-5,%pi/6] -->x -->A=[-2,%i,5;3,-1,-1] -->y=[ones(1,5)] -->ones(4,5) -->z=[zeros(1,5)] -->zeros(5,4) -->y -->y=3*y -->y -->B=3*A+2*ones(2,3) -->C=B-A 1) Quelle différence y a-t-il entre x et x? 2) A quoi sert le " ;" dans A? 3) Que fait la commande ones? Comment fonctionne-t-elle? Créez une matrice de 6 lignes et 4 colonnes dont tous les coefficients sont égaux à 1. 4) Mêmes questions pour la commande zeros. Créez une matrice de 4 lignes et 6 colonnes dont tous les coefficients sont égaux à 0. -->X=[x y z] -->M=[x;y;z] -->M(1,2) -->clear x -->x=[1,%i,-5,%pi,3] -->M -->M=[x;y;z] Remarque : pensez à utiliser la flèche du curseur pour gagner un peu de temps lorsque vous utilisez la même commande avec peu de changements. Attention à ne pas cliquer trop vite sur "Entrée"... 4) Quelle différence y a-t-il entre X et M? 5) que fait la commande M(1,2)? Que ferait la commande M(2,4)? Vérifiez. 6) Quelle différence y a-t-il entre l avant-dernière et la dernière ligne? -->size(x) -->size(m) -->x -->size(x ) -->M -->size(m ) --> eye(1) --> eye(2) --> eye(2,2) --> eye(2,3) 7) Qu indique la commande size? 8) En comparant M et M, dîtes ce que fait le. 9) Que fait la commande eye? Écrivez une matrice de 2 lignes et 4 colonnes avec des 1 sur la diagonale principale. 1

-->A=[-2,3;1,2] -->A*A -->A.*A -->A^2 -->A.^2 -->x=[1,-2,3] -->1/x -->1./x -->x^(-1) -->x.^(-1) Question : 10) Quelle ligne de commande affiche le produit matriciel A A? Qu effectue l autre ligne de commande? NB : Notez bien la commande pour demander à Scilab de calculer l inverse de chaque coefficient du vecteur : c est celle avec un exposant et non la barre de fraction! Exercices : 1) Écrire le vecteur u = [e, i, π, ( ) 1 5 3 2, π/6]. Écrire la matrice. 2 7 9 2) Créer une matrice de 3 lignes et 5 colonnes dont la première ligne est composée de 2, la deuxième de 0 et la troisième des nombres e, i, π, 2 et π/6. 3) Créer une matrice carrée de taille 5 avec des -1 sur la diagonale et des 2 partout ailleurs. Inversion de matrices, test "if-then" Déterminant et inverse d une matrice Dans le cours, nous avions vu le déterminant d une matrice 2x2. Cela nous permettait de savoir si la matrice est inversible ou non. De façon générale, on peut calculer le déterminant d une matrice carrée de taille n n. Si celui-ci est non-nul alors la matrice est inversible, sinon elle ne l est pas. Comme le calcul devient vite très long, voire compliqué, les logiciels de calcul sont très utiles pour effectuer le calcul : -->A=[5,-4,3;-8,2,1;-6,7,-3] -->B=[1,-6,4,8,-1;5,7,-9,2,-2;1,5,1,3,4;.. -->1,-4,5,2,1;-5,-8,3,-7,9] -->det(b) -->A^{-1} -->A^{-1}*A -->B^{-1} -->det(b)*inv(b) NB :Les 2 points en fin de ligne permettent d indiquer à la console que la ligne n est pas fini. C est utile lorsqu il faut rentrer une longue sequence. Vous pouvez utiliser indifféremment les commandes "A^{-1}", "A^(-1)" ou "inv(a)" pour calculer l inverse de A. Vous pouvez admirer la rapidité avec laquelle Scilab calcule l inverse d une matrice... Question : Que remarque-t-on pour le calcul de A 1 A? Les erreurs : Que dit Scilab lorsqu une matrice n est pas inversible et qu on lui demande de l inverser : -->A=[1,2,3;4,5,6] -->A=[1,1;2,2] Exercice : Écrivez en la nommant la matrice inverse. ( 1 5 2 7 ), vérifiez si elle est inversible, et si c est le cas, calculez son 2

Test "if-then" Le test "if-then" est une programmation qui demande à Scilab d effectuer une tâche si une condition est réalisée. -->A=[-1,2;3,2] -->if det(a)<>0 then, B=inv(A), end; Remarque : le symbole <> signifie "différent de" ; cela correspond à notre symbole. Question : Que fait ce programme? Entrez et regardez ce que fait la procédure suivante : -->A=[3,-2;5,4] -->if det(a)<>0 then, B=inv(A), else printf( A est non inversible ); end; -->A=[1,1;2,2] -->if det(a)<>0 then, B=inv(A), else printf( A est non inversible ); end; Résolution de systèmes linéaires On a vu au chapitre 2 que l on peut écrire un système linéaire sous forme matricielle Ax = b où A est une matrice, x le vecteur colonne des inconnues, et b le vecteur colonne du second membre. On va voir comment on peut utiliser Scilab pour résoudre des systèmes dans le cas où A est une matrice carrée. On a évoqué dans le cours que si A est inversible, alors le système admet une unique solution donnée par x = A 1 b. On vient de voir comment faire pour vérifier si une matrice est inversible et comment demander son inverse (s il existe) à Scilab. Essayez les commandes suivantes : -->A=[1,2;1,1] -->b=[3;5] -->A\b -->linsolve(a,b) Attention : la commande "A\b" résout : Ax = b tandis que la commande "linsolve(a,b)" résout Ax + b = 0! -->B=[1,1;2,2] -->det(b) -->linsolve(b,b) -->b=[2;4] -->[x0,u]=linsolve(b,b) -->linsolve(b,b) -->kernel(b) NB : La matrice B n étant pas inversible, le système Bx + b = 0 admet aucune ou une infinité de solutions ; cela dépend de b. Avec b = [2; 4], le système a une infinité de solutions. La commande -->[x0,u]=linsolve(b,b) affiche une solution que l on note ici x0 et un vecteur directeur noté ici u. Question : Résolvez les systèmes linéaires suivants à l aide de Scilab : si le déterminant est nul, faîtes afficher une solution (si elle existe) et le(s) vecteur(s) directeur(s). x + y + z = 1 2y + 3z = 2 x y = 0 Que constate-t-on pour le dernier système? x y + z = 1 2x + z = 2 3x + y + z = 0 x + y + z = 1 2x + 2y + 2z = 2 3x + 3y + 3z = 3 3

Diagonalisation de matrices On a vu au chapitre 6 ce qu on appelle la diagonalisation de matrices, pour des matrices de taille 2 2. Cela peut se faire pour une matrice carrée de taille quelconque, si celle-ci vérifie certaines conditions. Là encore, les logiciels de calcul sont pratiques pour diagonaliser des matrices de grandes tailles. Nous nous limitons ici à des matrices de taille 3 3. Un des aspects très importants de la diagonalisation, est de connaître les valeurs de la matrice diagonalisée. Celles-ci s appellent "valeurs propres" et l ensemble des valeurs propres s appelle "le spectre" de la matrice. Pour rappel, les valeurs propres correspondent aux racines d un certain polynôme. Dans Scilab, pour connaître le spectre de la matrice, on utilise la commande "spec(.)". -->A=[2,0;-3,1] -->spec(a) -->B=[-2,0;0,3] -->spec(b) -->A=[11,-5,5;-5,3,-3;5,-3,3] -->spec(c) La commande dans Scilab pour obtenir la matrice diagonalisée D est "bdiag(.)". Avec cette commande, on peut aussi obtenir une matrice de passage P. Pour rappel, c est une matrice de vecteurs propres associés aux valeurs propres correspondantes. Essayez les lignes de commandes suivantes : -->bdiag(a) -->[D,P]=bdiag(A) -->inv(p)*a*p -->P*D*inv(P) -->[D,P]=bdiag(C) -->inv(p)*c*p Exercice Demandez le spectre de la matrice A1, puis calculez à l aide de Scilab la matrice de passage que l on nommera P1 2 0 1 et la matrice diagonalisée D1 : A1 = 1 1 1. 2 0 1 0 1 0 ( ) Mêmes questions avec A2 = 1 0 1 1 2 et A3 =. 3 2 0 1 0 Bonus : Boucle "for" Une boucle est une commande qui demande à Scilab d exécuter plusieurs fois la même instruction. -->for x=1:6 -->x^2 On peut imbriquer des boucles. Elles sont exécutées de l intérieur vers l extérieur (penser aux parenthèses lorsque nous calculons). -->for i=1:5 -->for j=1:5 -->A(i,j)=i+j; -->A 1) Que fait cette procédure? 2) Que se passe-t-il si on enlève le " ;" à la fin de la ligne "A(i,j)=i+j"? Exercice : Créez une matrice de 4 lignes et 3 colonnes dont le coefficient en case (i,j) est égal à i 2 + j. FIN du TP2 4

On peut aussi rajouter un test : -->for i=1:5 -->for j=1:5 -->if i>=j then, A(i,j)=i+j; else A(i,j)=0;end; -->A 3) Que se passe-t-il si on écrit "for i=1 :3" au lieu de "for i=1 :5" dans cette procédure? 4) A quoi correspond alors i? Et j? 5