36
Matlab Praktikum Dipl.-Math. Zülfü Taskesen

Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

Embed Size (px)

Citation preview

Page 1: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

Matlab Praktikum

Dipl.-Math. Zülfü Taskesen

Page 2: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 2

Praktikumsübersicht

Teil 1 Erste Schritte in Matlab

• Einführung und Motivation• Einfaches Rechnen• Rechnen mit Vektoren und Matrizen

• Anwendungen zur Matrix und Vektorrechnung• Weitere Datentypen• Programmieren

Teil 2 Vertiefter Umgang mit Matlab

Teil 3 Funktionen in Matlab

• Funktionen• m-Files• Debuggen

Page 3: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 3

Teil 4 Graphische Ausgaben mit Matlab

• 2D Plots• Gestalten von Graphikausgaben• Mehrdimensionale Plots• Animationen

Teil 5 Erweiterungen von Matlab

• Toolboxen• Graphische Oberflächen• Profiler

• Selbstständiges Bearbeiten einer mathematischen Fragestellung mit Hilfe von Matlab

Teil 6 Projekt

Praktikumsübersicht

Page 4: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 4

Einführung und Motivation

Was ist Matlab?

• wurde in den 1970er Jahren zur Unterstützung von Kursen der Linearen Algebra und numerischen Analysis entwickelt.

• ist ein Softwarepaket für numerische Berechnungen und zur Visualisierung;

Matlab

MATrix LABoratory

Page 5: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 5

Einführung und Motivation

Was kann Matlab?

Matlab bietet

• eine einfache Syntax basierend auf dem Matrix-Datentyp;

• ein breites Spektrum mathematischer Funktionen und Algorithmen aus verschiedenen Anwendungsbereichen;

• eine plattformübergreifende Programmiersprache;

• einfach zu bedienende Visualisierungsmöglichkeiten.

Page 6: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 6

Einführung und Motivation

Matlab starten

Eingabefenster (Command Window):

Hier werden die Matlab Befehle eingegeben;

Nach erfolgreichem Start erscheint ein dreigeteiltes Fenster bestehend aus

Workspace Fenster:

Zeigt die definierten Variablen an;

Zeigt die zuletzt eingegebenen Befehle an;

History Fenster:

Page 7: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 7

Einfaches Rechnen in Matlab

Beispiel: Berechne zu einem Kreisradius r die Fläche und den Umfang des Kreises.

>> r = 3r =3>> A_Kreis = r ^2* piA_Kreis =28.2743>> U_Kreis = 2* r*piU_Kreis =18.8496

Page 8: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 8

Einfaches Rechnen in Matlab

Elementares Rechnen in Matlab:

• Variablen werden durch Zuweisungen eines Wertes mit ”=” definiert.

• Namen müssen mit einem Buchstaben anfangen und dürfen Buchstaben, Zahlen und den Unterstrich enthalten. Dabei wird Groß- und Kleinschreibung berücksichtigt.

• Die Grundrechenarten sind durch die Zeichen +,−,*, /,^, ( potenzieren) definiert.

• Bei den Operatoren gilt die übliche Auswertungsreihenfolge: Potenzieren vor Punktrechnung vor Strichrechnung. Auswertungsreihenfolgen können durch Klammerung geändert werden.

Page 9: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 9

Elementare Funktionen in Matlab

Es gibt eine Vielzahl elementarer Funktionen in Matlab:

exp, pow2 Exponentialfunktion zur Basis e bzw. 2

log, log10, log2 Logarithmus Funktionen

sqrt, realsqrt Wurzelfunktionen

sin, cos, tan Trigonometrische Funktionen

asin, acos, atan Inverse der trigonometrischen Funktionen

sinh, cosh, tanh Hyperbelfunktionen

asinh, acosh, atanh Area Hyperbolicus Funktionen

round, floor, ceil runden, abrunden, aufrunden

mod, rem, sign Modul, Divisionsrest, Vorzeichen

Page 10: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 10

Konstanten in Matlab

In Matlab sind einige spezielle Zahlen definiert:

realmin, realmax kleinste bzw. größte darstellbare Gleitpunktzahl

eps relative Genauigkeit von Gleitpunktzahlen

inf, -inf ±unendlich

NaN Not a number, nicht definierter Ausdruck, z.B. 0/0

pi Kreiszahl

i, j imaginäre Einheit

Page 11: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 11

Variablen in Matlab

• In Matlab werden Variablen durch Zuweisungen ohne vorherige Deklaration angelegt.

• In einem Workspace definierte Variablen können mit den Funktionen who und whos angezeigt werden.

• Durch Variablendefinition können vorhandene Matlab Funktionen und Variablen überschrieben werden.

