主要内容

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Matrizen und magische Quadrate

übermatrizen.

In der MATLAB®Umgebung ist eine Matrix ein rechteckiges Zahlenarray. Eine Sonderbedeutung kommt manchmal 1x1-Matrizen zu, bei denen es sich um Skalare handelt, und Matrizen mit nur einer Zeile oder Spalte, bei denen es sich um Vektoren handelt. In MATLAB gibt es andere Möglichkeiten, numerische und nicht numerische Daten zu speichern, aber am Anfang sollte in der Regel alles als eine Matrix betrachtet werden. Die Operationen in MATLAB sind so natürlich wie möglich konzipiert. Wo andere Programmiersprachen jeweils mit einzelnen Zahlen arbeiten, können Sie in MATLAB schnell und einfach mit ganzen Matrizen arbeiten. Eine gute Beispielmatrix, die in diesem Dokument verwendet wird, ist in dem Kupferstich Melencolia I (Die Melancholie) des deutschen Künstlers und Amateurmathematikers Albrecht Dürer abgebildet.

Dieses BildEnthälteine vielfalt mathematischer somegandik und bei Genauer Betrachtung Entececken Sie Oben RECHTS矩阵。Diese Matrix Ist Als Magisches Quadrat Bekannt und Wurde ZuDürersZeitenTatsächlichMitMagischen Magischen在普罗瓦坪Gebracht。在Der Tat Weist Es Einige Faszinierende Merkmale Auf,Die EineNähereBetrachtungWert Sind。

Eingeben von Matrizen

Matlab Einzuarbeiten的UM Sich,Sollten Sie Sich Mit der Handhabung von Matrizen Vertraut Machen。Sighten Sie Matlab und Befolgen Sie Die AnweisungenFürieeinzelnenBeispiele。

EsGibtVieleMöglichkeiten,Matlab Einzugeben的Matrizen:

  • Eingben Einer Expliziten liste von元素。

  • Laden von Matrizen aus externen Datendateien.

  • Generieren von Matrizen mithilfe integrierter Funktionen.

  • Erstellen von Matrizen mithilfe Ihrer eigenen Funktionen und Speichern dieser Matrizen in Dateien.

Beginnen Sie Mit Der Eingabe vondürers矩阵als liste ihrer元素。SieMüssenSichdabei Nur An Einige Grancdlegende Konventionen Halten:

  • Trennen Sie Die Elemente Einer Zeile Mit Leerzeichen Oder Kommas。

  • Verwenden Sie Einen Strichpunkt,;,UM Das Ende der Einzelnen Zeilen Festzulegen。

  • Schließensie die gesamte liste在埃克里格klammernein,[].

Geben Sie Dürers Matrix einfach in das Befehlsfenster ein

a = [16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]

MATLAB zeigt die soeben eingegebene Matrix an:

A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

Diese Matrix stimmt mit den Zahlen im Kupferstich überein. Sobald Sie die Matrix eingegeben haben, wird sie automatisch im MATLAB Arbeitsbereich gespeichert. Sie können sie einfachAnennen。达西奇Ajetzt im Arbeitsbereich befindet, können Sie herausfinden, was sie so interessant macht. Warum ist sie magisch?

sum, transpose und diag

MöglicherweiseWissen Sie Bereits,Dass Die Besonderen Eigenschaften EinesMagischen Quadrats AUF Dieverschiedenenmöglichkeitenzumsummieren seiner Elementezurückzuführensind。Wenn Sie Die Summe Einer Beliebigen Zeile Oder Spalte Oiner der Beiden Hauptdiagonalen Bilden,Ergibt Sich Stets Dieselbe Zahl。Überprüfen筛子模具弥撒史蒂姆·穆特尔布。Probieren Sie Als Estes Die Folgende Anweisung Aus:

sum(A)

MATLAB antwortet mit

ANS.= 34 34 34 34

Wenn Sie keine Ausgabevariable angeben, verwendet MATLAB die VariableANS.,DieAbkürzungfürANS.wer(Antwort), um die Ergebnisse einer Berechnung zu speichern. Sie haben einen Zeilenvektor berechnet, der die Summen der Spalten vonAenthält。jede der spalten ergibt dieselbe summe,死了magische34岁的Summe。

