2006-2007 PARTIE I (VERSION 1.0) (VERSION 4.0)



Documents pareils
STI2D Logique binaire SIN. L' Algèbre de BOOLE

Module 2 : Déterminant d une matrice

Chapitre 2 Le problème de l unicité des solutions

L'algèbre de BOOLE ou algèbre logique est l'algèbre définie pour des variables ne pouvant prendre que deux états.

Séquence 8. Probabilité : lois à densité. Sommaire

/HVV\VWqPHVFRPELQDWRLUHV

Correction de l épreuve CCP 2001 PSI Maths 2 PREMIÈRE PARTIE ) (

Chapitre 11 : L inductance

ANALYSE NUMERIQUE NON-LINEAIRE

Tout ce qu il faut savoir en math

Guide d'utilisation Easy Interactive Tools Ver. 2

Théorème de Poincaré - Formule de Green-Riemann

Synthèse de cours (Terminale S) Calcul intégral

Notes de révision : Automates et langages

Algorithmes sur les mots (séquences)

Techniques d analyse de circuits

Avant d utiliser l appareil, lisez ce Guide de référence rapide pour connaître la procédure de configuration et d installation.

LANGAGES - GRAMMAIRES - AUTOMATES

SYSTEME DE TELEPHONIE

Commencer DCP-7055W / DCP-7057W /

LICENCE DE MATHÉMATIQUES DEUXIÈME ANNÉE. Unité d enseignement LCMA 4U11 ANALYSE 3. Françoise GEANDIER

semestre 3 des Licences MISM annnée universitaire

Réalisation de sites Internet PME & Grandes entreprises Offre Premium. Etude du projet. Webdesign. Intégration HTML. Développement.

COURS D ANALYSE. Licence d Informatique, première. Laurent Michel

Université Paris-Dauphine DUMI2E. UFR Mathématiques de la décision. Notes de cours. Analyse 2. Filippo SANTAMBROGIO

Baccalauréat S Asie 19 juin 2014 Corrigé

Licence M.A.S.S. Cours d Analyse S4

Chapitre 1 : Fonctions analytiques - introduction

Sommaire. 6. Tableau récapitulatif Sophos NAC intégré Vs. NAC Advanced - 17 Février

Pour développer votre entreprise LES LOGICIELS EN LIGNE, VOUS ALLEZ DIRE OUI!

Statuts ASF Association Suisse Feldenkrais

Thèse Présentée Pour obtenir le diplôme de doctorat en sciences En génie civil Option : structure

Turbine hydraulique Girard simplifiée pour faibles et très faibles puissances

Cours d Analyse IV Suites et Séries de fonctions

Toyota Assurances Toujours la meilleure solution

Chapitre VI Contraintes holonomiques

Pour développer votre entreprise. Compta LES LOGICIELS EN LIGNE, VOUS ALLEZ DIRE OUI!

Influence du milieu d étude sur l activité (suite) Inhibition et activation

3- Les taux d'intérêt

Compte rendu de la validation d'un observateur cascade pour la MAS sans capteurs mécaniques sur la plate-forme d'essai de l'irccyn

ANALYSE : FONCTIONS D UNE VARIABLE RÉELLE

Partie 4 : La monnaie et l'inflation

- Phénoméne aérospatial non identifié ( 0.V.N.I )

INFORMATIONS TECHNIQUES

Calcul Formel et Numérique, Partie I

Solutions IHM. Gammes Graphite et G3 Outils pour l'usine connectée

Portiers audio et vidéo ABB-Welcome et ABB-Welcome M

Conseils et astuces pour les structures de base de la Ligne D30

Guide de l'utilisateur

ManSafe. pour les Utilitiés. La Protection antichute pour les Industries de l'energie. Français. TowerLatch LadderLatch

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

LITE-FLOOR. Dalles de sol et marches d escalier. Information technique

Introduction à la modélisation et à la vérication p. 1/8

INTENTION LES PROCESSUS MATHÉMATIQUES

Le canal étroit du crédit : une analyse critique des fondements théoriques

Probabilités sur un univers fini

INSTRUCTIONS POUR L INSTALLATION ET LE FONCTIONNEMENT DES SERRURES À POIGNÉE BÉQUILLE

La plateforme Next Generation Mini guide

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)


Magister en : Génie Mécanique

Guide des bonnes pratiques


Cours Informatique Master STEP

Electrovanne double Dimension nominale Rp 3/8 - Rp 2 DMV-D/11 DMV-DLE/11

RadioCommunications CDMA

1. Structure d'un programme FORTRAN 95

AUTOUR D UN MÉMOIRE INÉDIT : LA CONTRIBUTION D HERMITE AU DÉVELOPPEMENT DE LA THÉORIE DES FONCTIONS ELLIPTIQUES. Bruno BELHOSTE (*)

