Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil....

7
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).

Transcript of Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil....

Page 1: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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).

Page 2: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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

Page 3: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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.

Page 4: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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

Page 5: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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 ]

Page 6: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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

Page 7: Kurzeinführung in Matlab - tuhh.de · PDF fileFor exercises only - 1 - Dr.-Ing. habil. Jörg Wollnack 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives

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