1.2 Geschichtliches [8]

Die lineare Algebra, insbesondere Matrix-Algebra, ist beim wissenschaftlichen Rechnen von grosser Bedeutung, weil die Lösung vieler Probleme sich aus Grundaufgaben aus diesem Gebiet zusammensetzt. Diese sind im wesentlichen Matrixoperationen, Lösen von linearen Gleichungssystemen und Eigenwertprobleme.

Diese Tatsache wurde früh erkannt und es wurde deshalb schon in den 60-er Jahren an einer Programmbibliothek für lineare Algebra gearbeitet. Damals existierten für wissenschaftliches Rechnen nur die beiden Programmiersprachen ALGOL 60 und FORTRAN. Eine Reihe ``Handbook for Automatic Computation'' wurde im Springer-Verlag begonnen mit dem Ziel, eines Tages eine vollständige Bibliothek von Computerprogrammen zu enthalten. Man einigte sich als Dokumentationssprache auf ALGOL, denn

indeed, a correct ALGOL program is the abstractum of a computing process for which the necessary analyses have already been performed. 1.1

Band 1 des Handbuches besteht aus zwei Teilen: in Teil A beschreibt H. Rutishauser die Referenzsprache unter dem Titel ``Description of ALGOL 60'' [17], in Teil B ``Translation of ALGOL 60'' geben die drei Autoren Grau, Hill und Langmaack [9] eine Anleitung zum Bau eines Compilers.

Der zweite Band des Handbuches, redigiert von Wilkinson und Reinsch, erschien 1971. Er enthält unter dem Titel ``Linear Algebra'' [21] verschiedene Prozeduren zur Lösung von linearen Gleichungssystemen und Eigenwertproblemen.

Leider wurde die Handbuchreihe nicht mehr fortgesetzt, weil die stürmische Entwicklung und Ausbreitung der Informatik eine weitere Koordination verunmöglichte.

Wegen der Sprachentrennung Europa - USA:

The code itself has to be in FORTRAN, which is the language for scientific programming in the United States.1.2
wurde Ende der siebziger Jahren am Argonne National Laboratory das LINPACK Projekt durchgeführt. LINPACK enthält Programme zur Lösung von vollbesetzten linearen Gleichungssystemen. Sie stützen sich auf die Prozeduren des Handbuchs ab, sind jedoch neu und systematisch in FORTRAN programmiert. Dies äussert sich in einheitlichen Konventionen für Namengebung, Portabilität und Maschinenunabhängigkeit (z.B. Abbruchkriterien), Verwendung von elementaren Operationen mittels Aufruf der BLAS (Basic linear Algebra Subprograms). Der LINPACK Users' Guide erschien 1979 [2]. LINPACK steht auch für den Namen Name eines Benchmarks zur Leistungsmessung eines Rechners im Bereich der Fliesskommaoperationen. Früher bestand dieser Benchmark aus zwei Teilen: Einerseits musste ein vorgegebenes FORTRAN Programm zur Lösung eines voll besetzten $ 100\times 100$ linearen Gleichungssystem kompiliert und ausgeführt werden, andererseits musste ein $ 1000\times
1000$ Gleichungssystem möglichst schnell (mit beliebig angepasstem Programm) gelöst werden. Dieser Benchmark wird heute in veränderter Form zur Bestimmung der 500 leistungsfähigsten Computer auf der Welt benützt, die in die halbjährlich nachgeführte top500-Liste aufgenommen werden, siehe http://www.top500.org.

Auch die Eigenwertprozeduren aus [21] wurden in FORTRAN übersetzt und sind unter dem Namen EISPACK erhältlich [20,6]. EISPACK und LINPACK sind vor einigen Jahren von LAPACK [1] abgelöst worden. Elektronisch kann man LINPACK-, EISPACK- und LAPACK-Prozeduren (und viele mehr) von der on-line Software-Bibliothek NETLIB [22] erhalten, siehe http://www.netlib.org.

Ende der siebziger Jahre entwickelte Cleve Moler das interaktive Programm MATLAB (MATrix LABoratory), zunächst nur mit der Absicht, es als bequehmes Rechenhilfsmittel in Vorlesungen und Übungen einzusetzen. Grundlage dafür waren Programme aus LINPACK und EISPACK. Weil Effizienzüberlegungen nicht im Vordergrund standen, wurden nur acht Prozeduren aus LINPACK und fünf aus EISPACK für Berechnungen mit vollen Matrizen verwendet. MATLAB hat sich nicht nur im Unterricht als sehr gutes Hilfsmittel etabliert, sondern wird entgegen der ursprünglichen Absicht heute auch in Industrie und Forschung eingesetzt. Das ursprüngliche in Fortran geschriebene public domain MATLAB [13] wurde von der Firma MathWorks vollständig neu überarbeitet, erweitert und zu einem effizienten Ingenieurwerkzeug gestaltet [14]. Es ist jetzt in C geschrieben.

Diese Philosophie beim Entwickeln von MATLAB hat dazu geführt, dass laufend neue Funktionen-Pakete (sog. toolboxes) für verschiedene Anwendungsgebiete geschrieben werden. Diese Pakete sind zu einem kleinen Teil öffentlich (erhältlich via netlib) zum grössten Teil werden sie aber von The MathWorks selber bietet verschiedene sog. toolboxes an. Die neueste Information findet man immer auf der WWW-Homepage von The MathWorks [23]. Natürlich kann auch jeder Benützer MATLAB durch eigene Funktionen nach seinen Anforderungen erweitern.

Vergleiche von MATLAB mit anderen ähnlichen Systemen findet man z.B. bei Higham [10] oder bei Simon und Wilson [19].

Alternativen zu MATLAB im public domain sind Scilab (|www.scilab.org|), welches sich recht nahe an MATLAB anlehnt. Ebenfalls gibt es Octave (|www.octave.org|), welches aber anscheinend nicht weiterentwickelt wird. Im Statistik-Bereich gibt es die Umgebung R, siehe http://www.r-project.org/.

Peter Arbenz 2008-09-24