Cours 7 : Utilisation de modules sous python

Classeur courtier d assurance. Comment organiser son activité et se préparer à un contrôle

Intégrale et primitives

FONDATION CLEMENTINE ET MAURICE ANTILLE

INSTALLATION DE DETECTION INCENDIE

La paye. La comptabilité. Comparez et choisissez votre logiciel. Comparez et choisissez votre logiciel. Paye Bâtiment Paye Agricole 2013

Régression multiple : principes et exemples d application. Dominique Laffly UMR CNRS Université de Pau et des Pays de l Adour Octobre 2006

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

Transfert. Logistique. Stockage. Archivage

Initiation à la programmation en Python

LOGICIEL FONCTIONNEL EMC VNX

Bloc notes. a À faire tout de suite. Gardez secret votre code confidentiel. À conserver précieusement. Protégez votre carte

Modification simultanée de plusieurs caractéristiques d un bien hédonique : une nouvelle méthode de calcul de la variation de bien-être des ménages

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

Programmation C++ (débutant)/instructions for, while et do...while

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Sciences Industrielles Précision des systèmes asservis Papanicola Robert Lycée Jacques Amyot

Clients légers IGEL et bureaux virtuels : synergie idéale et coût minimal

NEWS PRO ACTIV. [Juillet 2015] Ce mois-ci on vous parle de. L arrêté est applicable à compter du 1er Juillet 2015.

Outils pour la pratique

Algorithmique et Programmation, IMA

Corrigé des TD 1 à 5

TP1 - Prise en main de l environnement Unix.

Licence Sciences et Technologies Examen janvier 2010


UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Introduction à MATLAB R

TP 1 Introduction à Matlab Février 2009

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Premiers pas avec Mathematica

Transcription:

INITIATION A SCILAB M1-M2 MODELISATION EN BIOLOGIE DES POPULATIONS ET DES ECOSYSTEMES MODELISATION DU FONCTIONNEMENT DES ECOSYSTEMES 2006-2007 PARTIE I (VERSION 1.0) (VERSION 4.0) Soudni Kmel (Mître de conférences)- Fc. Sciences Orsy- Université Pris Sud kmel.soudni@ese.u-psud.fr 1

PLAN Introduction I. Interfce Scil II. Commndes en ligne sous Scil III. Editeur de progrmmes Scipd IV. Le Lngge de Progrmmtion Scil IV-1. Structure de contrôle d un progrmme IV-2. Fonctions sous Scil V. Entrées Sorties en mode fichier VI. Grphiques sous Scil 2

Remerciements : Ce document été construit en s ppuynt sur un ncien support écrit pr Guerric le Mire dns le cdre des TD Modélistion. Merci Guerric. Introduction Scil est un logiciel lire de clcul scientifique développé depuis 1990 pr l INRIA (Institut Ntionl de Recherche en Informtique et Automtique) et l ENPC (Ecole Ntionle des Ponts et Chussées). Il est disponile grtuitement sur le site Internet www.scil.org. Dns s syntxe, son rchitecture et son fonctionnement, Scil est très proche u logiciel Mtl commercilisé pr (Mthworks Inc). Depuis 2003, le développement de Scil se fit dns le cdre d un groupe d entreprises et d orgnismes de recherche constitué de : Axs Ingenierie, CEA, CNES, Cril Technology, Dssult-Avition, EDF, ENPC, Esterel Technologies, INRIA, PSA Peugeot Citroën, Renult, Thles. I. Interfce Scil Démrrer Scil 4.0 : 1- Dns l fenêtre principle (Environnement Scil) : le symole «-->» mrque l invite de commnde Scil (commndes en ligne). Dns le menu Fichier - chnger de répertoire et se mettre dns le répertoire de trvil (E\MOD). Utiliser l commnde ls pour vérifier que c est le on répertoire. ls est l équivlent de l commnde dir du DOS. L commnde dir fonctionne ussi sous Scil. 2- Activer l éditeur Scil (= «Scipd») en cliqunt sur Editeur du menu principl. L éditeur Scil est l interfce d écriture et du lncement d exécution des progrmmes. L éditeur Scipd peut être ussi lncé à prtir de l invite des commndes Scil en tpnt : scipd. Remrquer que Scil différencie entre les minuscules et les mjuscules. Pr exemple si on tpe Scipd u lien de scipd, Scil ffiche un messge d erreur. II. Commndes en ligne sous Scil II.1 Commndes de gestion de fichiers sous Scil On commencer ps quelques commndes équivlentes ux commndes disponiles sous UNIX ou DOS. 3

