TU Wien:Mathematik 1 UE (diverse)/Matlab Einführung

Aus VoWi
Zur Navigation springen Zur Suche springen

Warum diese Einführung?[Bearbeiten | Quelltext bearbeiten]

Ich selbst verwende MATLAB recht häufig für unsere mathematischen Aufgaben, zumeist dazu, um Ergebnisse (endgültige, Zwischenschritte) zu verifizieren. Ich finde MATLAB hier sehr hilfreich, weshalb ich eine kleine Einführung geben möchte, wie man Matlab für Berechungen von und mit Vektoren und Matrizen verwendet. --Mnemetz 05:54, 19. Dez 2005 (CET)


Anmerkungen (Matlab-Version, Erwerb)[Bearbeiten | Quelltext bearbeiten]

Ich selbst verwende die MATLAB-Version 7 (SP3) - die folgenden Ausführungen sollten allerdings kompatibel bis hinunter zu Version 5 sein!

Was ist MATLAB?[Bearbeiten | Quelltext bearbeiten]

MATLAB ist eine kommerzielle mathematische Software der Firma The MathWorks zur Lösung diverser mathematischer Probleme und zur grafischen Darstellung der Ergebnisse.

MATLAB rechnet hauptsächlich mit Matrizen, daher auch der Name (MATrix LABoratory).

Programmiert wird MATLAB in einer proprietären, plattformunabhängigen Programmiersprache, die auf der jeweiligen Maschine (Computer) interpretiert wird. Entwickelt wurde sie von Cleve Moler und Jack Little. Kleinere Programme können als so genannte Scripts oder Funktionen zu atomaren 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 Statistik, Signalverarbeitung, Bildverarbeitung u.v.m. ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z.B. unter C. Ferner gibt es Schnittstellen, um C-Code einzubinden, sowie einen Übersetzer, mit dem aus einem Script 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 dient im Gegensatz zu Computeralgebrasystemen nicht der symbolischen, sondern primär der zahlenmäßigen Lösung von Problemen. Die Software wird in Industrie und an Hochschulen vor allem für numerische Simulation eingesetzt.

MATLAB ist auch der Basis für Simulink, ein anderes Produkt der Firma The MathWorks, der die Zeitgesteuerte Simulation dient, und Stateflow, das für die Ereignisorientierte Simulation benutzt wird.


Grundsätzliche Anmerkungen zu MATLAB[Bearbeiten | Quelltext bearbeiten]

MATLAB gibt es für Windows und Linux.

Es kann sowohl im Shell- als auch im GUI-Modus betrieben werden. Beide Modi unterscheiden sich nur dadurch, dass im Shell-Modus die Grafikausgabe an den Bildschirm nicht zur Verfügung steht sowie die besser ausgestattete Hilfe im GUI-Modus.

Kommandos werden grundsätzlich mit einem Semikolon (;) abgeschlossen , wenn keine Werte ausgegeben werden sollen. Sollen Werte direkt ausgegeben werden, so kann man das Semikolon weglassen,

Hilfe zu diversen Funktionen erhält man entweder über F1 (GUI-Modus) sowie über (Shell,GUI)

  help Funktionsname


Matrizeneingabe in MATLAB[Bearbeiten | Quelltext bearbeiten]

Beispiel mit Ausgabe:

  >> A = [0 10 3 7; 4 1 -6 -8; 3 3 -2 5; 1 -4 7 12]
  A =
    0    10     3     7
    4     1    -6    -8
    3     3    -2     5
    1    -4     7    12


Beispiel ohne Ausgabe:

  >> A = [0 10 3 7; 4 1 -6 -8; 3 3 -2 5; 1 -4 7 12];


Funktionen für Matrix-Erzeugung[Bearbeiten | Quelltext bearbeiten]

eye, zeros, ones[Bearbeiten | Quelltext bearbeiten]

Matrix erweitern

  >> C = [1 2 3; 4 7 8; -2 4 2];
  >> B = [C, zeros(3,2); zeros(2,3), eye(2)]
  B =
    1     2     3     0     0
    4     7     8     0     0
   -2     4     2     0     0
    0     0     0     1     0
    0     0     0     0     1


diag[Bearbeiten | Quelltext bearbeiten]

Diagonale aus einer Matrix extrahieren

  >> A = [0 10 3 7; 4 1 -6 -8; 3 3 -2 5; 1 -4 7 12];
  >> diag(A)
  ans =
    0
    1
   -2
   12


Dreiecksmatrizen isolieren[Bearbeiten | Quelltext bearbeiten]

  >> A = [0 10 3 7; 4 1 -6 -8; 3 3 -2 5; 1 -4 7 12];
  >> triu(A)
  ans =
    0    10     3     7
    0     1    -6    -8
    0     0    -2     5
    0     0     0    12
  >> tril(A)
  ans =
    0     0     0     0
    4     1     0     0
    3     3    -2     0
    1    -4     7    12


andere entsprechende Funktionen[Bearbeiten | Quelltext bearbeiten]

  • rand(m,n) - zufällige Matrix generieren
  • hilb - Hilbert-Matrix generieren
  • ...


Operationen mit Matrizen und Arrays[Bearbeiten | Quelltext bearbeiten]

Mit Matrizen können in MATLAB folgende Funktionen verwendet werden:

  • + Addition
  >> A = [2 3 5; 7 6 -2; 1 2 0];
  >> B = [-2 1 7; 3 16 2; -1 -2 0];
  >> A + B
  ans =
    0     4    12
   10    22     0
    0     0     0
  >> C = [2 2; 4 -1];
  >> A = [2 3 5; 7 6 -2; 1 2 0];
  >> A + C
  ??? Error using ==> plus
  Matrix dimensions must agree.
  • - Subtraktion
  • * Multiplikation
  • ^ Potenz (Inverse mit A^-1 berechnen!)
  • \ linke Division (aus A * x = b)
  • / rechte Division (aus x * A = b)


Skalare Funktionen[Bearbeiten | Quelltext bearbeiten]

(Auswahl)

  • sin, asin, cos, acos, tan, atan
  • exp, log (natürlich)
  • abs, sign
  • sqrt
  • round, floor, ceil
  • ...


Vektorfunktionen[Bearbeiten | Quelltext bearbeiten]

(Auswahl)

  • max, min
  • sort
  • sum, prod
  • median, mean, std


Matrixfunktionen[Bearbeiten | Quelltext bearbeiten]

(Auswahl)

  >> A = [2 3 5; 7 6 -2; 1 2 0];
  >> eig(A) %Eigenwerte/Eigenvektoren
  ans =
     9.5149          
    -0.7575 + 1.9597i
    -0.7575 - 1.9597i
  >> det(A) %Determinante
  ans =
      42
  >> size(A) %Grösse
  ans =
       3     3
  >> rank(A) %Rang
  ans =
       3


Weiterführendes[Bearbeiten | Quelltext bearbeiten]