doch wie sieht es mit den shumen der zeilen aus?Matlab Arbeitet Bevorzugt Mit Den Spalten einer Matrix,SodasseeineMöglichkeitZumErmittelnder Zeilensummen Darin Besteht,Die MatrixZu Transponieren,Die Spaltensummen Der Transponierten Zu Berechnen undAnschließenddasergebniszu transponieren.

In MATLAB gibt es zwei Operatoren für das Transponieren. Der Apostrophoperator (zum Beispiel一个“) führt eine komplexe konjugierte Transposition aus. Er spiegelt die Matrix um ihre Hauptdiagonale und ändert das Vorzeichen der imaginären Komponente aller komplexen Elemente der Matrix. Der Punkt-Apostroph-Operator (一种。'), transponiert ohne Auswirkungen auf das Vorzeichen komplexer Elemente. Bei Matrizen, die ausschließlich reelle Elemente enthalten, führen beide Operatoren zum gleichen Ergebnis.

Daher ergibt

一个“

Folgendes:

ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1

und

总和(a')'

Ergibt Einen Spaltenvektor,Der Die ZeilensummenEnthält

ANS.= 34 34 34 34

EineWeitereMöglichkeitZumSummieren der Zeilen,Bei der Das Doppelte Transponieren Vermieden Wird,IST Die Verwendung DesDiumitsomsArgumentsFüriefunktionsum:

总和(a,2)

ergibt

ANS.= 34 34 34 34

De Summe der Elemente der Hauptdiagonalen Wird Mit Den Funktionensumund诊断ermittelt:

诊断(A)

ergibt

ans = 16 10 7 1

und

sum(diag(A))

ergibt

ANS.= 34

Die andere Diagonale, die sogenannteAntidiaggonale.,Ist Aus Mathematischer Sicht Weniger Wichtig,Sodass Es在Matlab Keine Vordefileen FunktionDafürGibt。Doch Eine Funktion,DieUrsprünglichfürdeneinsatz在Grafiken Gedacht战争中,fliplr,Spiegelt Eine Matrix VON链接NACH RECHT:

总和(诊断(fliplr(a)))ans = 34

Jetzt Haben Sie Gesehen,Dass Die Matrix IM Kupferstich VonDürerTatsächlichEinMagisches Quadrat Ist und dabei Einige Matrixoperationen von Matlab Ausprobiert。Diese Matrix Wird Auch在Den Folgenden Abschnitten Verwendet,UMZusätzlicheMatlab Funktion Zu Veranschaulichen。

Die Funktion Magic

In MATLAB ist eine Funktion integriert, mit der magische Quadrate fast jeder Größe erstellt werden können. Es überrascht nicht, dass diese Funktion魔法genannt wird:

B =魔术(4)B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

Die Matrix ist nahezu mit der in Dürers Kupferstich identisch und weist dieselben „magischen“ Eigenschaften auf. Der einzige Unterschied ist, dass die beiden mittleren Spalten vertauscht sind.

Sie können die beiden mittleren Spalten vonBvertauschen, sodass sie aussehen wie DürersA. Ordnen Sie für jede Zeile vonBDie Spalten在Der Decre 1,3,2,4,4 Angegebenen Reihenfolge Neu An:

a = b(:,[1 3 2 4])
A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

Generieren von Matrizen

Die Software MATLAB stellt vier Funktionen zur Verfügung, die grundlegende Matrizen generieren.

zeros

Ausschließlich Nullen

ones

Ausschließlicheinsen.

rand

Gleichmäßig verteilte Zufallselemente

randn

正常的垂直zufallsemente.

Hier einige Beispiele:

Z = zeros(2,4) Z = 0 0 0 0 0 0 0 0 F = 5*ones(3,3) F = 5 5 5 5 5 5 5 5 5 N = fix(10*rand(1,10)) N = 9 2 6 4 8 7 4 0 8 4 R = randn(4,4) R = 0.6353 0.0860 -0.3210 -1.2316 -0.6014 -2.0046 1.2366 1.0556 0.5512 -0.4931 -0.6313 -0.1132 -1.0998 0.4620 -2.3252 0.3792