Sur l l invite de commnde : chdir E:\ ou cd permet d ller dns disque E. ls ou dir permet d fficher le contenu du répertoire ctif (E:\). L commnde ls peut être ussi utilisée vec des options. Pr exemple ls *.txt ffiche tous les fichiers ynt l extention txt. mkdir MOD\TD créer en une seule fois un sous répertoire TD dns un répertoire MOD. MODE. rmdir MOD\TD supprimer le répertoire TD dns le répertoire pwd ffiche le répertoire cournt de Scil. who ffiche l liste de toutes les vriles utilisées dns l session Scil (voir plus loin). gethistory() retourne l historique des commndes utilisées dns les sessions ntérieures. svehistory( E:\MOD\histScil ) suve l historique dns un fichier qu on nomme histscil dns le répertoire E:\MOD. Le fichier histscil est lisile pr un simple éditeur de texte. resethistory() effce l historique clc effcer toutes les commndes dns l fenêtre Scil cler effce le contenu en mémoire de toutes les vriles suf celles protégées. Elle peut être utilisée pour effcer une seule vrile qu on nomme A pr exemple : cler A Il est fortement conseillé de mettre les commndes clc et cler sur les deux premières lignes d un progrmme Scil édité pr l éditeur Scipd fin de rfrichir l écrn et vider l mémoire Scil. exit quitter l session Scil Pour d utres commndes, voir l ide de Scil section Utilitires. II.2 Utilistion de l invite Scil comme une clcultrice Ecrire sur l fenêtre de commnde puis Entrée du clvier : 2+3*4 Scil répond pr : ns = 14 ns pour nswer (réponse). Pr défut Scil nomme l vrile résultt ns. Ecrire : 4

result = 2+3*4 Scil répond pr : result = 14 Result est le nom de l vrile correspondnt u résultt du clcul. Result est lors considéré comme une vrile enregistrée en mémoire et qu on peut utiliser dns l suite de l session Scil. Ecrire puis Entrée du clvier : = 2 = 2 result/ ns = 7 On donc ffecté à l vrile l vleur 2 puis on divisé l vrile result/. Le clcul peut s effectuer ussi en utilisnt des fonctions comme : exponentielle (exp ()), sinus (sin()), cosinus (cos()). Pour l syntxe excte des utres fonctions, voir l section fonctions élémentires dns le menu ide de Scil. III. Editeur de progrmmes Scipd L éditeur de progrmme Scipd permet l écriture de lignes de codes en respectnt une syntxe de l même mnière que dns d utres lngges de progrmmtion comme le Turo Pscl, C, Fortrn, etc. Une fois exécuté, le progrmme dirige les sorties directement vers l interfce Scil vue précédemment (sortie écrn) ou vers une utre sortie de type grphique ou fichier en écriture. Toutes les vriles ou constntes utilisées dns le progrmme sont suvegrdées en mémoire et sont ccessiles directement à prtir de l invite de commndes. 1. Lncer l éditeur Scipd et écrire le code simple suivnt : clc cler //Progrmme pour le clcul l tille d'une popultion près n nnées //Nre d'individus u temps t=0 est P=P0 P0=25 //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5 //Nr d'individus près (n) nomre d'nnées est P n=10 P= ((r+1)^n)*p0 printf('l tille de l popultion près %d nnées est %f individus',n,p) Exemple 1 2. Exécuter ce progrmme : Menu Exécuter Lod in Scil. Enregistrer le progrmme sous Exemple1.sce. sce étnt l extension des fichiers édités pr scipd. 5

Anlysons tout d ord le prgrmme (Exemple1.sce) // Pour sisir des commentires. Toute ligne précédée pr // n est ps exécutée pr Scil. Donc seules les lignes 5, 8, 10, 11 et 12 qui seront exécutées. L exécution est séquentielle, c'est-à-dire ligne pr ligne depuis l première jusqu à l dernière. Ligne 5 : on ffecte l vleur 25 à l vrile P0 Ligne 8 : on ffecte l vleur 1.5 à l vrile r Ligne 10 : on ffecte l vleur 10 à l vrile n Ligne 11 : on clcule le nomre d individus près un nomre d nnées n. n P = P0 (1 + r) Ligne 12 : on ffiche le résultt en utilisnt l fonction printf disponile dns Scil. Cette fonction est une fonction prmi tnt d utres de l liririe Scil. Toutes ces lignes sont ffichées sur l fenêtre Scil. Pour ne ps fficher une ligne jouter ; à l fin de l ligne. L ffichge peut rlentir énormément l exécution. Utiliser ; fin de ne ps fficher certines lignes. Toutes les vriles citées ci-dessus sont ccessiles vi l invite de commnde Sci. P0 P0 = 25. r r = 1.5 L utilistion de printf s effectue comme suit : printf(formt, vr1, vr2, etc.) formt correspond u type de données : %d pour fficher une vrile de type entier nturel. %f pour fficher une vrile de type réel. %s pour fficher un crctère ou une chîne de crctères. Exemple : printf( L vleur de P0 est %d. L veleur de r est %f,p0,r) IV Le Lngge de Progrmmtion Scil IV-1. Structures de contrôle d'un progrmme Ces structures sont les ordres permettnt d'orienter l'exécution d'un progrmme. Boucle for 6

