Scilab : un logiciel libre de calcul scientifique

31/08/2017
Auteurs : Claude Gomez
Publication REE REE 2006-4
OAI : oai:www.see.asso.fr:1301:2006-4:19730
DOI :

Résumé

Scilab : un logiciel libre de calcul scientifique

Métriques

13
4
1.31 Mo
 application/pdf
bitcache://9f8ba00de2e1f8c306a0a2c4415e8fbff77f88ac

Licence

Creative Commons Aucune (Tous droits réservés)
<resource  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns="http://datacite.org/schema/kernel-4"
                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
        <identifier identifierType="DOI">10.23723/1301:2006-4/19730</identifier><creators><creator><creatorName>Claude Gomez</creatorName></creator></creators><titles>
            <title>Scilab : un logiciel libre de calcul scientifique</title></titles>
        <publisher>SEE</publisher>
        <publicationYear>2017</publicationYear>
        <resourceType resourceTypeGeneral="Text">Text</resourceType><dates>
	    <date dateType="Created">Thu 31 Aug 2017</date>
	    <date dateType="Updated">Thu 31 Aug 2017</date>
            <date dateType="Submitted">Mon 15 Oct 2018</date>
	</dates>
        <alternateIdentifiers>
	    <alternateIdentifier alternateIdentifierType="bitstream">9f8ba00de2e1f8c306a0a2c4415e8fbff77f88ac</alternateIdentifier>
	</alternateIdentifiers>
        <formats>
	    <format>application/pdf</format>
	</formats>
	<version>33504</version>
        <descriptions>
            <description descriptionType="Abstract"></description>
        </descriptions>
    </resource>
.

