# Scilab

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. 2017 wurde Scilab Enterprises von der Firma ESI Group akquiriert.
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, 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. 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.
* 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

* Arithmetische Berechnungen: Zahlenwerte können in Variablen gespeichert werden. Spezielle Konstanten sind %i für die imaginäre Einheit $\mathrm {i}$ mit $\mathrm {i} ^{2}=-1$ und %pi für die Kreiszahl $\pi$. Daneben stehen noch alle bekannten elementaren Funktionen zur Verfügung.
Im Beispiel werden komplexe Wechselstromrechnungen ausgeführt.
* 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.