L oucle for permet l'exécution répétée d'une suite d'instructions situées entre les mots clés for déut de l oucle et fin de l oucle. Le nomre de répétitions est déterminé pr l vleur mximle prise pr un compteur de répétitions insi que pr l vleur initile du compteur et le ps d incrémenttion. Syntxe : for compteur= deut : ps : fin Instruction1 Instruction2.. Pr défut, Scil pr un ps de 1. On peut lors écrire : for compteur= deut : fin Exercice 1 : Modifier le progrmme situé ci-dessus (Exemple1.sce) fin de clculer et fficher le nomre d individus de l popultion pour chque nnée (de 1 à 10). Enregistrer le progrmme sous le nom Exemple2.sc. Corrigé de l exercice 1. (Exemple2.sce) clc cler //Progrmme pour le clcul de l tille d'une popultion près n nnées //Nre d'individus u temps t=0 est P=P0 P0=25 //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5 //Nr d'individus prés (n) nomre d'nnées est P n=10 for i=1:1:10 P= ((r+1)^i)*p0 printf('l tille de l popultion près %d nnées est %f individus',i,p); Boucle while - L oucle while permet de répéter l'exécution d'une suite d'instructions (tnt qu'une expression (condition de répétition) est vérifiée. Syntxe : while expression Instruction1 Instruction2 expression est une condition logique qui peut être soit vrie (1) ou fusse (0). Si l condition est vrie, l exécution demeure dns l oucle, sort de l oucle dns le cs contrire. 7

Les opérteurs de comprison sont les suivnts : = = égl à < inférieur à > supérieur à <= inférieur ou égl à >= supérieur ou égl à <> ou ~= différent de «&» (et) et (ou) : on peut tester des conditions multiples. Pr exemple : ((==2) & (c>=5)) //Cette commnde pour résultt «vri» si à l fois =2 et c >= 5, et fux si l une u moins de ces deux conditions est fusse. ((==2) (c>=5)) //Cette commnde pour résultt «vri» si une des deux conditions est vrie, ou les deux. Exercice 2 : Dns Exemple2.sce, clculer et fficher le nomre d individus de l popultion pour chque nnée (de 1 à 10) en utilisnt l oucle while u lieu de l oucle for. Enregistrer ce progrmme sous le nom Exemple3.sce. Corrigé de l exercice 2. (Exemple3.sce) clc cler //Progrmme pour le clcul de l tille d'une popultion près n nnées //Nre d'individus u temps t=0 est P=P0 P0=25 //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5 // Nr d'individus prés (n) nomre d'nnées est P n=10 i=1; while(i<=10) P= ((r+1)^i)*p0 printf('l tille de l popultion près %d nnées est %f individus',i,p); i=i+1 if -then-else L'ordre conditionnel if évlue une expression qui, si elle est vrie (u sens ooléen), commnde l'exécution de l suite d'instructions comprise entre les mots-clés then et else (ou ). Si l'expression est fusse, c'est l suite d'instructions se trouvnt entre les mots-clés else et qui est exécutée. L prtie else est fculttive (un doit lors délimiter l dernière instruction du then). Des constructions sont églement possiles vec le mot-clé elseif. Le mot-clé then peut être remplcé pr un retour-chriot ou une virgule. Syntxe 1: if expression then 8

else Instruction1 Instruction2 Instruction3 Instruction4 Exercice 3 : Modifier l Exemple3.sce fin de limiter l tille de l popultion à une vleur mximle à ne ps dépsser. Pour l exemple, on fixer ce seuil à 10000. Afficher l nnée pour lquelle ce seuil est tteint. Enregistrer ce progrmme sous le nom Exemple4.sce. clc cler //Progrmme pour le clcul de l tille d'une popultion près n nnées //Nre d'individus u temps t=0 est P=P0 P0=25; //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5; // Nr d'individus prés (n) nomre d'nnées est P n=10; i=1; seuil=10000; while(i<=10) P= ((r+1)^i)*p0 if (P<=seuil) then printf('l tille de l popultion près %d nnées est %f individus',i,p); else printf('l popultion tteint le seuil de %d individus entre l''nnéé %d et l''nnée %d',seuil,i-1,i) i=n+1; // cette dernière ligne permet de forcer l sortie de l oucle while i=i+1; select cse L syntxe de l utilistion de cette instruction conditionnelle s effectue comme suit : select expr, cse expr1 then instructions1, cse expr2 then instructions2, cse exprn then instructions, [else instructions], Notes: - L seule contrinte est que chque mot-clé "then" soit sur l même ligne que le "cse" correspondnt. - Le mot-clé then peut être remplcé pr un pssge à l ligne ou une virgule. Les instructions1 sont exécutées si expr1=expr, etc. 9

