36
Matlab-Seminar: Grundlagen Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah M.Sc., Davina Hartmann M.Sc. WiSe 2018/19 Universität Duisburg-Essen Mercator School of Management Lehrstuhl für Betriebswirtschaftslehre, insb. Service Operations www.msm.uni-due.de/so

Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

  • Upload
    dodat

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

Matlab-Seminar: Grundlagen

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah M.Sc., Davina Hartmann M.Sc.

WiSe 2018/19

Universität Duisburg-Essen Mercator School of Management

Lehrstuhl für Betriebswirtschaftslehre, insb. Service Operations

www.msm.uni-due.de/so

Page 2: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

2

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 3: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

3

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Was ist MATLAB?

Softwareumgebung zur Lösung mathematischer Probleme

Modellierung & Optimierung

Visualisierung der Ergebnisse

Primär für numerische Berechnungen mit Vektoren und Matrizen

Vorteil von MATLAB

Durch die interaktive Natur von MATLAB und die Einfachheit in der Handhabung können auch komplexere Probleme oft mit einem relativ geringen Zeitaufwand analysiert und gelöst werden

1. Organisatorisches

Matlab-Seminar: Grundlagen 1 Organisatorisches

Page 4: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

4

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Warum ein MATLAB-Seminar?

Matlab in der Praxis:

Standard für Datenanalyse („Big Data“), Design, Optimierung in Branchen wie Automotive, Finance, Energy, …

Großer Bedarf an Fachkräften mit vertieften IT-Kenntnissen

Matlab in Forschung & Lehre:

Standard in der Forschung zur Lösung nichtlinearer & stochastischer Modelle, z.B. in Logistik, Pricing, Revenue Management, aber auch VWL

Ideal in der Lehre zur Umsetzung quantitativer Modelle in Master- und Seminararbeiten…

zeigt Verständnis der Theorie

ermöglicht teils erst sinnvolle Bearbeitung, gerade auch bei Praxisarbeiten

Lernziele

Grundlagen der Programmierung (am Beispiel MATLAB)

Eigenständige Erschließung von Spezialwissen (z.B. durch Onlinehilfe, Suchmaschinen, …)

Strukturierung von umfangreicheren Implementierungen

Optimale Vorbereitung auf Arbeiten mit Implementierungsteil

Matlab-Seminar: Grundlagen 1 Organisatorisches

Page 5: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

5

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Teil 1 (1. Semesterhälfte): Präsenztermine

Präsenztermine mit Stoffvermittlung, Präsenzübungen & Betreuung

Mittwochs, 14:00–18:00 Uhr im Raum LC 134

Bearbeitung von Aufgabenblättern im 2er-Team, Kurzpräsentation am folgenden Termin

Teil 2 (2. Semesterhälfte): Anwendung auf umfassendes Projekt

Eigenständige Implementierung (2er-Team) quantitativer Modelle und Methoden aus den Bereichen Dynamic Pricing, Revenue Management, u.Ä.

Abschließender Präsenztermin zur Präsentation von Vorgehen & Ergebnis

Termin wird noch bekannt gegeben

Matlab-Seminar: Grundlagen 1 Organisatorisches

17.10.2018 21.11.2018 14.11.2018 31.10.2018 24.10.2018

Aufgabenblatt 1 Aufgabenblatt 2 Aufgabenblatt 3 Aufgabenblatt 4

Page 6: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

6

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Vorkenntnisse

Gute Kenntnisse in Mathematik & Optimierung

Keine Vorkenntnisse in MATLAB o. Ä. nötig

Ansprechpartner

Benedikt Finnah ([email protected])

Fragen