• Mit clear <Variablenname> bzw. clear kann eine Variable bzw. alle Variablen im Workspace gelöscht werden.

Page 12: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 12

Komplexe Zahlen

• Komplexe und reellwertige Zahlen können in Matlab gleichzeitig ohne besondere Deklaration verwendet werden.

• Real- und Imaginärteil einer Zahl können mit den Funktionen real bzw. imag bestimmt werden.

• Der Betrag einer komplexen Zahl kann mit abs bestimmt werden.

• Vorsicht mit den Variablen i und j:

Page 13: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 13

Ausgabeformatierung

Die Ausgabeformatierung kann mit format angepasst werden.

format loose: Darstellung mit großen Abständen

format compact: kompakte Darstellung

format short: Festpunktdarstellung mit 5 Stellen

format long: Festpunktdarstellung mit 15 Stellen

format e: Gleitpunktdarstellung mit 5 Stellen

format long e: Gleitpunktdarstellung mit 15 Stellen

format rat: Rationale Näherung

Page 14: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 14

Einfache Skripte

Matlab Befehle können in Textdateien mit Endung .m gespeichert und im Workspace durch Eingabe des Dateinamens (ohne Endung) ausgeführt werden. Dazu kann der Matlab Editor edit oder jeder andere Texteditor benutzt werden.

Kegel.m

% Berechnung des Volumens% eines Kegelsr=3h=5V =1/3* r ^2* h

>> Kegelr =3h =5V =15>>

Page 15: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 15

• Zeilen, die mit einem % beginnen, werden als Kommentarzeilen behandelt.

• Lange Eingaben können durch ... auf mehrere Zeilen verteilt werden.

• Beim Aufruf im Workspace werden alle Skripte im aktuellen Verzeichnis und im Suchpfad berücksichtigt.

• Die Funktion what listet alle m-Files im aktuellen Verzeichnis auf.

Page 16: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 16

Rechnen mit Matrizen und Vektoren

• Matrizen und Vektoren können in Matlab durch Angabe der Elemente in eckigen Klammern definiert werden.

>> alpha =pi /4;>> A=[ cos ( alpha ), -sin ( alpha ); sin ( alpha ), cos ( alpha )]

A =0.7071 -0.70710.7071 0.7071

• Vektoren werden als Matrizen definiert, wobei die Zeilen- oder Spaltendimension 1 ist.• In Matlab sind Operatoren zum Rechnen mit Matrizen, Vektoren und Skalaren definiert.

Page 17: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 17

Operatoren für Matrizen

• Operationen zwischen zwei Matrizen / Vektoren: +, -, * zum Addieren, Subtrahieren, Multiplizieren.

• Operatoren zum Lösen linearer Gleichungssysteme: /, \.

• Komponentenweise Multiplikation und Division: skalare Multiplikation mit den Operatoren .* und ./:• Komponentenweises Potenzieren mit .^:

Page 18: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 18

Spezielle Matrizen

Einsmatrix- bzw. –vektor: ones(n), ones(n,m)

Nullmatrix- bzw. -vektor: zeros(n), zeros(n,m)

Einheitsmatrix bzw. -vektor: eye(n), eye(n,m)

Zufallsmatrix bzw. -vektor: rand(n,m), randn(n,m)

Diagonalelemente einer Matrix: diag(x), diag(A)

>> rand (3)ans =0.4898 0.7094 0.67970.4456 0.7547 0.65510.6463 0.2760 0.1626

Page 19: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 19

Matrixindizierung

über Zeilen- und Spaltenindizes über Indizes der Elemente

>> A =[1 2 3; 4 5 6]>> A(2, 2)ans =5>> A (2)ans =4

Page 20: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 20

Matrix-Abmessungen

• Die Abmessungen einer Matrix kann mit der Funktion size A bzw. [z,s]=size(A) ermittelt werden,

• mit length(A) kann man die Länge eines Vektors ermitteln.

• Die Funktion numel(A) gibt die Anzahl der Elemente von A zurück,

Page 21: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 21

Aufgaben -Elementares Rechnen

>> 3+4/5*6

>> 48/3-3^2

>> exp(700)

>> exp(710)

>> round(-2.6), fix(-2.6)

>>sqrt(1^2+1^2)

>> z = (3+2i)/(1-i)

>> real(z), imag(z)

>> z = 4i/(1+i)

>> conj(z)

>> angle(z)*180/pi

>> abs(z)

Ermitteln Sie das Ergebnis von

Page 22: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 22

Aufgaben - Rechnen mit Matrizen

Erzeugen Sie einen Zeilenvektor mit der ersten Koordinate 29 und der letzten 1, wobei sich die Koordinaten absteigend um 2 unterscheiden sollen.

