Matlab

kommerzielle Software zur Lösung mathematischer Probleme und zur Darstellung der Ergebnisse

Matlab (Eigenschreibweise: MATLAB) ist eine kommerzielle Software des US-amerikanischen Unternehmens MathWorks zur Lösung mathematischer Probleme und zur grafischen Darstellung der Ergebnisse. Matlab ist vor allem für numerische Berechnungen mithilfe von Matrizen ausgelegt, woher sich auch der Name ableitet: MATrix LABoratory.

Matlab

Basisdaten

Entwickler The MathWorks, Inc.
Erscheinungsjahr 1984
Aktuelle Version R2024b[1]
(12. September 2024)
Betriebssystem Windows[2], macOS[2], Linux (ausschließlich RHEL, SLES, Ubuntu)[2][3][4]
Programmier­sprache C, C++, Fortran, Java
Kategorie Mathematik, Regelungstechnik, Modellbildung
Lizenz proprietäre Lizenz[5]
deutschsprachig nein
www.mathworks.com/products/matlab.html

Entstehung

Bearbeiten

Matlab wurde Ende der 1970er Jahre von Cleve Moler an der Universität New Mexico entwickelt, um den Studenten die Fortran-Bibliotheken LINPACK und EISPACK für lineare Algebra von einer Kommandozeile aus ohne Programmierkenntnisse in Fortran zugänglich zu machen. Zusammen mit Jack Little und Steve Bangert gründete Moler 1984 The MathWorks und machte Matlab zu einem kommerziellen Produkt, das zusammen mit einer ersten Funktionssammlung, der Control System Toolbox, vor allem in der Regelungstechnik viele Anwender fand. Die akademische Bindung ist in der Entwicklung und im Vertrieb von relativ preisgünstigen Studentenversionen bis heute erhalten geblieben und war möglicherweise auch die Grundlage für den Erfolg der Software neben anderen numerischen Plattformen wie MatrixX. Die von Matlab verwendeten Bibliotheken LINPACK und EISPACK wurden im Jahr 2000 durch die ebenfalls in Fortran geschriebenen freien Bibliotheken LAPACK und BLAS ersetzt.[6]

Matlab dient im Gegensatz zu Computeralgebrasystemen nicht der symbolischen, sondern vorrangig der numerischen (zahlenmäßigen) Lösung von Problemen. Die Software wird in der Industrie und an Hochschulen vor allem für numerische Simulation sowie Datenerfassung, Datenanalyse und -auswertung eingesetzt. Ein weiterer Anwendungsschwerpunkt sind die Wirtschaftswissenschaften, für die Mathworks Erweiterungspakete (z. B. Ökonometrie und Finanzmarkttheorie) bereitstellt.

Matlab ist auch die Basis für Simulink, ein anderes Produkt des Unternehmens The MathWorks, das zur zeitgesteuerten Simulation dient, und Stateflow, das für die ereignisorientierte Simulation benutzt wird, sowie für zahlreiche anwendungs- und domänenspezifische Erweiterungen.

Struktur und Toolboxes

Bearbeiten

Programmiert wird unter Matlab in einer proprietären Programmiersprache, die auf der jeweiligen Maschine (Computer) interpretiert wird. Kleinere Programme können als sogenannte Skripte oder Funktionen zu geschlossenen Einheiten verpackt werden, was das Erstellen von anwendungsorientierten „Werkzeugkisten“ (Toolboxes) erlaubt.

Viele solcher Pakete sind auch kommerziell erhältlich. Durch die vereinfachte, mathematisch orientierte Syntax der Matlab-Skriptsprache und die umfangreichen Funktionsbibliotheken für zum Beispiel Statistik, Signal- und Bildverarbeitung ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z. B. unter C. Ein Beispiel ist die Symbolic Toolbox zur Nutzung symbolischer Ausdrücke im Gegensatz zu mit Zahlen belegten Variablen. Ferner gibt es Schnittstellen, um C-Code einzubinden, sowie einen Compiler, mit dem aus einem Skript unabhängig von Matlab lauffähiger C-Code erstellt werden kann. Damit können mathematisch aufwendige Module für C-Projekte in der Matlab-Umgebung entwickelt und getestet werden.

