Scilab

Scilab


Bildschirmfoto von Scilab
Basisdaten

EntwicklerScilab Enterprises
Aktuelle Version2023.1[1] (23. Mai 2023)
BetriebssystemLinux, Unix, macOS, BSD, Windows
Programmier­spracheC++[2], C, Java, Fortran, Tcl
KategorieNumerische Mathematik
LizenzGPL v2.0
deutschsprachigja
www.scilab.org

Scilab ist ein freies Softwarepaket für Anwendungen aus der numerischen Mathematik, das ehemals am Institut national de recherche en informatique et en automatique (INRIA) in Frankreich seit 1990 als Alternative zu MATLAB entwickelt wurde und seit 2003 vom Scilab-Konsortium weiterentwickelt wird. Im Juli 2008 schloss sich das Scilab-Konsortium der Digiteo Foundation an; seit Juli 2012 erfolgt die Herausgabe und Entwicklung durch Scilab Enterprises[3]. 2017 wurde Scilab Enterprises von der Firma ESI Group akquiriert.[4]

Xcos ist die Alternative zu Simulink, die ebenfalls ein freies Softwarepaket ist und auch ursprünglich vom INRIA entwickelt wurde.

Die Funktionalität und Syntax von Scilab/Xcos ist zu weiten Teilen mit der von MATLAB/Simulink identisch, und es gibt Konverter von MATLAB nach Scilab. Scilab wird u. a. für technische und wissenschaftliche Anwendungen in Lehre, Forschung und Industrie eingesetzt. Scilab stellt von sich aus u. a. Funktionen für folgende Bereiche bereit: 2D- und 3D-Plots aller gängigen Formen auf der Grundlage von JOGL[5], numerische lineare Algebra, Polynom-Berechnungen, Statistik, Regelungstechnik, digitale Signalverarbeitung, sowie I/O-Funktionen zum Lesen und Schreiben von Daten, unter anderem auch als Sounddateien im WAVE-Dateiformat. Darüber hinaus existiert eine Vielzahl fertiger Scilab/Xcos-Lösungsskripte und Funktionsbibliotheken von Anwendern aus aller Welt.

Implementiert ist Scilab/Xcos in C, erweiterbar ist es aber auch durch Module, die in Scilab/Xcos selbst oder in anderen Sprachen verfasst wurden, z. B. Fortran, Python mit SciPy oder C, für die definierte Schnittstellen existieren. Es liefert definierte Schnittstellen zu bereits verfügbaren oder selbst frei programmierbaren Toolkits (Toolboxen) wie SPI, LabVIEW, Modelica, aber auch MuPAD. Mit Erscheinen der Version 5.0 wurden viele graphische Funktionalitäten sowie die Benutzeroberfläche in Java neu programmiert.

Mit der Version 2023.0 wurde das Namenssystem auf das Jahr des Erscheinens umgestellt.

Abgrenzung

Aufgrund der kaum vorhandenen algebraischen Funktionalitäten gehört Scilab nicht zu den Computeralgebrasystem (CAS) wie zum Beispiel Maxima, Maple oder Mathematica, die (im Unterschied zur rein numerischen Mathematik) auch symbolische Verfahren unterstützen.

Zusatzpakete

Im Lieferumfang von Scilab sind mächtige zusätzliche Werkzeuge verfügbar, so unter anderem:

  • SciNotes, ein speziell für Scilab entwickelter Texteditor und Debugger, der das Bearbeiten von Scilab-Skripten vereinfacht. Er unterstützt unter anderem:
    • Hervorheben der Scilab-Syntax
    • Automatische Identifizierung von Funktionen
    • Autovervollständigung
    • Direktes Ausführen von Skripten in Scilab
    • Registernavigation
    • Kommentarfunktion von Zeilen und Absätzen
    • Zeilennummerierung
    • Hilfefunktion
  • Xcos (ehemals Scicos), ein Programmpaket ähnlich Simulink, zur graphischen Modellierung und Simulation dynamischer Systeme. Xcos 1.0 basiert auf Scicos 4.2 und ist zu diesem vollständig kompatibel.[6] Xcos enthält eine Sammlung graphischer Icons. Diese lassen sich ähnlich einer elektronischen Schaltung miteinander verdrahten. Es wird dabei unterschieden zwischen Zeitinformationen (rote Leitungen) und den eigentlichen Signalen (blaue Leitungen). So erstellte Programme bzw. Blockschaltbilder lassen sich auch in ein C-Programm umwandeln. Mit einem entsprechenden C-Compiler lassen sich die Programme dann auf jede beliebige Zielplattform, zum Beispiel auch auf Mikrocontroller, übertragen. Die aktuelle Scicos-Version 4.4 (Dezember 2009) ist in der ebenfalls freien, auf Scilab 4.1.2 basierenden, Entwicklungsumgebung ScicosLab verfügbar. Es steht ein freier Compiler für Modelica-Modelle zur Verfügung, der es erlaubt, Modelica-Modelle direkt in Scilab/Xcos zu verwenden und zu bearbeiten.[7][8]
  • ATOMS (engl.: AutomaTic mOdules Management for Scilab) ermöglicht das automatische Installieren und Aktualisieren von weiteren zusätzlichen Programmpaketen.