Erzeugen Sie einen Vektor y, der die Funktionswerte des natürlichen Logarithmus an den Stellen 1; 3; 5; 7 enthält. Was ist y(1)?

>> zeros(3,2)

>> eye(3)

>> ones(2,3)

>> A = [1 2; 3 4; 5 6]

>> B = [7 8; 9 10; 11 12]

>> A.*B, A.^2+ B.^2

Page 23: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 23

Vertiefter Umgang mit Matlab

• Anwendungen zur Matrix und Vektorrechnung• Weitere Datentypen• Programmieren

Page 24: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 24

Anwendungen zur Matrix und Vektorrechnung

Polynome in Matlab

Beispiel: P(x) = 2x3 + x2 + 3.5x − 5

Page 25: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 25

Anwendungen zur Matrix und Vektorrechnung

Darstellung von Polynomen

Polynome werden in Matlab durch einen Zeilenvektor repräsentiert, wobei die Koordinaten die Koeffizienten des Polynoms darstellen. Die Reihenfolge ist absteigend festgelegt

p(x) = x^4 +8*x^3 + 2*x^2 + x -12

>> p=[1 -8 2 1 12]

Beachten Sie, dass Nullkoeffizienten mitgeführt werden müssen

Page 26: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 26

Anwendungen zur Matrix und Vektorrechnung

Auswerten von Polynomen

Polynome können mit der Funktion polyval ausgewertet werden

p(x) = x^4 +8*x^3 + 2*x^2 + x -12

>> p=[1 8 2 1 -12]

>> xo=2.5>>px = polyval(p,xo)

>> xo=-1:0.5:1>>px = polyval(p,xo)

Page 27: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 27

Anwendungen zur Matrix und Vektorrechnung

Zusammenfassung

Funktion Beschreibung

conv Multipliziert Polynome

Deconv Dividiert Polynome

poly Polynom aus Nullstellen

polyder Berechnet Ableitung

polyint Berechnet Integral

polyval Berechnet Polynomwerte

roots Berechnet Nullstellen

Page 28: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 28

Zeichenketten werden in Matlab in einfachen Hochkommata ’ ’ angegeben, gespeichert werden sie als Vektor von Buchstaben (char Array).

Weitere Datentypen

Zeichenketten

>> a= 'Hallo Bremen'

Auf die Buchstaben einer Zeichenkette kann wie auf Elemente von Matrizen zugegriffen werden.

>> a (1:5)

Page 29: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 29

Eine Verallgemeinerung von mehrdimensionalen Feldern sind Cell Arrays, in denen beliebige Datenstrukturen gespeichert werden können.

Weitere Datentypen

Cell Arrays

>> C={ rand(2,10),eye(10)}

Page 30: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 30

Programmieren

Steuerstrukturen

• for-Schleifen

• while-Schleifen

• Verzweigungen mit if

• Verzweigungen mit switch

Page 31: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 31

Programmieren

FOR-Schleifen

for variable = ausdruck

befehle

end

for n = 1:10

f = n^2

end

Page 32: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 32

Programmieren

while ausdruck

befehle

end

WHILE-Schleifen

w=0

while w > 1

w = w + 1

end

Page 33: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 33

Programmieren

If-Anweisung

if <Bedingung>

<Anweisung>

elseif <Bedingung>

<Anweisung>

else

<Anweisung>

end

if ( x >1)

disp (’ x ist kleiner als 1’);

elseif ( abstand <1)

disp (’ x ist größer als 1’);

else

disp (’ x ist keine reelle Zahl‘);

end

Page 34: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 34

Programmieren

switch Anweisung

switch <Ausdruck>

case Wert

<Anweisung>

case {Wert1, Wert2, ...}

<Anweisung>

otherwise

<Anweisung>

end

n= mod ( floor ( rand (1)*10) , 9)+1

switch n

case {1 ,4 ,9}

disp ('ist Quadratzahl ');

case {2 ,3 ,5 ,7}

disp ('ist Primzahl ');

otherwise

disp ('ist Kubikzahl ');

end

Page 35: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 35

Programmieren

Berechne eine Approximation an die Exponentialfunktion e^xdurch

Page 36: Matlab Praktikum Dipl.-Math. Zülfü Taskesen. 27.02.2014Dipl.-Math Zülfü Taskesen2 Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation

11.04.23 Dipl.-Math Zülfü Taskesen 36

ergebnis = 1;for i = 1 : n

ergebnis = ergebnis *i;

end

Fakultät

erg = 0;for i = 0 : n

erg = erg + x ^ i /ergebnis ;

end

Exponentialfunktion