Matlab bietet aus der objektorientierten Programmierung die Konzepte von Klassen, Vererbung, Pakete und Call-by-value-Aufrufen.[7]

Matlab besteht neben der Sprache Matlab aus einer grafischen Desktop-Umgebung, um verschiedene Ansichten wie Variablen, Plots und Code auf einen Blick sehen und viele Aufgaben durch Mausinteraktion und Tastaturkürzel bewältigen zu können.

Zusammenspiel mit anderen Sprachen

Bearbeiten

Matlab kann Funktionen etwa in C oder Fortran aufrufen. Dazu muss eine Adapter-Funktion (die sogenannte mexFunction) enthalten sein, die die Übergabe von Parametern und Rückgabewerten steuert.[8]

Bibliotheken in Java, ActiveX, .Net-Framework oder Python können direkt aus Matlab aufgerufen werden. Viele Bibliotheken in Matlab, wie beispielsweise jene für die Anbindung von XML oder SQL, sind als Adapter um Java oder ActiveX aufgebaut. Über den Matlab-Compiler und sogenannte Builder-Addons kann auch die umgekehrte Richtung genutzt werden und man kann aus JAVA oder .NET heraus Funktionen und Code in Matlab aufrufen.[9]

Als Alternative zur MuPAD-basierten Symbolic Math Toolbox (ebenfalls von MathWorks) kann Matlab auch an Maple oder Mathematica angeschlossen werden.

Alternativen

Bearbeiten

Da Matlab als Sprache ab Version 6 auf den quelloffenen Bibliotheken LAPACK und BLAS basiert, existieren mittlerweile mehrere kostenlose Alternativen zu Matlab mit gleicher numerischer Qualität. Diese Alternativen fokussieren sich oft auf die Möglichkeiten als Programmiersprache. Vom französischen INRIA (Institut National de Recherche en Informatique et en Automatique) stammt die Alternative Scilab/Xcos. Im Bereich der freien Software gibt es mehrere quelloffene Projekte, welche die Funktionalität von Matlab nachbilden und einzelne Aspekte hervorheben. Diese Projekte streben oft keine direkte Kompatibilität an; die Unterschiede zu Matlab variieren. Im Rahmen des GNU-Projektes ist GNU Octave entstanden, das in weiten Teilen codekompatibel zu Matlab ist. Ein anderes ist das Softwarepaket FreeMat.

Matplotlib und NumPy sind Python-Bibliotheken, die Python zur Matlab-Alternative ausbauen. Numpy basiert ebenfalls auf LAPACK und BLAS. Die Syntax von Python/numpy unterscheidet sich von Matlab, möchte jedoch vergleichbar einfach sein.[10]

Zwei weitere Alternativen sind Scala, eine JVM-basierte Programmiersprache, und ILNumerics, das auf .NET aufsetzt.

Eine neue Alternative zu Matlab ist die in der Syntax ähnliche Programmiersprache Julia.

Die größeren Computeralgebrasysteme, die in erster Linie für symbolische Berechnungen gedacht sind, enthalten auch numerische Algorithmen; als Beispiele seien Maple, Maxima und Mathematica genannt.

Versionsgeschichte