Syntax

Die Scilab-Syntax basiert weitestgehend auf der MATLAB-Programmiersprache. Die einfachste Möglichkeit, Scilab-Anweisungen auszuführen, ist, diese direkt an der Eingabeaufforderung >> im graphischen Eingabefenster einzutippen. Auf diese Weise kann Scilab als interaktive mathematische Shell benutzt werden.

Anwendungsbeispiele

Im Beispiel werden komplexe Wechselstromrechnungen ausgeführt.

 -->f=100;R=1000; C=1e-6;
 -->ZR=R;ZC=1/(2*%pi*f*C*%i); // Komplexer    Wechselstromwiderstand
 -->Z=ZR+ZC                         // Reihenschaltung R und C
 Z  =
    1000. - 1591.5494i
 -->Scheinwiderstand=abs(Z)         // Scheinwiderstand
 Scheinwiderstand  =
    1879.6355
 -->Phase=atan(imag(Z)/real(Z))*360/(2*%pi)  // Phase in Grad
 Phase  =
  - 57.858092
 -->
  • Matrizen: Scilab stellt für alle Matrixoperationen entsprechende Funktionen bereit. Im Beispiel wird die Matrix A deklariert, deren Inverse mit der Funktion inv(A) berechnet und der Variablen B zugewiesen. Die Multiplikation beider Matrizen ergibt die Einheitsmatrix.
 -->A=[0 1;2 4]
 A  =
 !   0.    1. !
 !   2.    4. !
 -->B=inv(A)   // Inverse
 B  =
 ! - 2.     .5 !
 !   1.    0.  !
 -->A*B
 ans  =
 !   1.    0. !
 !   0.    1. !
 -->

Siehe auch

Literatur

  • Stephen Campbell, Jean-Philippe Chancelier, Ramine Nikoukhah: Modeling and Simulation in Scilab/Scicos. 1. Auflage. Springer Verlag, Berlin 2005, ISBN 0-387-27802-8 (englisch). Die 2. Auflage vom 22. Dezember 2009 berücksichtigt auch das Einbinden von Modelica-Modellen, ISBN 978-1-4419-5526-5
  • Jean-Marie Zogg: Arbeiten mit Scilab und Scicos (Scilab für numerische Berechnungen, Scicos für grafische Simulationen). HTW-Verlag, 2007, 125 Seiten, (deutsch), freier Download
  • Peter Beater: Regelungstechnik und Simulationstechnik mit Scilab und Modelica: Eine beispielorientierte Einführung für Studenten und Anwender. Books on Demand, 1. Auflage, 7. Januar 2010, deutsch, ISBN 978-3-8370-5010-3
  • Claude Gomez, Carey Bunks, Jean-Philippe Chancelier, François Delebecque: Engineering and Scientific Computing with Scilab, mit Softwarepaket Scilab/Scicos und allen Beispielen auf CD-ROM, 1. Auflage. Birkhäuser Verlag, 1999, ISBN 3-7643-4009-6 (englisch)
  • Wolfgang Polifke, Jan Kopitz: Wärmeübertragung. Grundlagen, analytische und numerische Methoden, mit Software Paket Scilab/Scicos und allen Beispielen auf CD-ROM. Pearson Studium Verlag, 1. Auflage. 2005, ISBN 3-8273-7104-X (deutsch)

Weblinks

Commons: Scilab – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. https://www.scilab.org/download/scilab-2023.1.0
  2. The scilab Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
  3. scilab.org (Memento desOriginals vom 17. März 2013 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.scilab.org Geschichte
  4. ESI-Group: Acquisition of Scilab Enterprises, publisher of Scilab open source analytical computational software. Archiviert vom Original (nicht mehr online verfügbar) am 1. September 2018; abgerufen am 1. September 2018.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.esi-group.com
  5. scilab.org Informationen SciRenderer
  6. scilab.org Informationen zu Xcos
  7. help.scilab.org MBLOCK: Modelica generic block Einbindung.
  8. scilab.org@1@2Vorlage:Toter Link/www.scilab.org (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche in Webarchiven) A free Modelica compiler which enables the simulation of implicit diagrams.

Auf dieser Seite verwendete Medien

Screenshot scilab 3.png
Scilab screenshot
Scilab Logo.png
Logo von Scilab