Exercice 4 : Modifier le progrmme situé ci-dessus (Exemple1.sce) fin d effectuer le clcul en considérnt deux cs. Le premier cs : croissnce de l popultion sns mortlité et le second cs en considérnt une mortlité qu on note m. On considérer que m est une proportion constnte de l popultion totle. Pour l exemple, on prr m = 15% de l popultion totle. Enregistrer le progrmme sous le nom Exemple5.sce. clc cler //Progrmme pour le clcul de l tille d'une popultion près n nnées //Nre d'individus u temps t=0 est P=P0 P0=25 //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5 // Nr d'individus prés (n) nomre d'nnées est P n=10 //mortlité m : proportion constnte du Nr d'individus de l popultion mortlite=1 select mortlite cse 0 then P= ((r+1)^n)*p0 printf('l tille de l popultion près %d nnées est %f individus',n,p) cse 1 m=0.15 P= ((r-m+1)^n)*p0 Ordre rek L'ordre rek force l sortie d une oucle. Générlement, il fut éviter d utiliser cette instruction cr son utilistion trduit le plus souvent une filesse dns l lgorithme. clc cler P0=25 r=1.5 seuil=10000 for i=1:10 P= ((r+1)^i)*p0 if(p>seuil) then rek IV-2. Fonctions sous Scil Définition en ligne d une fonction Dns l ide de Scil, l définition en ligne d une fonction se fit comme suit : 10

deff('[s1,s2,]=nom_function(e1,e2,.)',text [,opt]) Prmeters e1,e2,, : rguments d entrée de l fonction s1,s2,, : rguments de sortie de l fonction text : l fonction écrite opt : options 'c' : l fonction est compilée (pr défut) 'n' : l fonction est non compilée. Exemple : Dns l exemple 1, le nomre d individus de l popultion peut être clculé en utilisnt l fonction suivnte : clc deff('[p]=n_individus(p0,n,r)','p=((r+1)^n)*p0') Ecrire cette ligne dns l éditeur Scipd, enregistrer ensuite le fichier dns Exemple6.sce. Exécuter ensuite le progrmme. Dns l invite de commnde Scil, l ppel de l fonction peut se fire comme suit : N_individus(25,10,1.5) ns = 238418.58 Crétion de fonctions dns l'environnement Scil à l'ide du mot clé function Syntxe : function <rguments_sortie>=<nom_de_l_fonction><rguments_entrée> <instructions> function Vérifions le fonctionnement du code suivnt : function P=Pop_fonction(n,r,P0) P=((r+1)^n)*P0 function n=10 r=1.5 P0=25 Pop_fonction(n,r,P0) L fonction Pop_fonction pr pour entrées n, r et P0 et r l tille de l popultion. Sous l invite de Scil -->P 11

!--error 4 undefined vrile : P Dns l environnement Scil, P est non définie. Essyons encore comme suit : P=100 function P=Pop_fonction(n,r,P0) P=((r+1)^n)*P0 function n=10 r=1.5 P0=25 Pop_fonction(n,r,P0) printf( L vleur de P près l ppel de l fonction est %f,p) Après Exécution du code ci-dessus, Scil r le résultt suivnt : L vleur de P près l'ppel de l fonction est 100.000000 L vleur prise pr l vrile P n est ps modifiée pr l exécution. P est lors dite locle à l fonction. P est une vrile locle. L fonction peut seulement lire les vriles du corps du progrmme mis elle ne les modifie ps. Pour pouvoir les modifier, ces vriles doivent être déclrées comme étnt des vriles gloles en utilisnt le mot clés glol. glol P P=10 function P=Pop_fonction(n,r,P0) glol P P=((r+1)^n)*P0 return(p) function n=10 r=1.5 P0=25 Pop_fonction(n,r,P0) (Remrquer que P est déclré deux fois insi que l commnde return(p) ) Crétion de fichiers de fonctions et ppel de ces fonctions Afin de pouvoir utiliser l fonction dns plusieurs progrmmes, celle-ci peut être écrite dns un fichier à prt en respectnt l même syntxe. L ppel de l fonction dns le progrmme se fit en utilisnt l commnde exec('nom_fichier). Nom_fichier contient ussi le chemin exct du fichier. Pr exemple : exec(e:\mod\nom_fichier.sce) 12