Bitte nur in der Veranstaltung oder in Moodle (https://moodle.uni-due.de/course/view.php?id=14113)

Einschreibeschlüssel wird in der ersten Veranstaltung bekannt gegeben

Schnelle Antwort in Moodle, manchmal innerhalb von Minuten durch Kommilitonen

Verfügbarkeit von Frage & Antwort für alle

Prüfungsleistungen

33% Bearbeitung und Präsentation von Aufgabenblättern, Implementierungen, Diskussionsbeteiligung

67% Abschlussprojekt inkl. Präsentation, Diskussionsbeteiligung

Daher Anwesenheit an allen Präsenzterminen erforderlich

Die Abgabe des ersten Aufgabenblattes gilt als Anmeldung zur Prüfung

Matlab-Seminar: Grundlagen 1 Organisatorisches

Page 7: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

7

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Ablauf eines Präsenztermins

Präsentation der Lösung des vorherigen Aufgabenblatts durch Studierende

Präsentation neuer Inhalte durch Dozenten

Bearbeitungszeit für das neue Aufgabenblatt

Abgabe der Aufgabenblattlösungen

Bis spätestens Mittwochs um 08:00 Uhr an [email protected]

Gezippter Ordner mit Namen: G#-AB* (# = Gruppennummer, *=AB-Nummer)

der Ordner enthält:

Einen Report zu jeder Aufgabe des Aufgabenblattes

Zugehörige .m-Dateien (MATLAB-Skripte und –funktionen)

Es gibt nur eine Version, d.h. es wird die erste Abgabe gewertet

MATLAB außerhalb des Seminars

Eine kostenlose Studentenversion wird von ZIM bereit gestellt

https://www.uni-due.de/zim/services/software/matlab_stud.shtml

Öffentliche PC-Pools mit MATLAB sind in Räumen LC 036, MA 425 und BA 028 zu finden

Matlab-Seminar: Grundlagen 1 Organisatorisches

Page 8: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

8

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Was darf man?

Sich beraten, wie eine Aufgabe zu verstehen ist

Idealerweise in Moodle

Falls Sie das Seminar wiederholen, dürfen Sie natürlich Ihre (!) alten Lösungen verwenden.

Was darf man nicht?

Code teilen, zeigen, vorführen

Abgaben vorheriger Semester kopieren

Code von Anderen schreiben lassen

Mögliche Konsequenzen

Abschreiben und abschreiben lassen gilt gleichermaßen als Täuschungsversuch

Konsequenzen: Prüfungsordnung, z.B. PO 2016: §22 (4)-(7)

Übungsaufgaben sind Prüfungsleistungen

Matlab-Seminar: Grundlagen 1 Organisatorisches

Page 9: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

9

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 10: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

10

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Einführung in MATLAB

Der Name MATLAB leitet sich von MATrix LABoratory ab

Besondere Stärke von MATLAB ist der Umgang mit Vektoren und Matrizen

Weite Verbreitung an Hochschulen und in der Industrie

Kostenlose Alternativen

Octave (http://www.gnu.org/software/octave/)

SciLab (http://www.scilab.org/)

Typische Anwendungen von MATLAB

Numerische Berechnungen aller Art

Modellierung, Simulation und Entwicklung von Prototypen technischer und wirtschaftlicher Probleme

Analyse, Auswertung und grafische Darstellung von Daten

Applikationsentwicklung mit Aufbau einer grafischen Benutzerschnittstelle

2 Einführung in MATLAB

Matlab-Seminar: Grundlagen 2 Einführung in MATLAB

Page 11: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

11

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Matlab-Seminar: Grundlagen 2 Einführung in MATLAB

Page 12: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

12

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 13: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

13

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Variablen

Variablen speichern Werte, welche ihnen zugewiesen werden

Die speicherbaren Werte werden durch den Datentyp der Variablen festgelegt

Variablen haben standardmäßig den Datentyp double, falls ihnen eine Zahl zugewiesen wird

Vorerst beschränken wir uns auf diesen Datentyp

Eine ausführliche Dokumentation über die Datentypen von MATLAB finden Sie hier: http://de.mathworks.com/help/matlab/data-types_data-types.html

3 Syntax

Matlab-Seminar: Grundlagen 3 Syntax

>> x = 5

x =

5

>> y = 7.1

y =

7.1000

>> z = x+y

z =

12.1000

Page 14: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

14

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Matlab-Seminar: Grundlagen 3 Syntax

Variablennamen müssen mit einem Buchstaben beginnen und dürfen aus maximal 63 Buchstaben, Zahlen und Unterstrichen bestehen (keine Umlaute)

Daher muss auf Groß- und Kleinschreibung geachtet werden

Wird das Ergebnis einer Rechenoperation keiner Variablen zugewiesen, so speichert MATLAB das Ergebnis in der Variablen ans

Konvention: Nur Matrizen werden mit groß geschriebenen Variablennamen bezeichnet

>> x = 5

x =

5

>> X = 7

X =

7

>> x+X

ans =

12

Page 15: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

15

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

ans(Resultat), NaN bzw. nan (Not-a-Number), pi (Kreiszahl ≈ 3.14) und Inf bzw. inf (Infinity) sowie i bzw. j (imaginäre Einheit) sind besondere Variablen

Diese sollten nicht überschrieben werden

Siehe auch http://www.mathworks.com/help/matlab/constants-and-test-matrices.html

Besondere Variablen bzw. Konstanten

Matlab-Seminar: Grundlagen 3 Syntax

>> x = pi*i + i*j

ans =

-1.0000 + 3.1416i

>> x = 1/0

x =

Inf

>> x = 1/Inf

x =

0

>> x = 0/0

x =

NaN

Page 16: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

16

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Rechenoperationen

Grundlegende Rechenoperationen sind die Addition (+), die Subtraktion (−), die Multiplikation (∗), die Division (/) und das Potenzieren (^)

Mathematische Funktionen

Einige der vielen Funktionen sind…

die trigonometrischen Funktionen ( sin, cos, usw. )

die Wurzelfunktion ( sqrt )

der natürliche Logarithmus und die Exponentialfunktion ( log, exp )

Siehe auch http://de.mathworks.com/help/matlab/elementary-math.html

Funktionen können ineinander verschachtelt werden (Bitte übertreiben Sie nicht)

Rechnen

Matlab-Seminar: Grundlagen 3 Syntax

>> sin(2)

ans =

0.9093

>> log( exp(1) )

ans =

1

Page 17: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

17

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 18: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

18

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Ein Skript beinhaltet eine Sammlung von Befehlen, die nacheinander ausgeführt werden

Erstellung eines Skripts über den Button „New Script“ im Tab „HOME“ ( Shortcut (Strg)+(N) )

Bearbeitung des Skripts im Editor, welcher sich automatisch öffnet

Ausführung des kompletten Skripts mit (F5) oder der momentan markierten Befehle mit (F9)

Skripte müssen vor dem ausführen in einer .m-Datei gespeichert werden

Tipp: Ein Semikolon (;) am Ende einer Zeile unterdrückt die Ausgabe

4 Skripte

Matlab-Seminar: Grundlagen 4 Skripte

Page 19: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

19

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Kommentare machen den Code deutlich leichter lesbar und nachvollziehbarer

Einfache Kommentare

Blockkommentare

Von nun an werden alle Skripte kommentiert. Dies gilt insbesondere für abzugebende Übungsaufgaben

Kommentare

Matlab-Seminar: Grundlagen 4 Skripte

% Dies ist ein Test für einen einfachen Kommentar.

% Dies auch.

sin(x)

%{

Dies ist ein Test für einen Blockkommentar.

Ein Blockkommentar kann über mehrere Zeilen gehen.

%}

sin(x)

Page 20: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

20

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Matlab-Seminar: Grundlagen 4 Skripte

Beispiel für ein Skript:

Ausgabe:

Beiden Variablen im Skript sind vom Typ String, welche Text speichern können

Zur Unterscheidung von Variablen mit unterschiedlichem Datentyp, sollte man bezeichnende Variablennamen wählen (Hier str_ ... )

str_HalloWelt = 'Hallo Welt';

str_meinSkript = 'Dies ist mein erstes Skript';

disp(str_HalloWelt); %disp gibt den Wert einer Variablen im Command Window aus

disp(str_meinSkript);

>> Mein_Skript

Hallo Welt

Dies ist mein erstes Skript

Page 21: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

21

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 22: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

22

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

5 Vektoren und Matrizen

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

% Definition eines Zeilenvektors

>> z = [1 2 3] % oder z=[1,2,3]

z =

1 2 3

% Definition eines Spaltenvektors

>> s = [1;2;3]

s =

1

2

3

% Definition einer Matrix

A = [1 2;3 4]

A =

1 2

3 4

% Transponieren

>> A' % oder transpose(A)

ans =

1 3

2 4

Page 23: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

23

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Addition (+), Subtraktion (−) und Multiplikation (∗) funktionieren für Vektoren und Matrizen wie gewohnt, falls die Dimensionen übereinstimmen

Die Division (/) für Matrizen ist als das Lösen von Gleichungssystemen definiert

Zusätzlich ist für Matrizen der \–Operator definiert, falls die Dimensionen übereinstimmen

Die Lösung der Gleichungssysteme ist mit / und \ schneller als über die Inverse A^(-1). Zudem sind diese Operatoren auch für nicht invertierbare und nicht quadratische Matrizen definiert

Vorsicht: MATLAB gibt auch bei nicht lösbaren Gleichungssystemen eine Lösung zurück

Rechenoperationen für Matrizen

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

% Definition der Koeffizientenmatrix

A = [1 2;3 4];

% Definition der rechten Seite

b = [5;10];

% Lösung des Gleichungssystems xA=b

x = A/b;

% Alternativ würde hier auch x=b*A^(-1) gehen

% Definition der Koeffizientenmatrix

A = [1 2;3 4];

% Definition der rechten Seite

b = [5;10];

% Lösung des Gleichungssystems Ax=b

x = A\b;

% Alternativ würde hier auch x=A^(-1)*b gehen

Least Square

Page 24: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

24

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Die meisten mathematischen Funktionen sind auch für Vektoren und Matrizen definiert. Diese werden auf jedes Element angewandt

Die Multiplikation (∗), die Division (/) und das Potenzieren (^) können ebenfalls elementweise auf Vektoren und Matrizen angewandt werden, falls deren Dimensionen übereinstimmen. Dazu wird der Punktoperator (.) verwendet

Elementweise Operationen und Funktionen

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

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

>> sin(A) % Der Sinus wird auf jedes Element von A angewandt

ans =

0.8415 0.9093

0.1411 -0.7568

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

>> B = [5 6;7 8];

>> A.*B % A und B werden elementweise multipliziert.

ans =

5 12

21 32

Page 25: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

25

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

Mit der Addition (+), der Subtraktion (−), der Multiplikation (∗) und der Division (/) können auch Skalare mit Matrizen bzw. Vektoren verknüpft werden. Die Rechenoperation wird dann mit jedem Element der Matrix bzw. des Vektors und dem Skalar ausgeführt

Vorsicht: Skalar hoch Matrix potenziert nicht elementweise. Dafür muss (.^) verwendet werden

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

>> A+5 % Addition von Matrix und Skalar

ans =

6 7

8 9

>> A/0.5 % Alternativ 0.5\A, 0.5/A funktioniert NICHT

ans =

2 4

6 8

Page 26: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

26

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Spezielle Vektoren und Matrizen

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

>> x = 1:8 % Erzeuge Zeilenvektor mit Elementen zwischen 1 und 8

x =

1 2 3 4 5 6 7 8

>> x = 1:2:8 % Erzeuge Zeilenvektor mit Elementen zwischen 1 und 8 und

Schrittweite 2

x =

1 3 5 7

>> A = eye(2) % Erzeuge Einheitsmatrix

A =

1 0

0 1

>> B = zeros(2,3) % Erzeuge eine Nullmatrix

B =

0 0 0

0 0 0

% Analog erzeugt B=ones(2,3) eine 2x3-Matrix deren Elemente alle den Wert 1

% besitzen

Page 27: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

27

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Indizierung

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

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

>> A(2,3) % Indizierung über Subskripte, d. h. Zeilen und Spalten

ans =

7

>> A(1,:) % : bedeutet alle Indizes

ans =

1 2 3 4

>> A(3) % Linearer Index

ans =

2

>> A(2,2:end)

ans =

6 7 8

𝐴 =1 2 3 45 6 7 8

Page 28: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

28

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

Dies sollte möglichst vermieden werden. Solche Zuweisungen verringern die Rechengeschwindigkeit und sind fehleranfällig

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

>> A(1,5) = 5 % Greift auf ein (noch) nicht vorhandenes Element zu

A =

1 2 3 4 5

5 6 7 8 0

𝐴 =

1 2 3 45 6 7 8

Page 29: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

29

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Über „open Variable“ im Home Menü kann man eine Variable im Variables Editor öffnen

Alternativ: Doppelklick auf die Variable im „Workspace“

Der Variables Editor ermöglicht eine komfortable Anzeige und Bearbeitung von Variablen

Dies bietet sich vor allem bei Matrizen und Vektoren an

Variables Editor

Matlab-Seminar: Grundlagen 5 Vektoren und Matrizen

Page 30: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

30

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 31: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

31

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

MATLAB verfügt über eine umfangreiche Hilfe, die im Help Browser angezeigt wird (Aufruf mit F1)

Tipp: Steht der Cursor innerhalb eines Wortes, wird dieses beim Drücken von F1 direkt nachgeschlagen

Mathworks Documentation Center http://www.mathworks.com/help/matlab/

Lehrbücher

Grupp, F. und F. Grupp (2010): MATLAB 7 für Ingenieure. 5. Aufl., Oldenbourg, München.

Schweizer, W. (2013): MATLAB kompakt. 5. Aufl., Oldenbourg, München.

Skripte

‎Eine Einführung in MATLAB (Günter Gramlich) https://www.hs-ulm.de/users/gramlich/EinfMATLAB.pdf

Matlab Primer (MathWorks) www.mathworks.com/help/pdf_doc/matlab/getstart.pdf

Weitere Quellen sind über Suchmaschinen zu finden

6 Verwendung der Hilfe

Matlab-Seminar: Grundlagen 6 Verwendung der Hilfe

Page 32: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

32

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Beispiel aus der MATLAB-Hilfe

Matlab-Seminar: Grundlagen 6 Verwendung der Hilfe

>> x=[1 5 -1 2 3];

>> M = max(x)

M =

5

>> [M,I] = max(x)

M =

5

I =

2

>> [~,I] = max(x)

I =

2

Page 33: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

33

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Agenda

1. Organisatorisches

2. Einführung in MATLAB

3. Syntax

4. Skripte

5. Vektoren und Matrizen

6. Verwendung der Hilfe

7. Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 34: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

34

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Reports

Veröffentlichen von Code inklusive Kommentaren und Output

„Lesbare“ externe Dokumentation

Teilen von Code zu Unterrichts- oder Demonstrationszwecken

Anleitung: https://de.mathworks.com/help/matlab/matlab_prog/publishing-matlab-code.html Vorgehen:

Erstellen Sie ein Skript

Unterteilen Sie (bei Bedarf) den Code in Abschnitte

Dokumentieren Sie den Code zu Beginn des Files und zu Beginn jedes Abschnitts

Formatierungsmöglichkeiten:

%% Titel

_Text_ kursiver Text

etc.

Veröffentlichung: Publish Tab

Standardformat: HTML

Für das Seminar ab jetzt: Abgabeformat HTML

7 Erstellen eines Reports

Matlab-Seminar: Grundlagen 7 Erstellen von Reports mit Hilfe der Publishing-Funktion

Page 35: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

35

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Matlab-Seminar: Grundlagen 7 Erstellen von Reports mit Hilfe der Publishing-Funktion

http://www.mathworks.com/help/matlab/matlab_prog/marking-up-matlab-comments-for-publishing.html

Page 36: Matlab-Seminar: Grundlagen - SO: Startseite · 3 Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations Matlab-Seminar WiSe

36

Univ.-Prof. Dr. Jochen Gönsch, Benedikt Finnah, Davina Hartmann Lehrstuhl für BWL, insb. Service Operations

Matlab-Seminar WiSe 2018/19

Erzeugen Sie nun eine Test-Abgabe einer Aufgabe zu einem Aufgabenblatt

Der Titel lautet „Aufgabenblatt 0, Gruppe <Gruppennummer>, Aufgabe 1“

Gegeben sind die folgenden Lösungen:

Aufgabe 1.a): Die Lösung besteht nur aus dem Text „MATLAB-Skripte können mithilfe der Publish-Funktion in einer ansprechenden Form veröffentlicht werden.“

Aufgabe 1.b): Die Lösung ist der Befehl x=rand(1,5). Die Ausgabe des Vektors 𝑥 soll im Report sichtbar sein und unter der Ausgabe noch der folgende Text erscheinen „rand erzeugt [0,1] gleichverteilte Zufallszahlen.“

Aufgabe 1.c): Die Lösung ist der Befehl y=sort(x). Die Ausgabe der Vektors 𝑥 soll im Report sichtbar sein und unter der Ausgabe noch der folgende Text erscheinen „sort sortiert die Elemente von 𝑥 in aufsteigender Reihenfolge.“

Test-Aufgabenblatt

Matlab-Seminar: Grundlagen 7 Erstellen von Reports mit Hilfe der Publishing-Funktion