In der Mathematik versteht man unter einer Matrix (Plural Matrizen) eine rechteckige Anordnung (Tabelle) von Elementen (meist mathematischer Objekte, etwa Zahlen). Rechteckig bedeutet, dass die Anordnung der Elemente in Zeilen und Spalten stattfindet. Das Element einer Matrix in der -ten Zeile und -ten Spalte wird mit bezeichnet. Mit den Objekten einer Matrix lässt sich dann in bestimmter Weise rechnen, indem man Matrizen zum Beispiel addiert oder miteinander multipliziert.
Matrizen sind ein Schlüsselkonzept der linearen Algebra und tauchen in fast allen Gebieten der Mathematik auf. Sie stellen Zusammenhänge, in denen Linearkombinationen eine Rolle spielen, übersichtlich dar und erleichtern damit Rechen- und Gedankenvorgänge. Sie werden insbesondere dazu benutzt, lineare Abbildungen darzustellen und lineare Gleichungssysteme zu beschreiben und zu lösen.
Der Name „Matrix“ (lateinisch für „Muttertier“, „Gebärmutter“, abgeleitet von mater – Mutter) wurde 1850 von James Joseph Sylvester geprägt.
Eine Anordnung, wie in nebenstehender Abbildung, von Elementen erfolgt in Zeilen und Spalten. Die Verallgemeinerung auf mehr als zwei Indizes wird auch Hypermatrix genannt.
Begriffe und erste Eigenschaften
Notation
Als Notation hat sich die Anordnung der Elemente in Zeilen und Spalten zwischen zwei großen öffnenden und schließenden Klammern durchgesetzt. In der Regel verwendet man runde Klammern, es werden aber auch eckige verwendet. Zum Beispiel bezeichnen
- und
Matrizen mit zwei Zeilen und drei Spalten. Matrizen werden üblicherweise mit Großbuchstaben (manchmal fett gedruckt oder, handschriftlich, einfach oder doppelt unterstrichen), vorzugsweise , bezeichnet. Eine Matrix mit m Zeilen und n Spalten nennt man eine Matrix vom Typ (m,n) oder kurz (m,n)-Matrix. Auch m×n-Matrix oder m × n-Matrix sind verbreitet. Man schreibt sie
- .
Elemente der Matrix
Ein nennt man Matrixelement oder kurz Element, neuerdings auch Matrixeintrag oder kurz Eintrag. Auch Matrixkomponente oder kurz Komponente werden verwendet. Insbesondere im Fall von (m,1)- oder (1,n)-Matrizen ist der Name Komponente verbreitet. Bei Tensoren spricht man auch von Tensorkoordinate oder kurz Koordinate.
Die Elemente können sowohl reelle als auch komplexe Zahlen sein, aber auch andere mathematische Objekte, z. B. Vektoren, Polynome, Differentiale, andere Formeln oder selbst wieder Matrizen.
Ein bestimmtes Element beschreibt man durch zwei Indizes, meist ist das Element in der ersten Zeile und der ersten Spalte durch beschrieben. Allgemein bezeichnet das Element in der -ten Zeile und der -ten Spalte. Bei der Indizierung wird dabei stets als erstes der Zeilenindex und als zweites der Spaltenindex des Elements genannt. Merkregel: Zeile zuerst, Spalte später. Wenn Verwechslungsgefahr besteht, werden die beiden Indizes mit einem Komma abgetrennt. So wird zum Beispiel das Matrixelement in der ersten Zeile und der elften Spalte mit bezeichnet.
Einzelne Zeilen und Spalten werden oft als Spalten- oder Zeilenvektoren bezeichnet. Ein Beispiel:
- hier sind und die Spalten oder Spaltenvektoren sowie und die Zeilen oder Zeilenvektoren.
Bei einzeln stehenden Zeilen- und Spaltenvektoren einer Matrix wird gelegentlich der unveränderliche Index weggelassen. Manchmal werden Spaltenvektoren zur kompakteren Darstellung als transponierte Zeilenvektoren geschrieben, also:
- oder als oder
Typ
Der Typ einer Matrix ergibt sich aus der Anzahl ihrer Zeilen und Spalten. Eine Matrix mit Zeilen und Spalten nennt man eine -Matrix (sprich: m-mal-n- oder m-Kreuz-n-Matrix). Stimmen Zeilen- und Spaltenanzahl überein, so spricht man von einer quadratischen Matrix.
Eine Matrix, die aus nur einer Spalte oder nur einer Zeile besteht, wird üblicherweise als Vektor aufgefasst. Einen Vektor mit Elementen kann man je nach Kontext als einspaltige -Matrix oder einzeilige -Matrix darstellen. Neben den Begriffen Spaltenvektor und Zeilenvektor sind hierfür die Begriffe Spaltenmatrix und Zeilenmatrix geläufig. Eine -Matrix ist sowohl Spalten- als auch Zeilenmatrix und wird als Skalar angesehen.
Formale Darstellung
Eine Matrix ist eine doppelt indizierte Familie. Formal ist dies eine Funktion
die jedem Indexpaar als Funktionswert das Element zuordnet. Beispielsweise wird dem Indexpaar als Funktionswert das Element zugeordnet. Der Funktionswert ist also das Element in der -ten Zeile und der -ten Spalte. Die Variablen und entsprechen der Anzahl der Zeilen bzw. Spalten. Nicht zu verwechseln mit dieser formalen Definition einer Matrix als Funktion ist, dass Matrizen selbst lineare Abbildungen beschreiben.
Die Menge aller -Matrizen über der Menge wird in üblicher mathematischer Notation auch geschrieben; hierfür hat sich die Kurznotation eingebürgert. Manchmal werden die Schreibweisen oder seltener benutzt.
Addition und Multiplikation
Auf dem Raum der Matrizen werden elementare Rechenoperationen definiert.
Matrizenaddition
Zwei Matrizen können addiert werden, wenn sie vom selben Typ sind, das heißt, wenn sie dieselbe Anzahl von Zeilen und dieselbe Anzahl von Spalten besitzen. Die Summe zweier -Matrizen ist komponentenweise definiert:
Rechenbeispiel:
In der linearen Algebra sind die Matrixelemente üblicherweise Elemente eines Körpers (Körperelemente), wie der reellen oder komplexen Zahlen. In diesem Fall ist die Matrizenaddition assoziativ, kommutativ und besitzt mit der Nullmatrix ein neutrales Element. Im Allgemeinen besitzt die Matrizenaddition diese Eigenschaften jedoch nur, wenn die Matrixelemente Körperelemente einer algebraischen Struktur sind, die diese Eigenschaften hat.
Skalarmultiplikation
Eine Matrix wird mit einem Skalar multipliziert, indem jedes Element der Matrix mit dem Skalar multipliziert wird:
Rechenbeispiel:
Die Skalarmultiplikation darf nicht mit dem Skalarprodukt verwechselt werden. Um die Skalarmultiplikation durchführen zu dürfen, müssen der Skalar und die Matrixelemente demselben Ring entstammen. Die Menge der -Matrizen ist in diesem Fall ein (Links-)Modul über
Matrizenmultiplikation
Zwei Matrizen können multipliziert werden, wenn die Spaltenanzahl der linken mit der Zeilenanzahl der rechten Matrix übereinstimmt. Das Produkt einer -Matrix und einer -Matrix ist eine -Matrix deren Elemente berechnet werden, indem die Produktsummenformel, ähnlich dem Skalarprodukt, auf Paare aus einem Zeilenvektor der ersten und einem Spaltenvektor der zweiten Matrix angewandt wird:
Die Matrizenmultiplikation ist nicht kommutativ, d. h., im Allgemeinen gilt . Die Matrizenmultiplikation ist allerdings assoziativ, d. h., es gilt stets:
Eine Kette von Matrix-Multiplikationen kann daher unterschiedlich geklammert werden. Das Problem, eine Klammerung zu finden, die zu einer Berechnung mit der minimalen Anzahl von elementaren arithmetischen Operationen führt, ist ein Optimierungsproblem. Die Matrizenaddition und Matrizenmultiplikation genügen zudem den beiden Distributivgesetzen:
für alle -Matrizen und -Matrizen sowie
für alle -Matrizen und -Matrizen
Quadratische Matrizen können mit sich selbst multipliziert werden, analog zur Potenz bei den reellen Zahlen führt man abkürzend die Matrixpotenz oder ein. Damit ist es auch sinnvoll, quadratische Matrizen als Elemente in Polynome einzusetzen. Zu weitergehenden Ausführungen hierzu siehe unter Charakteristisches Polynom. Zur einfacheren Berechnung kann hier die jordansche Normalform verwendet werden. Quadratische Matrizen über oder kann man darüber hinaus sogar in Potenzreihen einsetzen, vgl. Matrixexponential. Eine besondere Rolle bezüglich der Matrizenmultiplikation spielen die quadratischen Matrizen über einem Ring , also . Diese bilden selbst mit der Matrizenaddition und -multiplikation wiederum einen Ring, der Matrizenring genannt wird.
Weitere Rechenoperationen
Transponierte Matrix
Die Transponierte einer -Matrix ist die -Matrix , das heißt, zu
ist
die Transponierte. Man schreibt also die erste Zeile als erste Spalte, die zweite Zeile als zweite Spalte usw. Die Matrix wird an ihrer Hauptdiagonalen gespiegelt. Es gelten die folgenden Rechenregeln:
Bei Matrizen über ist die adjungierte Matrix genau die transponierte Matrix.
Inverse Matrix
Falls die Determinante einer quadratischen -Matrix über einem Körper nicht gleich null ist, d. h., falls , so existiert die zur Matrix inverse Matrix . Für diese gilt
- ,
wobei die -Einheitsmatrix ist. Matrizen, die eine inverse Matrix besitzen, bezeichnet man als invertierbare oder reguläre Matrizen. Diese haben vollen Rang. Umgekehrt werden nichtinvertierbare Matrizen als singuläre Matrizen bezeichnet. Eine Verallgemeinerung der Inversen für singuläre Matrizen sind sog. pseudoinverse Matrizen.
Vektor-Vektor-Produkte
Das Matrixprodukt zweier -Vektoren und ist nicht definiert, da die Anzahl der Spalten von im Allgemeinen ungleich der Anzahl der Zeilen von ist. Die beiden Produkte und existieren jedoch.
Das erste Produkt ist eine -Matrix, die als Zahl interpretiert wird; sie wird das Standardskalarprodukt von und genannt und mit oder bezeichnet. Geometrisch entspricht dieses Skalarprodukt in einem kartesischen Koordinatensystem dem Produkt
der Beträge der beiden Vektoren und des Kosinus des von den beiden Vektoren eingeschlossenen Winkels. Beispielsweise gilt
Das zweite Produkt ist eine -Matrix und heißt dyadisches Produkt oder Tensorprodukt von und (geschrieben ). Seine Spalten sind skalare Vielfache von , seine Zeilen skalare Vielfache von . Beispielsweise gilt
Vektorräume von Matrizen
Die Menge der -Matrizen über einem Körper bildet mit der Matrizenaddition und der Skalarmultiplikation einen -Vektorraum. Dieser Vektorraum hat die Dimension . Eine Basis von ist gegeben durch die Menge der Standardmatrizen mit , . Diese Basis wird manchmal als Standardbasis von bezeichnet.
Die Spur des Matrixprodukts
ist dann im Spezialfall ein reelles Skalarprodukt. In diesem euklidischen Vektorraum stehen die symmetrischen Matrizen und die schiefsymmetrischen Matrizen senkrecht aufeinander. Ist eine symmetrische und eine schiefsymmetrische Matrix, so gilt .
Im Spezialfall ist die Spur des Matrixproduktes
ein komplexes Skalarprodukt und der Matrizenraum wird zu einem unitären Vektorraum. Dieses Skalarprodukt wird Frobenius-Skalarprodukt genannt. Die von dem Frobenius-Skalarprodukt induzierte Norm heißt Frobeniusnorm und mit ihr wird der Matrizenraum zu einem Banachraum.
Anwendungen
Zusammenhang mit linearen Abbildungen
Das Besondere an Matrizen über einem Ring ist der Zusammenhang zu linearen Abbildungen. Zu jeder Matrix lässt sich eine lineare Abbildung mit Definitionsbereich (Menge der Spaltenvektoren) und Wertebereich definieren, indem man jeden Spaltenvektor auf abbildet. Umgekehrt entspricht jeder linearen Abbildung auf diese Weise genau eine -Matrix ; dabei sind die Spalten von die Bilder der Standard-Basisvektoren von unter . Diesen Zusammenhang zwischen linearen Abbildungen und Matrizen bezeichnet man auch als (kanonischen) Isomorphismus
Er stellt bei vorgegebenem und eine Bijektion zwischen der Menge der Matrizen und der Menge der linearen Abbildungen dar. Das Matrixprodukt geht hierbei über in die Komposition (Hintereinanderausführung) linearer Abbildungen. Weil die Klammerung bei der Hintereinanderausführung dreier linearer Abbildungen keine Rolle spielt, gilt dies für die Matrixmultiplikation, diese ist also assoziativ.
Ist sogar ein Körper, kann man statt der Spaltenvektorräume beliebige endlichdimensionale -Vektorräume und (der Dimension bzw. ) betrachten. (Falls ein kommutativer Ring mit 1 ist, dann kann man analog freie K-Moduln betrachten.) Diese sind nach Wahl von Basen von und von zu den Koordinatenräumen bzw. isomorph, weil zu einem beliebigen Vektor eine eindeutige Zerlegung in Basisvektoren
existiert und die darin vorkommenden Körperelemente den Koordinatenvektor
bilden. Jedoch hängt der Koordinatenvektor von der verwendeten Basis ab, die daher in der Bezeichnung vorkommt.
Analog verhält es sich im Vektorraum Ist eine lineare Abbildung gegeben, so lassen sich die Bilder der Basisvektoren von eindeutig in die Basisvektoren von zerlegen in der Form
mit Koordinatenvektor
Die Abbildung ist dann vollständig festgelegt durch die sog. Abbildungsmatrix
denn für das Bild des o. g. Vektors gilt
also („Koordinatenvektor = Matrix mal Koordinatenvektor“). (Die Matrix hängt von den verwendeten Basen und ab; bei der Multiplikation wird die Basis , die links und rechts vom Malpunkt steht, „weggekürzt“, und die „außen“ stehende Basis bleibt übrig.)
Die Hintereinanderausführung zweier linearer Abbildungen und (mit Basen , bzw. ) entspricht dabei der Matrixmultiplikation, also
(auch hier wird die Basis „weggekürzt“).
Somit ist die Menge der linearen Abbildungen von nach wieder isomorph zu Der Isomorphismus hängt aber von den gewählten Basen und ab und ist daher nicht kanonisch: Bei Wahl einer anderen Basis für bzw. für wird derselben linearen Abbildung nämlich eine andere Matrix zugeordnet, die aus der alten durch Multiplikation von rechts bzw. links mit einer nur von den beteiligten Basen abhängigen invertierbaren - bzw. -Matrix (sog. Basiswechselmatrix) entsteht. Das folgt durch zweimalige Anwendung der Multiplikationsregel aus dem vorigen Absatz, nämlich
(„Matrix = Basiswechselmatrix mal Matrix mal Basiswechselmatrix“). Dabei bilden die Identitätsabbildungen und jeden Vektor aus bzw. auf sich selbst ab.
Bleibt eine Eigenschaft von Matrizen unberührt von solchen Basiswechseln, so ist es sinnvoll, diese Eigenschaft basisunabhängig der entsprechenden linearen Abbildung zuzusprechen.
Im Zusammenhang mit Matrizen oft auftretende Begriffe sind der Rang und die Determinante einer Matrix. Der Rang ist (falls ein Körper ist) im angeführten Sinne basisunabhängig, und man kann somit vom Rang auch bei linearen Abbildungen sprechen. Die Determinante ist nur für quadratische Matrizen definiert, die dem Fall entsprechen; sie bleibt unverändert, wenn derselbe Basiswechsel im Definitions- und Wertebereich durchgeführt wird, wobei beide Basiswechselmatrizen zueinander invers sind:
In diesem Sinne ist also die Determinante basisunabhängig.
Umformen von Matrizengleichungen
Speziell in den multivariaten Verfahren werden häufig Beweisführungen, Herleitungen usw. im Matrizenkalkül durchgeführt.
Gleichungen werden im Prinzip wie algebraische Gleichungen umgeformt, wobei jedoch die Nichtkommutativität der Matrixmultiplikation sowie die Existenz von Nullteilern beachtet werden muss.
Beispiel: Lineares Gleichungssystem als einfache Umformung
Gesucht ist der Lösungsvektor eines linearen Gleichungssystems
mit als -Koeffizientenmatrix. Wenn die inverse Matrix existiert, kann man mit ihr von links multiplizieren:
und man erhält als Lösung
Spezielle Matrizen
Eigenschaften von Endomorphismen
Die folgenden Eigenschaften quadratischer Matrizen entsprechen Eigenschaften von Endomorphismen, die durch sie dargestellt werden.
Eine reelle Matrix ist orthogonal, wenn die zugehörige lineare Abbildung das Standardskalarprodukt erhält, das heißt, wenn
gilt. Diese Bedingung ist äquivalent dazu, dass die Gleichung
bzw.
erfüllt. Diese Matrizen stellen Spiegelungen, Drehungen und Drehspiegelungen dar.
Sie sind das komplexe Gegenstück zu den orthogonalen Matrizen. Eine komplexe Matrix ist unitär, wenn die zugehörige Transformation die Normierung erhält, das heißt, wenn
gilt. Diese Bedingung ist äquivalent dazu, dass die Gleichung
erfüllt; dabei bezeichnet die konjugiert-transponierte Matrix zu Fasst man den -dimensionalen komplexen Vektorraum als -dimensionalen reellen Vektorraum auf, so entsprechen die unitären Matrizen genau denjenigen orthogonalen Matrizen, die mit der Multiplikation mit vertauschen.
Eine Matrix ist eine Projektionsmatrix, falls
gilt, sie also idempotent ist: Das heißt, die mehrfache Anwendung einer Projektionsmatrix auf einen Vektor lässt das Resultat unverändert. Eine idempotente Matrix hat keinen vollen Rang, es sei denn, sie ist die Einheitsmatrix. Geometrisch entsprechen Projektionsmatrizen der Parallelprojektion entlang des Nullraumes der Matrix. Steht der Nullraum senkrecht auf dem Bildraum, so erhält man eine Orthogonalprojektion.
Beispiel: Es sei eine -Matrix und damit selbst nicht invertierbar. Falls der Rang von gleich ist, dann ist invertierbar und die -Matrix
idempotent. Diese Matrix wird beispielsweise in der Methode der kleinsten Quadrate verwendet.
Eine Matrix heißt nilpotent, falls eine Potenz (und damit auch jede höhere Potenz) die Nullmatrix ergibt.
Eigenschaften von Bilinearformen
Im Folgenden sind Eigenschaften von Matrizen aufgelistet, die Eigenschaften der zugehörigen Bilinearform
entsprechen. Trotzdem können diese Eigenschaften für die dargestellten Endomorphismen eine eigenständige Bedeutung besitzen.
Eine Matrix heißt symmetrisch, wenn sie gleich ihrer transponierten Matrix ist:
Anschaulich gesprochen sind die Elemente symmetrischer Matrizen symmetrisch zur Hauptdiagonalen. Beispiel:
Symmetrische Matrizen entsprechen einerseits symmetrischen Bilinearformen:
andererseits den selbstadjungierten linearen Abbildungen:
Hermitesche Matrizen sind das komplexe Analogon der symmetrischen Matrizen. Sie entsprechen den hermiteschen Sesquilinearformen und den selbstadjungierten Endomorphismen.
Eine Matrix ist hermitesch oder selbstadjungiert, wenn gilt:
Eine Matrix heißt schiefsymmetrisch oder antisymmetrisch, wenn gilt:
Um diese Bedingung zu erfüllen, müssen alle Elemente der Hauptdiagonale den Wert Null haben; die restlichen Werte werden an der Hauptdiagonale gespiegelt und mit multipliziert.
Beispiel:
Schiefsymmetrische Matrizen entsprechen antisymmetrischen Bilinearformen:
und antiselbstadjungierten Endomorphismen:
Eine reelle Matrix ist positiv definit, wenn die zugehörige Bilinearform positiv definit ist, das heißt, wenn für alle Vektoren gilt:
Positiv definite Matrizen definieren verallgemeinerte Skalarprodukte. Hat die Bilinearform keine negativen Werte, heißt die Matrix positiv semidefinit. Analog kann eine Matrix negativ definit beziehungsweise negativ semidefinit heißen, wenn die obige Bilinearform nur negative beziehungsweise keine positiven Werte hat. Matrizen, die keine dieser Eigenschaften erfüllen, heißen indefinit.
Weitere Konstruktionen
Enthält eine Matrix komplexe Zahlen, erhält man die konjugierte Matrix, indem man ihre Komponenten durch die konjugiert komplexen Elemente ersetzt. Die adjungierte Matrix (auch hermitesch konjugierte Matrix) einer Matrix wird mit bezeichnet und entspricht der transponierten Matrix, bei der zusätzlich alle Elemente komplex konjugiert werden.
- Adjunkte oder komplementäre Matrix
Die komplementäre Matrix einer quadratischen Matrix setzt sich aus deren Unterdeterminanten zusammen, wobei eine Unterdeterminante Minor genannt wird. Für die Ermittlung der Unterdeterminanten werden die -te Zeile und -te Spalte von gestrichen. Aus der resultierenden -Matrix wird dann die Determinante berechnet. Die komplementäre Matrix hat dann die Elemente Diese Matrix wird manchmal auch als Matrix der Kofaktoren bezeichnet.
Man verwendet die komplementäre Matrix beispielsweise zur Berechnung der Inversen einer Matrix , denn nach dem Laplaceschen Entwicklungssatz gilt:
Damit ist die Inverse wenn
Eine Übergangs- oder stochastische Matrix ist eine Matrix, deren Elemente alle zwischen 0 und 1 liegen und deren Zeilen bzw. Spaltensummen 1 ergeben. Sie dienen in der Stochastik zur Charakterisierung zeitlich diskreter Markow-Ketten mit endlichem Zustandsraum. Ein Spezialfall hiervon sind die doppelt-stochastischen Matrizen.
Unendlichdimensionale Räume
Für unendlichdimensionale Vektorräume (sogar über Schiefkörpern) gilt, dass jede lineare Abbildung eindeutig durch die Bilder der Elemente einer Basis bestimmt ist und diese beliebig gewählt werden und zu einer linearen Abbildung auf ganz fortgesetzt werden können. Ist nun eine Basis von , so lässt sich eindeutig als (endliche) Linearkombination von Basisvektoren schreiben, d. h., es existieren eindeutige Koeffizienten für , von denen nur endlich viele von null verschieden sind, sodass . Dementsprechend lässt sich jede lineare Abbildung als möglicherweise unendliche Matrix auffassen, wobei jedoch in jeder Spalte ( „nummeriere“ die Spalten und die Spalte zu bestehe dann aus den von den Elementen von nummerierten Koordinaten ) nur endlich viele Elemente von null verschieden sind, und umgekehrt. Die entsprechend definierte Matrixmultiplikation entspricht wiederum der Komposition linearer Abbildungen.
In der Funktionalanalysis betrachtet man topologische Vektorräume, d. h. Vektorräume, auf denen man von Konvergenz sprechen und dementsprechend unendliche Summen bilden kann. Auf solchen können Matrizen mit unendlich vielen von null verschiedenen Elementen in einer Spalte unter Umständen als lineare Abbildungen verstanden werden, wobei auch andere Basis-Begriffe zugrunde liegen.
Einen speziellen Fall bilden Hilberträume. Seien also Hilberträume und Orthonormalbasen von bzw. . Dann erhält man eine Matrixdarstellung eines linearen Operators (für lediglich dicht definierte Operatoren funktioniert es ebenso, falls der Definitionsbereich eine Orthonormalbasis besitzt, was im abzählbardimensionalen Fall stets zutrifft), indem man die Matrixelemente definiert; dabei ist das Skalarprodukt im betrachteten Hilbertraum (im komplexen Fall semilinear im ersten Argument).
Dieses sogenannte Hilbert-Schmidt-Skalarprodukt lässt sich im unendlichdimensionalen Fall nur noch für eine bestimmte Teilklasse von linearen Operatoren, die sogenannten Hilbert-Schmidt-Operatoren, definieren, bei denen die Reihe, über die dieses Skalarprodukt definiert ist, stets konvergiert.
Matrizen in „klassischen“ Programmiersprachen
Matrizen können in den meisten höheren Programmiersprachen deklariert und gespeichert werden. Eine Matrix wird in Programmiersprachen in einer Datenstruktur-Variante gespeichert, die in der deutschsprachigen Fachliteratur meist Datenfeld oder kurz Feld (englisch array) genannt wird. Das Feld erhält einen Feldnamen, für den in den Beispielen FeldX gewählt wurde. Der Zugriff auf bestimmte Inhalte eines Felds erfolgt mit Hilfe von Indizes, die dessen Position bezeichnen. Bei mehrdimensionalen Feldern gibt es für jede Dimension einen Index. Alle Elemente eines Felds haben in der Regel den gleichen Datentyp, sind also zum Beispiel alle entweder ganze Zahlen, natürliche Zahlen oder Gleitkommazahlen. In Computeralgebrasystemen können es auch symbolische Ausdrücke (wie Variable, Funktionen oder Polynome) sein.
Beim Deklarieren werden Felder in einer sprachspezifischen Syntax formuliert. Beispiele:
REAL*8 FeldX(100,...)
(Schlüsselwort REAL*8 mit Angabe der 8 Bytes für den Datentyp Gleitkommazahl, Feldname, Anzahl der Feldelemente je Dimension in runden Klammern): FortranDim FeldX (100,...) As Double
(Schlüsselwort Dim, Feldname, Anzahl der Feldelemente je Dimension in runden Klammern, Datentyp Gleitkommazahl doppelter Länge): Visual Basic, Visual Basic for Applications und Visual Basic ScriptFeldX (100)
(Feldname, Anzahl der Feldelemente in runden Klammern): PL/IFeldX [100,...]
(Feldname, Anzahl der Feldelemente je Dimension in eckigen Klammern): C#FeldX [100][][]
(Feldname, Anzahl der Feldelemente je Dimension, jeweils in gesonderten eckigen Klammern): C/C++, JavaFeldX array (100)
(Feldname, Schlüsselwort array, Anzahl der Feldelemente in runden Klammern): Modula-2FeldX occurs 100.
(Feldname, Schlüsselwort occurs, Anzahl der Feldelemente ohne Klammern): Cobol
Die so deklarierten „Platzhalter“ werden in dem jeweiligen Programm mit „Werten“ befüllt. Matrizenmanipulationen muss der Anwender selbst programmieren.
Matrizen in Tabellenkalkulationen
Eine Tabellenkalkulation (englisch Spreadsheet) ist eine Software zur interaktiven Eingabe und Bearbeitung von numerischen und alphanumerischen Daten in Form einer Tabelle. Wer mit der Matrizenrechnung vertraut ist und sich dann in eine Tabellenkalkulation einarbeitet, findet zunächst etwas Vertrautes vor: Das Tabellenblatt, die regelmäßige Unterteilung einer Fläche in Kästchen, die hier nicht Elemente, sondern Zellen genannt werden. Eine Zelle wird ebenfalls durch „Koordinaten“ adressiert, durch die Spalte und die Zeile in der sie sie sich befindet. Hier endet das Vertraute. Die Spalten werden üblicherweise mit Buchstaben oder Buchstabenfolgen, die Zeilen mit Zahlen festgelegt. Die Reihenfolge ist vertauscht: Spalte zuerst, dann die Zeile. Die Adresse B3 ist also die Zelle in der zweiten Spalte und der dritten Zeile. Ein rechteckiger Bereich von Zellen wird durch die Adressen der Zellen in der linken oberen Ecke und in der rechten unteren Ecke festgelegt, durch ein bis-Zeichen, etwa einen Doppelpunkt (:), getrennt. Zum Beispiel adressiert B3:D5 einen quadratischen Zellenbereich mit drei Zeilen und drei Spalten. Einem solchen Zellenbereich kann auch ein Name zugeordnet werden, zum Beispiel der Name FeldX.
Jede Tabellenkalkulation enthält eine Vielzahl von Funktionen, die in Formeln verwendet werden.
Matrizen in Tabellenkalkulationsprogrammen
In Microsoft Excel und dem freien LibreOffice Calc kann jeder rechteckige Bereich, der Zahlen enthält, als Matrix interpretiert werden. Eine Matrix kann sich an beliebiger Stelle auf dem Tabellenblatt befinden. Wie in den „klassischen“ Programmiersprachen können die Matrixelemente nur Zahlen sein. Excel und Calc enthalten Funktionen speziell für Matrizen. Bei Excel (Calc) sind dies die folgenden Funktionen:
- Die Funktion MMULT gibt das Produkt zweier Matrizen zurück.
- Die Funktion MINV (MINVERSE) gibt die Inverse einer Matrizen zurück.
- Die Funktion MDET (MDETERM) liefert die Determinante einer Matrix.
Der Screenshot zeigt ein Beispiel für eine Matrix, das Produkt der Matrix mit sich selbst, ihre inverse Matrix und ihre Determinante. Mit der inversen Matrix kann auch ein lineares Gleichungssystem kompakt gelöst werden.
Die Formel muss als Matrixformel eingegeben werden, damit sie richtig funktioniert. Nach Eingabe der Formel muss bei der Version Microsoft 365 die EINGABETASTE gedrückt werden, ansonsten die Tastenkombination STRG+UMSCHALT+EINGABETASTE.
In beiden Tabellenkalkulationen gibt es Programmiersprachen, mit denen den Matrixelementen Werte zugewiesen werden können, wie in anderen „klassischen“ Programmiersprachen auch. Es gibt aber noch eine weitere Möglichkeit, die es dort nicht gibt. Die Werte für die Matrixelemente können auch von einem Tabellenblatt gelesen und nach der Ausführung einer Berechnung auf ein Tabellenblatt geschrieben werden. Dies kann helfen, den Berechnungsvorgang transparenter zu machen.
Matrizen in Computeralgebrasystemen
Ein Computeralgebrasystem ist ein Computerprogramm, das vorrangig der Bearbeitung algebraischer Ausdrücke dient. Es löst nicht nur mathematische Aufgaben mit Zahlen (wie die „klassischen“ Programmiersprachen oder ein einfacher Taschenrechner), sondern auch solche mit symbolischen Ausdrücken (wie Variablen, Funktionen, Polynomen und Matrizen).
Matrizen in Mathematica
In Computeralgebrasysteme Mathematica entfällt die separate Deklaration des Felds, das nachfolgend ebenfalls FeldX genannt wird. Die Matrixelemente können sowohl Zahlen als auch Symbole sein. Verwenden wir im nachfolgenden Beispiel Symbole. Die Matrixelemente werden in einer speziellen Syntax Zeile für Zeile eingegeben. Mit der Funktion MatrixForm wird die Matrix in der üblichen Form angezeigt. Präfixe werden von Mathematica in kleiner Schrift und in der Farbe blau ausgeschrieben (sind also keine Links). In den Klammern (* … *) stehen erläuternde Kommentare:
- In[1]:=
MatrixForm [FeldX={{a, b, 0}, {c, a, b}, {0, c, a}}] (* Matrixelemente eingeben *)
- Out[1]//MatrixForm=
Für die Matrizenmultiplikation wird zwischen die Feldnamen ein schlichter Punkt (.) gesetzt. Zum Beispiel für die Multiplikation des Felds FeldX mit sich selbst sieht die Syntax so aus:
- In[2]:=
MatrixForm [FeldX.FeldX] (* Matrix mit sich selbst multiplizieren *)
- Out[2]//MatrixForm=
Mathematica enthält eine Vielzahl von Funktionen, um Matrizen zu erzeugen, etwa eine Hilbert-Matrix oder eine Hankel-Matrix, und solche, um Matrizen zu manipulieren, zum Beispiel auch exotische, wie die, die einer Matrix Zeilen/Spalten oder den Teil oberhalb/unterhalb der Diagonalen entnehmen.
Matrizen in Maple
In der Computeralgebrasystem Maple wird eine Matrix als zweidimensionales Datenfeld mit Zeilen- und Spaltenindizes dargestellt, die von 1 aus indiziert werden. Matrizen können entweder direkt als zweidimensionales Datenfeld mit dem Befehl array
oder mit dem Befehl matrix
des Pakets für lineare Algebra linalg eingegeben werden. Das Pakets für lineare Algebra ist speziell für das Rechnen mit Vektoren und Matrizen bestimmt. Beispielsweise erstellt der Befehl array(1..m,1..n)
eine leere (m x n)-Matrix und der Befehl array(1..10,1..10,identity)
eine (10 x 10)-Einheitsmatrix. Spezielle Funktionen erlauben es, bestimmte Eigenschaften der Matrix abzufragen: Ist die Matrix symmetrisch, antisymmetrisch, diagonal, dünn besetzt? Das Paket für lineare Algebra enthält außerdem eine Reihe von Befehlen, um spezielle Matrizen zu erzeugen, zum Beispiel eine Bezout-, Hilbert-, Jacobi-, Sylvester-, Toeplitz- oder Vandermonde-Matrix.
Die Syntax von Maple ist benutzerfreundlich. Die Eingabe eines Befehls wird mit der Taste Enter abgeschlossen und nicht, wie im Fall von Mathematica, mit der Tastenkombination Shift+Enter. Hier drei Eingabemöglichkeiten einer Matrix in Maple:
> FeldX:=array([[a,b,0],[c,a,b],[0,c,a]]);
oder
> FeldX:=array(1..3,1..3,[[a,b,0], [c,a,b], [0,c,a]]);
oder
> FeldX:=linalg[matrix](3,3,[a,b,0, c,a,b, 0,c,a]);
Die Ausschrift nach Drücken der Taste Enter ist für alle drei Eingabevarianten gleich:
Für die Multiplikation des Felds FeldX mit sich selbst sieht die Syntax so aus:
> evalm(FeldX &* FeldX);
Das Ergebnis ist
Der Befehl evalm
interpretiert den Operator &*
als den Matrixmultiplikationsoperator.
Matrizen in Mathcad
Mathcad ist ein kommerzielles Computeralgebrasystem, das ursprünglich von der Firma Mathsoft für rein numerische Berechnungen entwickelt wurde. Für symbolische Berechnungen wird seit der Version 3 (1991) eine Minimalvariante des Computeralgebrasystems Maple verwendet. Die Stärke von Mathcad liegt darin, dass die Eingabe von Formeln, der Arbeitsablauf und die Dokumentation dem normalen Arbeitsablauf von Technikern, Wirtschafts- und Naturwissenschaftlern angepasst wurden. So gibt es zum Beispiel für Matrizen eine eigene Symbolleiste mit einer Matrixschablone (Platzhalter), so dass keine programmspezifische Syntax für die Eingabe von Matrizen erlernt werden muss, wie dies bei den Programmen Mathematica und Maple der Fall ist. Auch das Erlernen einer Programmiersprache ist nicht erforderlich.
Die Symbolleiste Matrix von Mathcad vereinfacht außerdem
- den Zugriff auf ein bestimmtes Matrixelement oder auf eine Matrixspalte,
- die Eingabe zur Berechnung der Transponierten, der Inversen oder der Determinante der Matrix und
- die Eingabe zur Berechnung des Skalar- oder Vektorprodukts zweier Vektoren.
Eine Besonderheit aus physikalischer Sicht ist, dass Mathcad Einheitensysteme verwenden und umrechnen kann. Aufgrund des Kompromisses zwischen einfacher Bedienung und mathematischer Leistungsfähigkeit wird das Programm auch häufig in Schulen eingesetzt.
Matrizen in Auszeichnungssprachen
In den Auszeichnungssprachen geht es nicht darum, mit Matrizen zu rechnen, sondern sie zunächst unabhängig von ihrer grafischen Darstellung in ihrer logischen Struktur zu speichern, um sie dann wie gewohnt auf dem Bildschirm darstellen und ausdrucken zu können.
Matrizen in TeX
Die Auszeichnungssprache TeX (englisch TeX-Markup) wird in der Wikipedia für Formeln verwendet. Die folgende Tabelle zeigt eine Matrix in dieser Auszeichnungssprache, links die Eingabe, rechts das Ergebnis nach dem Rendern:
Eingabe | Ergebnis |
---|---|
<math> \begin{pmatrix} a & b & 0 \\ c & a & b \\ 0 & c & a \end{pmatrix} </math> |
|
Das Tag-Paar <math> … </math>
eröffnet den Math-Modus für Formeln und schließt ihn ab. \begin{pmatrix} … \end{pmatrix}
kennzeichnet, dass eine Matrix dargestellt werden soll, die von runden Klammern (englisch parentheses) umschlossen ist. Der Übergang zum nächsten Matrixelemente der Zeile wird durch das Et-Zeichen &
und der Zeilenwechsel durch das Zeichenpaar \\
bewirkt.
Die in der Wikipedia verwendete Syntax unterscheidet sich geringfügig von der originalen Auszeichnungssprache TeX, die für den Buchdruck gedacht ist. In Letzterer sähe das Beispiel so aus:
Eingabe | Ergebnis |
---|---|
$$ \begin{pmatrix} a & b & 0 \cr c & a & b \cr 0 & c & a \end{pmatrix} $$ |
|
Das Tag \cr
steht für den Zeilenwechsel (englisch carriage return).
Matrizen in Wikitext
Aber auch ohne den Math-Modus lassen sich in der Auszeichnungssprache Wikitext (englisch wiki markup) mittels Tabellen matrixähnliche Strukturen erzeugen, wie sie zum Beispiel im Artikel Falksches Schema für die Matrizenmultiplikation verwendet werden. Die folgende Tabelle zeigt eine einfache Tabelle in der Auszeichnungssprache Wikitext:
Eingabe | Ergebnis | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
{| class="wikitable" | a || b || 0 |- | c || a || b |- | 0 || c || a |} |
|
In dieser Auszeichnungssprache werden andere Zeichen für das Springen von Zelle zu Zelle (Element zu Element) und für den Zeilenumbruch verwendet als im Math-Modus. Dies zeigt, dass die verwendeten Zeichen keiner tieferen Logik folgen, sondern auf die Intensionen der ursprünglichen Entwickler zurückgehen.
Matrizen in MathML
Die Mathematical Markup Language (MathML) ist eine weitere Auszeichnungssprache zur Darstellung mathematischer Formeln. Sie gehört zur Familie der XML-Sprachen. MathML wurde ursprünglich als universelle Spezifikation für Browser, Office-Suiten, Computeralgebrasysteme, EPUB-Reader und LaTeX-basierte Generatoren entwickelt. Die Matrix des Beispiels wird in MathML in folgender Syntax formuliert:
Eingabe | Ergebnis |
---|---|
<mrow> <mo> ( </mo> <mtable> <mtr> <mtd> <mn>a</mn> </mtd> <mtd> <mn>b</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>c</mn> </mtd> <mtd> <mn>a</mn> </mtd> <mtd> <mn>b</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>c</mn> </mtd> <mtd> <mn>a</mn> </mtd> </mtr> </mtable> <mo> ) </mo> </mrow> |
|
Die Bedeutung der Tags dürfte selbsterklärend sein. Browser wie Firefox und Safari unterstützten eine Teilmenge von MathML, das sogenannte MathML Core.
Literatur
- Maxime Bôcher: Einführung in die höhere Algebra. Teubner, Leipzig 1925 (XII, 348 S.).
- Ewald Bodewig: Matrix calculus. 2nd, revised and enlanged edition Auflage. North-Holland Pub. Co., Amsterdam 1959, ISBN 978-1-4832-7498-0 (452 S.).
- Richard Bellman: Introduction to matrix algebra. McGraw, New York 1960 (328 S.).
- Rudolf Kochendörffer: Determinanten und Matrizen. 2. Auflage. B. G. Teubner, Leipzig 1961 (VI, 144 S.).
- Richard S. Varga: Matrix Iterative Analysis. Prentice-Hall, Englewood Cliffs, NJ 1962, ISBN 0-13-565507-2 (XIII, 322 S.).
Matrix Iterative Analysis. 2. rev. and expanded ed., 1. softcover printing. Springer, Berlin/Heidelberg 2009, ISBN 978-3-642-05154-8 (X, 358 S., eingeschränkte Vorschau in der Google-Buchsuche).
- Lothar Collatz: Eigenwertaufgaben mit technischen Anwendungen. 2., durchges. Auflage. Akad. Verl.-Ges. Geest & Portig, Leipzig 1963 (XIV, 500 S.).
- Alston S. Householder: The Theory of Matrices in Numerical Analysis. Dover Publications Inc., New York, NY 1964, ISBN 0-486-61781-5 (xi, 257 S.).
The theory of matrices in numerical analysis. Dover edition Auflage. Dover Publications, Mineola N.Y. 2006, ISBN 0-486-44972-6 (xi, 257 S., eingeschränkte Vorschau in der Google-Buchsuche).
Die Zahlen, aus denen sich die Matrix zusammensetzt, werden von Householder element/elements genannt, die Namen entry/entries verwendet er nicht.
- Rudolf Zurmühl: Matrizen und ihre technischen Anwendungen. 4., neubearbeite Auflage. Springer, Berlin/Göttingen/Heidelberg 1964 (XII, 452 S.).
- Fritz Neiss: Determinanten und Matrizen. 7. Auflage. Springer, Berlin/Heidelberg 1967, ISBN 978-3-662-00943-7 (VII, 111 S.).
- Wolfgang Gröbner: Matrizenrechnung. Bibliographisches Institut, Mannheim 1977, ISBN 3-411-00103-8 (279 S.).
- Dmitri K. Faddejew, Wera N. Faddejewa: Numerische Methoden der linearen Algebra. 5. Auflage. VEB Deutscher Verlag der Wissenschaften, Berlin 1978 (782 S.).
- Feliks R. Gantmacher: Matrizentheorie. VEB Deutscher Verlag der Wissenschaften, Berlin 1986, ISBN 3-326-00001-4 (654 S.).
- Rudolf Zurmühl, Sigurd Falk: Matrizen und Ihre Anwendungen. 7., Softcover reprint of the original 7th ed. 1997. Springer, Berlin / Heidelberg / New York 2013, ISBN 978-3-642-63821-3 (XIV, 496 S.).
- Gilbert Strang: Lineare Algebra. Springer-Verlag, Berlin 2003, ISBN 3-540-43949-8 (XII, 656 S., eingeschränkte Vorschau in der Google-Buchsuche).
Übersetzung der englischen Originalausgabe: Gilbert Strang: Introduction to linear algebra. 2. Auflage. Wellesley-Cambridge Press, Wellesley, Mass. 1998, ISBN 0-9614088-5-5 (VII, 503 S.).
- Christian Voigt, Jürgen Adamy: Formelsammlung der Matrizenrechnung. Oldenbourg, München/Wien 2007, ISBN 978-3-486-58350-2 (XIV, 162 S., eingeschränkte Vorschau in der Google-Buchsuche).
- Gene H. Golub, Charles F. van Loan: Matrix computations. Fourth edition Auflage. The Johns Hopkins University Press, Baltimore 2013, ISBN 978-1-4214-0794-4 (xxi, 756 S., eingeschränkte Vorschau in der Google-Buchsuche).
- Albrecht Beutelspacher: Lineare Algebra: Eine Einführung in die Wissenschaft der Vektoren, Abbildungen und Matrizen. 8., aktualisierte Auflage. Springer Spektrum, Wiesbaden 2014, ISBN 978-3-658-02412-3 (XIV, 368 S., eingeschränkte Vorschau in der Google-Buchsuche).
- Gerd Fischer: Lineare Algebra: Eine Einführung für Studienanfänger. 18., aktualisierte Auflage. Springer Spektrum, Wiesbaden 2014, ISBN 978-3-658-03944-8 (XXI, 384 S., eingeschränkte Vorschau in der Google-Buchsuche).
- Klaus Jänich: Lineare Algebra. 11. Auflage. Springer, Berlin u. a. 2008, ISBN 978-3-540-75501-2.
- Karsten Schmidt, Götz Trenkler: Einführung in die Moderne Matrix-Algebra – Mit Anwendungen in der Statistik. 3. Auflage. Springer, Berlin/Heidelberg 2015, ISBN 978-3-662-46772-5, doi:10.1007/978-3-662-46773-2.
- Hermann Schichl, Roland Steinbauer: Einführung in das mathematische Arbeiten. 3., überarb. Auflage 2018. Springer, Berlin/Heidelberg 2018, ISBN 978-3-662-56806-4 (xvii, 531 S., eingeschränkte Vorschau in der Google-Buchsuche).
- Günter M. Gramlich: Lineare Algebra: Eine Einführung. 5., überarbeitete Auflage. Carl Hanser Verlag, München 2021, ISBN 978-3-446-47188-7 (249 S., eingeschränkte Vorschau in der Google-Buchsuche).
Weblinks
- Rechner für Matrizenmultiplikation, Determinantenberechnung, Eigenwerte und Eigenvektoren sowie lineare Gleichungssysteme.
- The Matrix Cookbook. Eine englischsprachige, umfangreiche Matrix-Formelsammlung (PDF; 522 kB).
Einzelnachweise und Anmerkungen
- ↑ Latein.me
- ↑ James Joseph Sylvester: Additions to the articles in the September number of this journal, “On a new class of theorems,” and on Pascal’s theorem. In: The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science. Nr. 37, 1850, S. 363–370 (Volltext).
- ↑ Eric W. Weisstein: Hypermatrix. In: MathWorld (englisch).
- ↑ Walter Gellert, Herbert Kästner, Siegfried Neubert (Hrsg.): Lexikon der Mathematik. 1. Auflage. Bibliographisches Institut, Leipzig 1977, S. 350 (624 S.).
- 1 2 Guido Walz (Hrsg.): Lexikon der Mathematik - Band 3. Springer/Spektrum, 2-te Auflage 2017, S. 385.
- ↑ Der Name Element ist der seit über hundert Jahren in der deutschen Fachliteratur etablierte Name. So ist im Gantmacher auf S. 19 zu lesen: „Die Zahlen, aus denen sich die Matrix zusammensetzt, werden ihre Elemente genannt.“
- ↑ Den Namen Eintrag verwenden z. B. Schichl und Steinbauer auf S. 26. und Fischer auf S. 21. Bei Beutelspacher auf S. 63 findet sich die folgende Stelle, die illustriert, warum Autoren, vermutlich aus sprachlichen Gründen, inzwischen Eintrag bevorzugen: „Eine m × n-Matrix über dem Körper K ist ein rechteckiges Schema aus m Zeilen und n Spalten, deren Einträge Elemente aus K sind.“ Das Wort Eintrag ermöglicht hier, die sprachlich unschöne und konzeptionell verwirrende Doppelung des Wortes Element zu vermeiden, es sei denn, man benutzt das Wort Matrixelement anstelle von Eintrag. Im Englischen wird das dem Wort Eintrag entsprechende Entry häufig verwendet. Eintrag hat sich insbesondere seit dem Erscheinen der Übersetzung des Lehrbuchs von Gilbert Strang im Jahr 2003 auch im Deutschen verbreitet.
- ↑ Dmitrij K. Faddejew, Wera N. Faddejewa, 1978, S. 48.
- ↑ Adalbert Duschek, August Hochrainer: Grundzüge der Tensorrechnung in analytischer Darstellung. Springer, Wien 1955, S. 48 (VI, 250).
- ↑ Walter Gellert, Herbert Kästner, Siegfried Neubert (Hrsg.): Lexikon der Mathematik. 1. Auflage. Bibliographisches Institut, Leipzig 1977, S. 350, 570 (624 S.).
- ↑ Heidrun Kolinsky: Kapitel 9: Datenfelder (engl. arrays) oder indizierte Variablen. In: Programmieren in Fortran 90/95. Universität der Bundeswehr München, abgerufen am 12. März 2023.
- ↑ Der Name Dimension wird in diesem Zusammenhang für die Anzahl der Indizes verwendet: Ein Vektor ist folglich ein eindimensionales Feld, eine Matrix mit zwei Indizes ein zweidimensionales Feld usw.
- ↑ msdn.microsoft.com Microsoft
- ↑ www2.informatik.uni-halle.de (Memento vom 29. April 2015 im Internet Archive) Uni Halle
- ↑ homeandlearn.co.uk Java
- ↑ MMULT (Funktion)
- ↑ Stephen Wolfram: The mathematica book: Version 4. Wolfram Media; Cambridge University Press, Champaign IL, New York 1999, ISBN 1-57955-004-5 (xxvi, 1470 S.).
- ↑ Das übliche Malzeichen, das Sternchen * der Tabellenkalkulations-Programme und Programmiersprachen, bewirkt die elementweise Multiplikation.
- ↑ M. B. Monagan et al.: Maple 6: Programming Guide. Waterloo Maple Inc., Waterloo, Ont. 2000, ISBN 1-894511-01-8, S. 168 (586 S.).
- ↑ Donald Ervin Knuth, Donald E. Knuth: The TEXbook. 14. Auflage. Addison-Wesley, Reading, Mass. 1988, ISBN 0-201-13448-9, S. 176 ff. (483 S.).
- ↑ Math ML. mozilla developer center, abgerufen am 31. März 2023.
- ↑ MathML in Safari