Exemple : Appel de l fonction Pop_fonction. Dns un fichier qu on nommer Clcul_Pop.sce, écrire l fonction suivnte : function P=Pop_fonction(n,r,P0) glol P P=((r+1)^n)*P0 return(p) function Ensuite, écrire un utre progrmme ppelnt cette fonction : n=10 r=1.5 P0=25 exec('clcul_pop.sce') Pop_fonction(n,r,P0) IV-3. Vecteurs et mtrices IV-3.1 Un petit rppel de l lgère des mtrices Une mtrice est un tleu de n lignes et m colonnes. Si on note M l mtrice et ij les éléments de l mtrice, l mtrice M = [ ij ] de tille (n,m) est composée des éléments ij, i llnt de 1 à n et j llnt de 1 à m. i est donc l indice de ligne et j est l indice de colonne. 1. Addition L somme de deux mtrices A et B est une mtrice dont chque élément est une somme des éléments de mêmes indices des deux mtrices. 11 21 n1 12 22 n2.. 1m 2m +. nm 11 21 n1 12 22 n2.. 1m 2m =. nm 11 21 n1 + + + 11 21 n1 12 22 n2 + + + 12 22 n2.. 1m 2m nm + +. + 1m 2m nm Pour pouvoir être dditionnées, les deux mtrices A et B doivent être de mêmes dimensions (même nomre de lignes et même nomre de colonnes). 2. Multipliction 1. Pr un sclire : λ [ ] = [ λ ] ij ij 2. Pr une mtrice : produit mtriciel 13

Le produit mtriciel se fit entre deux mtrices dont le nomre de colonnes de l mtrice de guche est égl u nomre de lignes de l mtrice de droite : Si A = (n,m) et B (p,q) : le produite mtriciel entre A et B => m = p ; l mtrice résultnte est dimension (p,q). 11 21 n1 12 22 n2.. 1m 2m. nm 11 21 n1 12 22 n2.. 1 p 11 11 + 12 21 + + 1m n1 2 p =.. p... Exemple : c + e e f = d f ce + df d g e h c j f k i l m j + k + cl n = dj + ek + fl o gj + hk + il m + n + co dm + en + fo gm + hn + io 3. Vecteur propre et vleur propre d une mtrice Soit A une mtrice crrée de n lignes et n colonnes et X un vecteur colonne de n lignes et λ étnt un sclire. Considérons l'éqution suivnte : A X = λ X Pour X non nul, les vleurs λ qui vérifient cette éqution sont ppelées vleurs propres de l mtrice A. Les vecteurs correspondnts sont ppelés vecteurs propres. IV-3.2 Mtrices et Tleux sous Scil Mtrices Considérons pr exemple l mtrice suivnte (3 lignes, 4 colonnes) : 16 5 9 3 10 6 2 11 7 13 1 11 Nous llons commencer pr "entrer" cette mtrice dns Scil. Il existe plusieurs mnières de procéder. Nous llons ici l'entrer comme une liste d'éléments. Pour ce fire, il suffit de respecter quelques règles syntxiques simples : 14

Sur l même ligne, les éléments doivent être séprés pr des espces ou des virgules. L fin d'une ligne est signlée pr un point-virgule. L'ensemle de l liste de vleurs doit être entourée de crochets, [ ]. Pour entrer l mtrice que nous nommerons mtrice [S], nous tperons insi : S = [16 3 2 13; 5 10 11 1; 9 6 7 11] -->S = [16 3 2 13; 5 10 11 1; 9 6 7 11] Et Scil fficher ussitôt l mtrice de l mnière suivnte : S = 16. 3. 2. 13. 5. 10. 11. 1. 9. 6. 7. 11. L ccès à l élément 2 (1 er ligne, 3 e colonne) se fit en tpnt : S(1,3). En règle générle, l ccès à l élément situé sur l ligne i et l colonne j se fit en tpnt : S(i,j). Les opértions rithmétiques peuvent se fire lors entre les différents éléments de l mtrice. Pr exemple, pour somme les éléments de l première ligne : Somme=S(1,1)+S(1,2)+S(1,3)+S(1,4) -->Somme=S(1,1)+S(1,2)+S(1,3)+S(1,4) Somme = 34. On peut ussi effectuer l même opértion comme suit : -->sum(s(1,:)) ns = 34. sum est une fonction prédéfinie Scil pour clculer une somme. Ici, le clcul s effectue sur l première ligne et toutes les colonnes. L opérteur : signifie toutes les colonnes. L'opérteur «:» 15