Repères 1at t t 0 t LES APPLICATIONS INDUSTRIELLES DES LOGICIELS LIBRES (2e,lilpartie) m m Scilab : un logiciel libre m de calcul scientifique* Claude GOMEZ (INRIA) RTITMM- Logiciel de calcul, Calculscientifique, Calcul numérique, Simulation, Graphique, Logicielslibres Dans cet article, nous décrivons les principales caractéristiques de Scilab, logiciel libre de calcul scientifique, aussi bien au point de vue de ses fonctionnalités que de son mode de développement. 1. Introduction Dans les années 1980, une révolution a eu lieu dans le domaine du calcul numérique avec la réalisation d'un logiciel qui permettait de réaliser des calculs matriciels interactivement de façon très simple. Il s'appelait Matlab et était écrit en fortran. Un certain nombre d'autres logi- ciels ont ensuite vu le jour. Au cours des années, ils ont pratiquement tous disparus pour laisser la place au logi- ciel d'origine Matlab distribué aujourd'hui par la société américaine The Mathworks. Ce logiciel est devenu le standard et il est aujourd'hui utilisé dans toutes les uni- versités, les écoles et les entreprises du monde entier qui ont besoin de faire du calcul scientifique numérique. C'est un logiciel propriétaire. Dans les années 1980 aussi, inspiré et basé sur les mêmes principes que le logiciel Matlab d'origine, un autre logiciel appelé successivement Blaise, puis Basile avait vu le jour à l'INRIA (Institut National de Recherche en Informatique et en Automatique). Ce logiciel fut renommé Scilab en 1990, puis mis à disposition gratuite- ment avec ses sources sur le réseau Internet en 1994. Il a été développé par des chercheurs de l'INRIA et de l'ENPC (École Nationale des Ponts et Chaussées) jusqu'en 2003 année où l'INRIA a créé le consortium Scilab. C'est cette alternative ou ce complément au logi- ciel Matlab que nous allons présenter ici. 2. Scilab : une super calculette gratuite Scilab est un logiciel de calcul numérique à large spec- tre. Sa dernière version 4.0 (février 2006) est disponible pour les machines Windows 9X/2000/XP ainsi que pour GNU/Linux et les stations de travail UNIX. Il est possible d'en télécharger des versions binaires ainsi que le code source à partir du site www.scilab.org. Une des raisons qui ont fait le succès d'un logiciel * Cet articleestuneversionmiseàjour d'un article déjàparudansla rubrique" Recherche& Innovation" de la revue" Techniquesde l'lngénieur" enavril 2005.Scilabestun logiciel libre, d'accèset d'utilisation, au sensdécritau chapitre3 decet article,dont lessourcespeuventêtretéléchar- géesgratuitementsurInternetdepuisle site http://www.sciiab.org/ ESSENTIEL SYNOPSIS Scilab est un logiciel libre de calcul scientifique comparable au logiciel Matlab. Il est utilisédans le monde entier à lafois dansle domainede l'éducationet de l'industrie. Afin d'assurerson futur, il est depuis mai 2003 pris en charge par le consortium Scilab composé d'industriels et d'académiques. Nous décrivonsici à la fois les caractéristiquesgénérales de Scilab ainsi que le mode choisi pour son développement. Scilabis a free and open sourcescientific software packagecom- parableto Matlab. It is currentlyused in educationaland industrial environmentsaroundthe world. Scilabis now the responsibilityof the Scilab Consortium, launched in May 2003. The Consortium brings together academicsand companiesto support as well as to assure the future of Scilab. Themain functionalities of Scilab andthe way it is developedare described. REE NO 4 Avril 2006 `r s 1 URepêres 1 LES APPLICATIONS INDUSTRIELLES DES LOGICIELS LIBRES (21,11, partie) comme Scilab et Matlab est la syntaxe d'utilisation qui permet de réaliser très facilement des calculs matriciels, qui sont à la base des calculs numériques scientifiques. Le langage de programmation est lui aussi très facile à utiliser. Scilab, bâti sur le logiciel Matlab d'origine, a une syntaxe de base identique à celle de Matlab, mais ce n'en est pas un clone. En effet, au cours du temps, les deux logiciels se sont éloignés et des noms de fonctions, des structures de données sont différentes. Mais aujourd'hui, avec la sortie de la version 4.0, une aide à la traduction du langage Matlab en langage Scilab est disponible. La session typique de calcul matriciel présentée figure 1 met en évidence la facilité d'utilisation de Scilab. 1 i [......1 i , 1, l : 1ii I ", 1, 1 1 1 1, 1 7 C 1 1, -, 4 - 1 -. - 43 - -,, 1,, l.,, r,,, -1 ! ,, i, 11 1, il, 11 " [1-,, ; ", , 1, 1, 1 1 1'111, t,,,,,. , i 1 , [ 1,,,, e li,,, " [ ,'], 1 [, !,, i, Il 1 'Il 1 11 1,1. j Figure 1. Calcaals de base avec Scilab. L'utilisation d'une représentation graphique est aussi primordiale pour l'interprétation et la diffusion des résul- tats d'un calcul. Scilab permet de tracer des courbes et des surfaces et de réaliser de l'animation. De plus, depuis la version 3.0, son interface graphique est composée d'objets auxquels on peut accéder directement par pro- gramme ou à l'aide d'un éditeur graphique pour modifier ses propriétés. Par exemple pour modifier et personnali- ser une représentation comme celle de la figure 2, il suf- fit d'utiliser les commandes graphiques, mais on peut aussi plus confortablement utiliser l'éditeur de propriétés graphiques dont une vue est donnée aussi dans la figure 2. TT " " 1 , 1 1...1.. Figzn°e 2. Une représentation graphique et l'éditeur de pi-opi-iétés ai-aphiqiies. Depuis la sortie de la version 3.1.1, les fonctions de base des tracés de courbes ont une syntaxe similaire à celle de Matlab. La combinaison du langage Scilab, la puissance de calcul et les possibilités de la nouvelle inter- face graphique, comme celle de passer de 2D en 3D pour un même tracé, permettent par exemple de calculer les valeurs propres d'une matrice aléatoire 300 x 300 et de les situer dans le plan et dans l'espace en 3 lignes (voir la figure 3) : A=rand (300,300) ; vp=spec (A) ; plot (real (vp),imag (vp), " b* ") ; . ,/ / ,r''' " 4, -1, 1 J Tl F' -11 --r : , Figzrre 3. Répai-titioii gi-aphiclite des valeiii-s propi-es d'iiiie iiiati-ice ciléatoii-e 300 x 300. REE N 4 Avril 1-006 Scilab : un logiciel libre de calcul scientifique Mais le logiciel Scilab est fourni avec un grand nombre de boîtes à outils qui en font plus qu'un simple noyau de calcul matriciel : . Graphique 2-D et 3-D, animation . Algèbre linéaire, matrices creuses . Polynômes et fractions rationnelles . Simulation : résolution de systèmes d'équations différentielles explicites et implicites w Commande classique, robuste, optimisation LMI Optimisation diffërentiable et non différentiable . Traitement du signal . Calcul sur les graphes et les réseaux . Scilab parallèle utilisant PVM . Statistiques . Interfaces avec le calcul formel : package Maple pour générer du code utilisable dans Scilab et MuPAD depuis sa version 3.0 inclut Scilab. . Interface avec TCL/TK. Il est possible aussi de télécharger à partir du site Web de Scilab un grand nombre de contributions dans des domaines variés. 3. Scilab : un moteur de calcul En plus de son utilisation comme super calculateur, Scilab peut aussi être utilisé comme moteur de calcul intégré dans des applications dans divers domaines. Pour cela il existe une API qui permet à une application d'intégrer toutes les librairies de calcul de Scilab et d'avoir accès à son interpréteur et à son graphique. Scilab disparaît donc sous le logiciel ainsi défini en apportant à ce dernier toute sa puissance de calcul. Scilab dispose aujourd'hui d'une licence qui permet de s'en servir sans aucune contrainte tant que Scilab ou une de ses parties n'est pas inclus dans un autre logiciel qui est vendu ; dans ce dernier cas l'autorisation de l'INRIA est obligatoire. Cette autorisation est automatique- ment accordée aux membres du consortium (voir § 5.1). Cela permet ainsi à des entreprises de déployer des logi- ciels internes basés sur ou contenant Scilab sans aucune contrainte. En revanche, pour la vente d'un logiciel com- prenant le moteur de calcul Scilab, l'adhésion au consor- tium est aujourd'hui nécessaire. 4. Scicos : la simulation des systèmes dynamiques hybrides Scilab permet de réaliser la simulation des systèmes dynamiques à l'aide de solveurs puissants pour la résolu- tion des systèmes d'équations différentielles. Mais de même que Matlab possède la boîte à outil Simulink, Scilab possède en standard la boîte à outils Scicos. Elle est incluse dans le logiciel Scilab. Scicos fournit un éditeur graphique de type bloc-dia- gramme permettant de représenter graphiquement la plu- part des systèmes dynamiques hybrides (comprenant des composants en temps continu, en temps discret et des événements de conditionnement). Il est possible d'assem- bler le modèle d'un système en copiant depuis l'éditeur des blocs issus de palettes de blocs prédéterminés, et en tissant des connections entre les ports de ces blocs. Les connections entre les ports d'entrée/sortie mode- lisent la communication de données bloc à bloc. Les connections entre les ports d'activation modélisent la communication d'information de contrôle entre les blocs. Par exemple, le schéma de la figure 4 représente : . un système dynamique continu (le bloc " Procédé ") ; < sa trajectoire nominale (le bloc " Générateur de Sinusoïde ") ; . son système de contrôle discret formé des blocs " Echantillonneur " et " Correcteur ", de l'horloge de cadencement du contrôleur ; . et enfin des blocs de dessin des signaux (horloge de cadencement de l'affichage, bloc " Oscilloscope "). Les trois horloges génèrent ici trois cadencements asyn- chrones, mais en revanche les blocs " Correcteur " et " Echantillonneur " sont activés de façon synchrone. .". :. " " ", :,1 1 ,t:-.<- :' ?' : Jcj'at : Il 1-1 1.11 ... PrOCt : dCI ...... Figure 4. Exemple de schéma Scicos. Mais ce fon-nalisi-ne pen-net de décrire les systèmes dyna- miques composés de sous systèmes connectés les uns aux autres de façon causale, représentation qui n'est souvent pas bien adaptée pour représenter les systèmes physiques. En effet, il est généralement difficile d'expliciter les équations pour les rendre causales (spécifier quelles sont les variables d'entrées et de sortie) et il est souvent impossible de représen- ter un sous système physique par un seul bloc. Pour éviter ces difficultés, Scicos a été étendu aux systèmes non causaux. Les connections entre deux blocs non causaux représentent alors des équations sur les grandeurs des ports connectés et non plus un transfert de valeur. Par exemple le schéma de la figure 5 comporte des blocs non causaux comme la résis- tance, la capacité et la self, des blocs mixtes (ampèremètre et voltmètre) et un bloc causal (la visualisation et son horloge). REE N04 Avril2006 Repères 1 LESAPPLICATIONSINDUSTRIELLES DES LOGICIELS LIBRES (2c'@'opartie) X-tJdem01'. C;x '. 'Mkt.k) lemol I F ; r mV,e.inrk ).iW. ([, ; vr,,') ' ! --( ta M-c--a -vW''a -/' " "\91II Ni'_ i C.(. ! I Amm ---------------------------------------------.' I ...'.. "J" M'A''' !T "..---'---------- M.31 i y Figure5. Schéma électrique non causal. Avec cescaractéristiques,la boîte à outil Scicos,incluse dansScilab et alliée à la puissancede Scilab et de son lan- gage,estun outil puissantet facile à utiliser pour la modéli- sationet la simulationdessystèmesphysiqueset dynamiques que les ingénieursdoivent très souventréaliser.Il existeun site Webdédiéà Scicos : www.scicos.org. 5. Le modèle de développement de Scilab Nous avons vu que Scilab, développé par des cher- cheurs, avait été mis librement sur Internet avec les sour- ces en 1994. Dans les annéesqui ont suivi, le succèsde Scilab est allé grandissant surtout dansle milieu universi- taire. A partir du site Web de Scilab, dès l'année 2000, environ 10 000 retraits mensuels du logiciel étaient constatés et nous en sommes aujourd'hui à plus de 15 000. Des milliers de sites Web référençaient déjà Scilab, des livres, des cours et des boîtes à outil étaient réalisées.Pour assurerce succèsil était nécessaired'ame- ner aussi les industriels à utiliser Scilab. 5.1. Le consortium Scilab Pour cela, il fallait avoir une structure qui permette : . de garantir la pérennité de Scilab ; . d'assurer la maintenance et le support ; . d'animer et de fédérer la communauté des contribu- teurs. Pour garantir cette pérennité, l'INRIA a décidé en 2003 de réunir des industriels et des universitaires autour de Scilab dans le cadre d'un consortium et de créer une équipe pour assurer la maintenance et le support de Scilab. Pour cela il était nécessaire d'avoir des moyens financiers. C'est ainsi que les entreprises et les universi- tés peuvent adhérer au consortium en payant une cotisa- tion annuelle : . 2 000 &Euro;par an pour les établissementsde moins de 50 personneset pour les universités et les écoles ; . 8 000 &Euro;par an pour les établissementsqui ont plus de 50 personneset moins de 500 personnes; . 25 000 &Euro;par an pour les établissements de plus de 500 personnes. En plus des membres qui payent une cotisation, des per- sonnesphysiques, appeléescontributeurs, peuvent adhérer gratuitement au consortium. Pour cela il faut qu'elles aient réalisé une contribution pour Scilab qui soit jugée importante et acceptéepar le consortium. Tous cesmembres ont desreprésentantsaux instances du consortium, comité de pilotage, conseil scientifique et groupes de travail. En mars 2006, le consortium comprend 20 membres : ANAGRAM TECHNOLOGIES, APPEDGE, AXS INGENIERIE, CEA, CNES, CRIL TECHNOLOGY, DASSAULT AVIATION, ECOLE POLYTECHNIQUE, EADS, EDF, ENPC, ESTEREL TECHNOLOGIES, IFP, INRIA, KLIPPEL, PSA PEUGEOT CITROËN, RENAULT, STYREL TECHNOLOGIES, THALES et TNI. Il comprend aussi 8 membres contributeurs. Il faut noter que l'INRIA s'engage fortement dans cette opération car il fournit la structure juridique du consortium, l'héberge, en réalise le support technique et administratif et enfin fournit 5 personnes dans l'équipe opérationnelle. Le point important est que le consortium est aujourd'hui l'architecte de Scilab, ce qui permet aux membres d'orienter le développement dans le sensqu'ils souhaitent. Comme autre avantageils n'ont pas la restric- tion sur la licence (voir §3) et ils ont un accèsprivilégié à l'équipe opérationnelle (aide, support). Enfin ils font par- tie d'une structure où ils peuvent échanger leur expé- rience dans le domaine du calcul et de la CAO. 5.2. L'équipe opérationnelle du consortium Le consortium dispose d'une équipe opérationnelle qui existe depuis le début de l'année 2003 sous la forme du projet de développement SCILAB de l'INRIA Rocquencourt. Elle comprend aujourd'hui neuf person- nes et doit arriver à terme jusqu'à quatorze personnes. Elle a pour but : . d'assurer le développement de basede Scilab, c'est- à-dire du noyau de Scilab et des boîtes à outils qui sont fournies en standardavec ; . d'assurer le suivi qualité de Scilab ; . de réaliser l'assistance de premier niveau ; . de réaliser la valorisation et la promotion de Scilab ainsi que l'animation scientifique. Cette équipe ne réalise ni service ni formation : c'est le rôle des SSII qui sont dans ou en dehors du consortium Scilab. Ces dernières peuvent aussi aider au passageou à l'introduction de Scilab dansl'entreprise. L'équipe Scilab ne développe pas non plus des boîtes à outils, mais elle peut aider à leur réalisation : c'est le rôle des contribu- teurs académiques,pour desdéveloppementsen général à la pointe de la recherche, ou bien des industriels pour des REE No 4 Avi il 2006 Scilab : un logiciel libre de calcul scientifique développements dédiés ou des applications métiers. Il est à noter qu'il est tout à fait possible de vendre une boîte à outil, même si Scilab est un logiciel libre. Mais ce qui est essentiel est que cette équipe réalise ce qu'attend tout utilisateur d'un éditeur de logiciel. C'est ce qui permet le développement d'un logiciel libre avec des normes professionnelles. 6. Le futur de Scilab Le consortium Scilab avec son équipe opérationnelle ont été créés en mai 2003. Depuis, le développement pro- fessionnel de Scilab s'est mis en place et a abouti à la réalisation de la version 4.0 de Scilab qui est sortie en fevrier 2006 et qui comporte des améliorations déjà consi- dérables surtout en matière d'ergonomie et de perfonnances avec la nouvelle interface graphique orientée objet et la nouvelle version Windows. Mais le travail n'est pas ter- miné et il est nécessaire d'accroïtre à la fois la notoriété de Scilab et ses fonctionnalités avec la prochaine version Scilab 5 prévue pour 2007 qui devrait inclure : . une documentation de qualité professionnelle ; . une IHM améliorée basée sur des bibliothèques modernes multi plates-formes comme Java ; . un SDK (Scilab Development Toolkit) afin de faci- liter l'utilisation de Scilab comme moteur dans des applications ; . une boîte à outils Scicos à l'ergonomie améliorée et avec de nouvelles fonctionnalités ; . des algorithmes performants. De plus Scilab continue son développement dans le monde : en Europe, en Amérique latine et en Asie. En particulier, depuis 2001, des actions importantes sont entreprises en Chine avec l'organisation annuelle d'un concours Scilab de la meilleure boîte à outils et depuis l'an dernier l'utilisation de Scilab dans un grand nombre de lycées pour les cours de mathématiques. Mais le consortium doit croître et intégrer plus de membres internationaux. Cela permettra en particulier d'avoir une équipe opérationnelle qui aura les moyens d'atteindre les buts fixés et surtout de faire de Scilab une référence internationale. L'auteur ClaudeGomezestsortiInoénleur de l'École Centralede Parisen 1977 Il est à l'INRIA (Institut Nationalde Rechercheen Informatiqueet en Automat ! que) deputs1978où il est actuelle- mentdirecteurderecherche.Ilad'abordtravaillédansledomaine des équationsauxdérivéespartielles, puis ils'estintéresséaux liensentrecalcul formelet calcul numérique. Il est impliquédans le développementde Scilab depuis1990.Aujourd'hui ilestdirec- teur techniquedu consortiumScilabet responsablede l'équipe SCILABàl'INRIA-Rocquencourt REE No 4 Avril 2006