Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil....
Transcript of Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil....
For exercises only
- 1 - Dr.-Ing. habil. Jörg Wollnack
3 Kurzeinführung in Matlab
Matlab ist ein sehr leistungsfähiges interaktives Programmpaket für numerische Berechnungen. Nutzen Sie dies parallel zu den Vorlesungen. Sie können damit persönlich erfahren, das abstrakte mathematische Ansätze heute quasi direkt zu Programmcode führen. Dies gilt um so mehr für objektorientierte Programmiersprachen, wie z. B. C++. Matlab selbst ist objektorientiert konzipiert, jedoch kann der Anwender nur eingeschränkt eigene Objekte implementieren. Das allgemeine numerische Objekt in Matlab ist eine Matrix, wobei Vektoren und Skalare deren Spezialfälle sind. Als Elemente der Matrizen dienen komplexe Zahlen, deren Spezialfälle reelle Zahlen sind.
3.1 Interaktives Command Window
Die Abb. 1 zeigt das interaktive Matlab-Programm (Command Window), das nach dem Aufruf von Matlab erscheint.
Abb. 1: Matlab Command Window
• Matlab unterscheidet die Groß- und Kleinschreibung in Variablennamen!
• Mit Help Name können Informationen zu Befehlen ausgegeben werden. Eine Vertiefung können Sie im Full Help vornehmen (siehe Abb. 3).
For exercises only
- 2 - Dr.-Ing. habil. Jörg Wollnack
Das Workspace im Command Window in Abb. 2 zeigt die Variablen einer Sitzung an. Durch ein Doppelklick wird das Datenobjekt geöffnet und Sie erhalten mehr Informationen zu diesem Objekt.
Abb. 2: Matlab Workspace
Abb. 3: Matlab Full Product Help
For exercises only
- 3 - Dr.-Ing. habil. Jörg Wollnack
3.2 Elementare Befehle (Auszug)
Im Folgenden in Kurzform die ersten wichtigen Befehle von Matlab.
3.2.1 Elementare Eingaben
Pos. Kommando Erläuterungen
1 ; hinter einem Statement unterdrückt Ausgaben 2 x=5 x den Wert 5 zuweisen 3 … Fortsetzungszeichen zur optischen Strukturierung des
Programmcodes 4 % Kommentar Kommentare zur Dokumentation 5 who Variablen auflisten 6 whos Variablen detailliert auflisten 7 clear all Matlab-Umgebung vollständig aufräumen
3.2.2 Vektoren und Matrizen
Pos. Kommando1 Erläuterungen
1 s = [6;7;9]; Spaltenvektor erzeugen; Semikolon trennt Zeilen 2 z = [1 2 3 4 5];
z = [1,2,3,4,5]; Zeilenvektor erzeugen
3 y = 2:5; : Operator erzeugt Zeilenvektor mit Elementen von 2 bis 5 4 y = 1:2:9; : : Operatoren erzeugen Zeilenvektor von 1 bis 9 mit einen
Inkrement von 2 5 A = [1,2,3; 4,5,6]; Matrix eingeben. Komma oder Leerzeichen trennt Elemente und
Semikolon erzeugt neue Zeile 6 e = A(3,4);
B(1,2)=e; Element extrahieren oder zuweisen
7 s = A(:,2); B(:,3)=s;
Spalte aus Matrix extrahieren oder zuweisen
8 z = A(4,:); D(3,:)=z;
Zeile aus Matrix extrahieren oder zuweisen
9 Z=zeros(M,N); Nullmatrix 0 erzeugen 10 E=eye(M); Einheitsmatrix E erzeugen 11 [M,N] = size(M) Dimension der Matrix abfragen 12 v = s’ Transponierungsoperator sowohl für Vektoren als auch Matrizen
1 Alle Zahlen können selbst wieder symbolische Ausdrücke sein, die Berechnungen implizieren.
For exercises only
- 4 - Dr.-Ing. habil. Jörg Wollnack
In Matlab ist eine Matrixalgebra implementiert (siehe Abb. 4).
Abb. 4: Matlab Full Matrix Algebra
• Einzelheiten hierzu über Matlab Full Help.
3.3 Programmieren in Matlab
Die Programmierung in Matlab erfolgt mit dem Matlab Editor. Der Matlab Editor kann über das Command Window mit File New oder Open aufgerufen werden. Die Matlab-Programme werden in M-Files gespeichert. Die Programmiersprache ist C ähnlich. Die Programme werden durch Aufruf ihres Namens aktiviert. Hierzu müssen die Suchfade die Directory adressieren, in der das Programm zu finden ist. Das erste passende Programm wird ausgeführt, weshalb die Reihenfolge der Pfade von Bedeutung ist. Der Aufruf von Set Path (siehe Abb. 5) erfolgt aus dem Command Window über das File Menü. Nach der Definition der Pfade sollten diese mit Save gespeichert werden, ansonsten gehen die definierten Einstellungen nach dem Schließen von Matlab verloren.
Abb. 5: Matlab Set Path
For exercises only
- 5 - Dr.-Ing. habil. Jörg Wollnack
Matlab verwendet Prozeduren function Y = HRPYV(RPYPose) zur Strukturierung. Sowohl das Rückgabeobjekt als auch die formelle Argumentliste kann beliebige Objekte im Sinne von
function [JX,JXerror,JXdErApp,JXiNend,JXdHend] = JakobiX('yVxVpV',X,p,RombPara) umfassen (siehe auch folgenden Programmbeispiel). Innerhalb der Funktion deklarierte Variablen sind nur lokal gültig. Syntax: function [Formelle Ausgabeliste] = FunktionsName(Formelle Eingabeliste) Anweisungen
Aufrufsyntax: [Aktuelle Ausgabeliste] = FunktionsName(Aktuelle Eingabeliste)
Ein Beispielprogramm zeigt der folgende Abschnitt:
% Test Jakobi Matrizen % TestDerivation.m % % Autor: (C) Dr. J. Wollnack 06.04.2008 Lehrmaterial % % Workspace löschen clear all; % Maschinengenauigkeit MDefs = MachineDefs; % Romberg-Parameter RombPara = struct('MACHEPS',1.0E-12,'Eps',1.0E-10, ... 'Spalten',5,'IniStep',1.0E-3); % Parametervektor p = [ 1,2,3,4,... 2,2,3,5 ] % Entwicklungspunkt x = [ 1 2 3 ] % Entwicklungspunkte X = [ 1 2 3 ; ... 2 3 4 ; 5 6 7 ; 8 9 10 ; -1 -2 -3 ; -4 -5 -6 ]
For exercises only
- 6 - Dr.-Ing. habil. Jörg Wollnack
% Funktionswert an der Stelle x y = feval('yVxVpV',x,p) % Jakobi-Matrizen nach X und p berechnen [JX,JXerror,JXdErApp,JXiNend,JXdHend] = JakobiX('yVxVpV',X,p,RombPara); [JP,JPerror,JPdErApp,JPiNend,JPdHend] = JakobiP('yVxVpV',X,p,RombPara); % Jakobi-Matrizen ausgeben JX JP
Weiter Programmbeispiele können Sie den Demos entnehmen (siehe Abb. 6).
Abb. 6: Matlab Help Demos
For exercises only
- 7 - Dr.-Ing. habil. Jörg Wollnack
3.4 Grafikbefehle
3.4.1 Grafikausgaben (Auszug)
Pos. Kommando Erläuterungen
1 plot(x,y); Linearer x/y-Graph 2 loglog(x,y); doppeltlogarithmischer Graph 3 semilogx(x1,y1,…) einfachlogarithmischer Graph 4 semilogy(x1,y1…) einfachlogarithmischer Graph 5 surfl(x,y,z) 3D Graph mit shading 6 shading interp Shading Interpolation aktivieren 7 colormap(gray) Farbtabelle grau benutzen 8 figure; Neues Ausgabebild erzeugen 9 imshow(I,[0 255]); Grauwertbild mit 256 Graustufen (1 Byte pro Pixel)
3.5 Matlab Machdefs und Tools
Pos. Kommando Erläuterungen
1 MachineDefs() Rechnergenauigkeit usw. 2 ReadDataFileMatrix(FileNameMatrix) C++ Streaming Matrix FileNameMatrix lesen 3 ReadDataMatrix(fid) C++ Streaming fid lesen
www.tu-harburg.de/ft2/wo/ Lehrunterlagen Matlab
3.6 Matlab Demos des Herstellers
Matlab Demos http://www.mathworks.com/products/matlab/demos.html