L'opérteur «:» est l'un des opérteurs les plus importnts de Scil. Il s'emploie de plusieurs mnières. Ainsi l'expression : 1:10 désigne un vecteur ligne formé des entiers compris entre 1 et 10, ce qui conduit à l'ffichge de : --M=1:10 M = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Il est possile de spécifier un espcement différent de 1 entre les vleurs successives. Ainsi : -->M=10:-1:1 M = 10. 9. 8. 7. 6. 5. 4. 3. 2. 1. -->M=10:-2:1 M = 10. 8. 6. 4. 2. Revenons à l mtrice S = [16 3 2 13; 5 10 11 1; 9 6 7 11] S = 16. 3. 2. 13. 5. 10. 11. 1. 9. 6. 7. 11. L opérteur (:)permet ussi d ccéder à une portion de l mtrice. Si pr exemple, on veut construire une nouvelle mtrice qu on note A composée des deux premières lignes et des deux dernières colonnes, lors A=S(1:2,3:4) -->A=S(1:2,3:4) A = 2. 13. 11. 1. -->S(1,:) ns = 16. 3. 2. 13. 16

Correspond à une mtrice ligne composée de l première ligne de l mtrice S. -->S(:,1) ns = 16. 5. 9. Correspond à l mtrice colonne composée de l première colonne de l mtrice S. Tille de l mtrice L tille de l mtrice s exprime sous l forme : (n de lignes, n de colonnes). Elle est otenue pr l fonction size(s). Le résultt est : ns =! 3. 4.! Pour récupérer le nomre de ligne ou le nomre de colonne d une mtrice, on peut procéder comme suit : -->Tille=size(S) Tille = 3. 4. -->n_ligne=tille(1,1) n_ligne = 3. -->n_colonne=tille(1,2) n_colonne = 4. Somme de lignes et de colonnes L fonction sum() permet d'effectuer l somme des éléments des lignes ou des colonnes. L somme des éléments situés sur les colonnes se fit comme suit : sum(s,'c') 17

conduir à l'ffichge de : ns=!34.!!27.!!33.! Alors que l commnde : sum(s,'r') ur pour sortie : ns= Concténtion! 30. 19. 20. 25.! On ppelle concténtion l'opértion consistnt à fusionner de petits ojets (ici des mtrices) en une entité plus grnde. L'opérteur de concténtion des mtrices est []. Ainsi : = [ 1 2 3 ]; = [ 4 5 6]; c = [ 7 8 9]; d= [ c] d=! 1. 2. 3. 4. 5. 6. 7. 8. 9.! e= [; ; c] e =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! suppression de lignes et de colonnes -->S S = 16. 3. 2. 13. 5. 10. 11. 1. 9. 6. 7. 11. Pour supprimer l dernière colonne de l mtrice S : -->S(:,4)=[] 18

S = 16. 3. 2. 5. 10. 11. 9. 6. 7. Exemple simple : écriture d un progrmme pour remplir une mtrice de tille n * m vec des vleurs létoires selon une loi uniforme. Chque élément est indicé en i et j. On utiliser une oucle for qui prcourt les m éléments de l première ligne puis une seconde qui prcourt toutes lignes. clc //effcer l'écrn scil cler // effcer toutes les vries en mémoire n=5 m=6 for i=1:5 // prcourir les lignes de 1 à 5 for j=1:6 // prcourir les 6 colonnes de chcune des lignes A(i,j)=rnd()//Remplir A(i,j) pr des vleurs létoire entre 0 et 1 // fin de l oucle j // fin de l oucle i Rnd() : fonction Scil rnt des vleurs létoires entre 0 et 1 selon l loi uniforme. Toutes les vleurs entre 0 et 1 sont équiproles. (voir plus loin) A = 0.4256872 0.2461561 0.9229532 0.1000746 0.4678218 0.3950498 0.0366117 0.5175369 0.8325452 0.6104832 0.1871112 0.0189575 0.8433565 0.0748595 0.8532815 0.0124590 0.1867539 0.4920584 0.7489608 0.9414957 0.2124056 0.579502 0.2628148 0.4360987 0.9110545 0.8082667 0.8102653 0.2590428 0.4139087 0.3599928 // une fçon plus simple d'écrire le code ci-dessus A=rnd(n,m) // rnd(n,m) r une mtrice n * m dont les éléments sont létoires entre //0 et 1 (Uniforme). Tleux Un Tleu est une mtrice. Scil offre l possiilité d effectuer des opértions sur les tleux sns pour utnt les considérer comme des mtrices et donc non soumis ux conditions de l lgère linéire. Pr exemple, on peut multiplier deux tleux élément pr élément en utilisnt l opérteur.*. On peut ussi utiliser les opérteurs suivnts :.\ division à guche pr éléments.* multipliction pr éléments 19

./ division à droite pr éléments.ˆ puissnce pr éléments Opérteur./ (Le tleu S est divisé pr le tleu élément/élément) -->S=[1 2; 4 8] S = 1. 2. 4. 8. -->=[2 2; 2 2] = -->S./ ns = 2. 2. 2. 2. 0.5 1. 2. 4. Opérteur.* -->S.* ns = 2. 4. 8. 16. Opérteur.\ (le tleu est divisé pr le tleu S) -->S.\ ns = 2. 1. 0.5 0.25 L opérteur.^ (Puissnce pr élément du tleu S) -->S.^2 ns = 1. 4. 16. 64. Autres opértions sur une mtrice ou un «tleu» -->exp(s) ns = r l exponentielle de l mtrice élément/élément 2.7182818 7.3890561 54.59815 2980.958 20