Bearbeiten
Version[11] Release Nr. mitgelieferte JVM Jahr Veröff.-Datum
5.0 Volume 8 1996 Dezember 1996
5.1 Volume 9 1997 Mai 1997
5.1.1 R9.1
5.2 R10 1998 März 1998
5.2.1 R10.1
5.3 R11 1999 Januar 1999
5.3.1 R11.1 November 1999
6.0 R12 12 1.1.8 2000 November 2000
6.1 R12.1 1.3.0 2001 Juni 2001
6.5 R13 13 1.3.1 2002 Juli 2002
6.5.1 R13SP1 2003
6.5.2 R13SP2
7 R14 14 1.4.2 2004 Juni 2004
7.0.1 R14SP1 Oktober 2004
R14SP1+ 2004 November 2004
7.0.4 R14SP2 1.5.0 2005 7. März 2005
7.1 R14SP3 1.5.0 1. September 2005
7.2 R2006a 15 1.5.0 2006 1. März 2006
7.3 R2006b 16 1.5.0 1. September 2006
7.4 R2007a 17 1.5.0_07 2007 1. März 2007
7.5 R2007b 18 1.6.0 1. September 2007
7.6 R2008a 19 1.6.0 2008 1. März 2008
7.7 R2008b 20 1.6.0_04 9. Oktober 2008
7.8 R2009a 21 1.6.0_04 2009 6. März 2009
7.9 R2009b 22 1.6.0_12 4. September 2009
7.9.1 R2009bSP1 1.6.0_12 2010 1. April 2010
7.10 R2010a 23 1.6.0_12 5. März 2010
7.11 R2010b 24 1.6.0_17 3. September 2010
7.11.1 R2010bSP1 1.6.0_17 2011 17. März 2011
7.11.2 R2010bSP2 1.6.0_17 5. April 2012[12]
7.12 R2011a 25 1.6.0_17 8. April 2011
7.13 R2011b 26 1.6.0_17 1. September 2011
7.14 R2012a 27 1.6.0_17 2012 1. März 2012
8 R2012b 28 1.6.0_17 11. September 2012
8.1 R2013a 29 1.6.0_17 2013 7. März 2013
8.2 R2013b 30 1.7.0_11 6. September 2013[13]
8.3 R2014a 31 1.7.0_11 2014 7. März 2014[14]
8.4 R2014b 32 1.7.0_11 3. Oktober 2014
8.5 R2015a 33 1.7.0_60 2015 5. März 2015
8.5 R2015aSP1 1.7.0_60 14. Oktober 2015
8.6 R2015b 34 1.7.0_60 3. September 2015
9.0 R2016a 35 1.7.0_60 2016 3. März 2016
9.1 R2016b 36 1.7.0_60 15. September 2016
9.2 R2017a 37 1.7.0_60 2017 9. März 2017
9.3 R2017b 38 1.8.0_121 21. September 2017
9.4 R2018a 39 1.8.0_144 2018 15. März 2018[15]
9.5 R2018b 40 1.8.0_152 12. September 2018
9.6 R2019a 41 1.8.0_181 2019 20. März 2019
9.7 R2019b 42 1.8.0_202 11. September 2019
9.8 R2020a 43 2020 19. März 2020
9.9 R2020b 44 17. September 2020
9.10 R2021a 45 2021 11. März 2021
9.11 R2021b 46 22. September 2021
9.12.0 R2022a 47 2022 9. März 2022
9.13 R2022b 48 1.8.0_202 24. August 2022
9.14.0 R2023a 49 2023 16. März 2023

Literatur

Bearbeiten
Bearbeiten

Einzelnachweise

Bearbeiten
  1. www.mathworks.com. (abgerufen am 15. September 2024).
  2. a b c Platform Road Map for MATLAB and Simulink Product Families. Abgerufen am 22. Dezember 2021 (englisch).
  3. MatLab support on Fedora -. Abgerufen am 22. Dezember 2021.
  4. Is MATLAB officially supported on Solaris for the x86 family of processors? -. Abgerufen am 22. Dezember 2021.
  5. fr.mathworks.com.
  6. Matlab News & Notes - Winter 2000@1@2Vorlage:Toter Link/www.mathworks.de (Seite nicht mehr abrufbar, festgestellt im April 2019. Suche in Webarchiven) (englisch)
  7. MATLAB Documentation. Abgerufen am 23. Juni 2017.
  8. Dan Spielman: Connecting C and Matlab. Yale University, Computer Science Department, 10. Februar 2004, abgerufen am 20. Mai 2008.
  9. Matlab Builder JA MathWorks
  10. Numpy for Matlab Users (englisch)
  11. Cleve Moler: The Growth of MATLAB and The MathWorks over Two Decades. In: News & Notes Newsletter. MathWorks, Januar 2006, abgerufen am 14. August 2013.
  12. What's New in Release 2010b. MathWorks, archiviert vom Original am 25. November 2015; abgerufen am 22. Januar 2014.
  13. MathWorks Announces Release 2013b of the MATLAB and Simulink Product Families. MathWorks, September 2013;.
  14. MathWorks Announces Release 2014a of the MATLAB and Simulink Product Families. MathWorks, abgerufen am 11. März 2014.
  15. MathWorks Announces Release 2018a of the MATLAB and Simulink Product Families. MathWorks, abgerufen am 5. April 2018.