-->sqrt(s) ns = r l rcine crré de l mtrice élément/élément 1. 1.4142136 2. 2.8284271 Pour d utres opértions (log, cos, sin, etc ) voir l ide Scil. Opértions mtricielles A' trnsposée de A rnk rng inv inverse expm exponentielle mtricielle det déterminnt trce trce poly(a,"x") polynôme crctéristique de A spec vleurs propres de A dig digonlistion svd décomposition en vleurs singulières A\ solution de A*x= /A solution de x*a= linsolve(a,) solution de A*x=- men(a) moyenne de l mtrice V. Entrées Sorties en mode fichier Suvegrde d une ou plusieurs vriles dns un fichier scii (texte) Soit le progrmme suivnt : Syntxe : --> svemtfile('nom_fichier','nom_vr1','nom_vr2', '.. ','-scii') Pour suvegrder en inire, supprimer '-scii' //Progrmme pour le clcul du nomre d'individus d'une popultion près (n) nnées //Nre d'individus u temps t=0 est P=P0 P0=25 //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5 // Nr d'individus prés (n) nomre d'nnées est P 21

n=10 for i=1:1:10 nnee(i)=i; P(i)= ((r+1)^i)*p0 A l sortie du progrmme ci-dessus, deux vriles Tleu peuvent être récupérées : l tleu nnee et le tleu P. -->who_user (liste de vrile dns l environnement Scil) User vriles re: P nnee i n r P0 scipd modelic_lis using 1698 elements out of 4984309 Les deux vriles P et nnees sont ccessiles en tpnt : -->P P = 62.5 156.25 390.625 976.5625 2441.4062 6103.5156 15258.789 38146.973 95367.432 238418.58 -->nnee nnee = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. --> svemtfile('res_p.txt','p','nnee','-scii') Ouvert sous Bloc Notes, le fichier Res_P.txt est le suivnt : 6.2500000E+01 1.5625000E+02 3.9062500E+02 9.7656250E+02 2.4414062E+03 22

6.1035156E+03 1.5258789E+04 3.8146973E+04 9.5367432E+04 2.3841858E+05 1.0000000E+00 2.0000000E+00 3.0000000E+00 4.0000000E+00 5.0000000E+00 6.0000000E+00 7.0000000E+00 8.0000000E+00 9.0000000E+00 1.0000000E+01 Remrquer que les deux vriles sont suvées l une près l utre. Une mnière simple de résoudre ce prolème est de concténer les deux tleux : -->B=[nnee P] B = 1. 62.5 2. 156.25 3. 390.625 4. 976.5625 5. 2441.4062 6. 6103.5156 7. 15258.789 8. 38146.973 9. 95367.432 10. 238418.58 -->svemtfile('p_result.txt','b','-scii') Les deux vriles seront enregistrées dns deux colonnes distinctes. On peut ussi utiliser l commnde write : -->svemtfile('p_result.dt',b,) Suvegrde d'une mtrice S dns un fichier nommé mtrice.dt : write('mtrice.dt',s) Lecture d une ou plusieurs vriles dns un fichier scii (texte) L commnde l plus fcile à utiliser est l commnde red. 23

A=red(' P_Result.txt',Nligne,Nvriles) L commnde red nécessite de spécifier le nomre de lignes et le nomre de vriles. VI. Grphiques sous Scil Les principles commndes grphiques sont les suivntes plot2d(x,y) plot2d1('oll',x,y) fplot2d(x,f) plot3d(x,y,z) contour(x,y,z,n) hisplot(n,dt) x,y sont des vecteurs Trcé de l coure pssnt pr les points (x,y) Idem, vec échelle logrithmique sur les deux xes Trcé de l coure (x,f(x)) Trcé de l surfce pssnt pr les points (x,y,z) Trcé de n coures de niveu d'une surfce Histogrmme de l'échntillon dt divisé en n clsses //Progrmme pour le clcul du nomre d'individus d'une popultion près (n) nnées //Nre d'individus u temps t=0 est P=P0 P0=25 //Nomre de descnts pr individu et pr n est r //Hyp: ps de mortlité ni chez les dultes ni chez les nouveux nés r=1.5 // Nr d'individus prés (n) nomre d'nnées est P n=10 for i=1:1:10 nnee(i)=i; P(i)= ((r+1)^i)*p0 plot2d(nnee,p); xset('ckground',4) xtitle(['tille de l popultion'],'années','nre individus')./. 24