Programmieren in der Computerorientierten Mathematik...

35
Programmieren in der Computerorientierten Mathematik I Einf¨ uhrungsveranstaltung Freie Universit¨ at Berlin 20. Oktober 2017 Tobias Kies

Transcript of Programmieren in der Computerorientierten Mathematik...

Programmieren in derComputerorientierten Mathematik I

Einfuhrungsveranstaltung

Freie Universitat Berlin

20. Oktober 2017

Tobias Kies

,Angewandte Mathematiker und ihre Fehler

”reales“ Problem

mathematisches Modell

Losungsalgorithmus

Implementierung

Modellfehler

Diskretisierungsfehler,Approximationsfehler, . . .

Rundungsfehler

,

2

,Beispiel

”reales“ Problem

Positionsbestimmung eines Flugobjekts zur Zeit T .

Position zu t = 0

Position zu t = T

Flugbahn

,

3

,Beispiel

mathematisches Modell

Vereinfachende Annahmen: Objekt als Punkt, Position x0 zu t = 0bekannt, Geschwindigkeitsvektor v(t) bekannt fur t ∈ [0,T ].

Fehler: Objekt ist kein Punkt, Messfehler in x(0) und v(t), . . .

Formel fur Position zum Zeitpunkt T :

x(T ) = x0 +

∫ T

0

v(t)dt

= x0 + limn→∞

T

n

n∑i=1

v

(i · T

n

)(Def. Riemann-Integral)

Wichtig: Wohldefiniertheit? (”Ergibt dieser Ausdruck Sinn?“)

,

4

,Beispiel

mathematisches Modell

Vereinfachende Annahmen: Objekt als Punkt, Position x0 zu t = 0bekannt, Geschwindigkeitsvektor v(t) bekannt fur t ∈ [0,T ].

Fehler: Objekt ist kein Punkt, Messfehler in x(0) und v(t), . . .

Formel fur Position zum Zeitpunkt T :

x(T ) = x0 +

∫ T

0

v(t)dt

= x0 + limn→∞

T

n

n∑i=1

v

(i · T

n

)(Def. Riemann-Integral)

Wichtig: Wohldefiniertheit? (”Ergibt dieser Ausdruck Sinn?“)

,

4

,Beispiel

mathematisches Modell

Vereinfachende Annahmen: Objekt als Punkt, Position x0 zu t = 0bekannt, Geschwindigkeitsvektor v(t) bekannt fur t ∈ [0,T ].

Fehler: Objekt ist kein Punkt, Messfehler in x(0) und v(t), . . .

Formel fur Position zum Zeitpunkt T :

x(T ) = x0 +

∫ T

0

v(t)dt

= x0 + limn→∞

T

n

n∑i=1

v

(i · T

n

)(Def. Riemann-Integral)

Wichtig: Wohldefiniertheit? (”Ergibt dieser Ausdruck Sinn?“)

,

4

,Beispiel

mathematisches Modell

Vereinfachende Annahmen: Objekt als Punkt, Position x0 zu t = 0bekannt, Geschwindigkeitsvektor v(t) bekannt fur t ∈ [0,T ].

Fehler: Objekt ist kein Punkt, Messfehler in x(0) und v(t), . . .

Formel fur Position zum Zeitpunkt T :

x(T ) = x0 +

∫ T

0

v(t)dt

= x0 + limn→∞

T

n

n∑i=1

v

(i · T

n

)(Def. Riemann-Integral)

Wichtig: Wohldefiniertheit? (”Ergibt dieser Ausdruck Sinn?“)

,

4

,Beispiel

Zwischenschritt:Diskretisierung

Ziel: Approximiere die Losung mit Hilfe endlich vieler

”Elementaroperationen“.

Dafur zunachst: Das Problem diskretisieren, also”endlich machen“.

Approximation

xN(T ) := x0 +T

N

N∑i=1

v

(i · T

N

)

Diskretisierungsfehler

‖x(T )− xN(T )‖ ≤ ?

,

5

,Beispiel

Zwischenschritt:Diskretisierung

Ziel: Approximiere die Losung mit Hilfe endlich vieler

”Elementaroperationen“.

Dafur zunachst: Das Problem diskretisieren, also”endlich machen“.

Approximation

xN(T ) := x0 +T

N

N∑i=1

v

(i · T

N

)

Diskretisierungsfehler

‖x(T )− xN(T )‖ ≤ ?

,

5

,Beispiel

Zwischenschritt:Diskretisierung

Ziel: Approximiere die Losung mit Hilfe endlich vieler

”Elementaroperationen“.

Dafur zunachst: Das Problem diskretisieren, also”endlich machen“.

Approximation

xN(T ) := x0 +T

N

N∑i=1

v

(i · T

N

)

Diskretisierungsfehler

‖x(T )− xN(T )‖ ≤ ?

,

5

,Beispiel

Losungsalgorithmus

Fur unser Problem: Ein Losungsalgorithmus ist eine konkreteAufeinanderfolge von Elementaroperationen, mit denen xN(T )berechnet werden kann.

Es gibt unendlich viele Losungsalgorithmen!

Haufig werden Algorithmen nur als Pseudocode angedeutet (oder durcheine konkrete Implementierung):

1: Gegeben: x0 ∈ R3, N ∈ N, T ∈ R>0 und v(i TN)∈ R3 fur i ∈ {1, . . . ,N}

2: Initialisiere xN(T ) := x0, h := TN

3: for i = 1, . . . ,N do4: xN(T )← xN(T ) + hv(ih)5: end for

,

6

,Beispiel

Losungsalgorithmus

Fur unser Problem: Ein Losungsalgorithmus ist eine konkreteAufeinanderfolge von Elementaroperationen, mit denen xN(T )berechnet werden kann.

Es gibt unendlich viele Losungsalgorithmen!

Haufig werden Algorithmen nur als Pseudocode angedeutet (oder durcheine konkrete Implementierung):

1: Gegeben: x0 ∈ R3, N ∈ N, T ∈ R>0 und v(i TN)∈ R3 fur i ∈ {1, . . . ,N}

2: Initialisiere xN(T ) := x0, h := TN

3: for i = 1, . . . ,N do4: xN(T )← xN(T ) + hv(ih)5: end for

,

6

,Beispiel

Losungsalgorithmus

Fur unser Problem: Ein Losungsalgorithmus ist eine konkreteAufeinanderfolge von Elementaroperationen, mit denen xN(T )berechnet werden kann.

Es gibt unendlich viele Losungsalgorithmen!

Haufig werden Algorithmen nur als Pseudocode angedeutet (oder durcheine konkrete Implementierung):

1: Gegeben: x0 ∈ R3, N ∈ N, T ∈ R>0 und v(i TN)∈ R3 fur i ∈ {1, . . . ,N}

2: Initialisiere xN(T ) := x0, h := TN

3: for i = 1, . . . ,N do4: xN(T )← xN(T ) + hv(ih)5: end for

,

6

,Beispiel

Losungsalgorithmus

Fur unser Problem: Ein Losungsalgorithmus ist eine konkreteAufeinanderfolge von Elementaroperationen, mit denen xN(T )berechnet werden kann.

Es gibt unendlich viele Losungsalgorithmen!

Haufig werden Algorithmen nur als Pseudocode angedeutet (oder durcheine konkrete Implementierung):

1: Gegeben: x0 ∈ R3, N ∈ N, T ∈ R>0 und v(i TN)∈ R3 fur i ∈ {1, . . . ,N}

2: Initialisiere xN(T ) := x0, h := TN

3: for i = 1, . . . ,N do4: xN(T )← xN(T ) + hv(ih)5: end for

,

6

,Beispiel

Implementierung

Potentieller Nutzen

Illustration bewiesener Ergebnisse

Simulationen in Zusammenarbeit mit anderen Wissenschaftlern

Leichtere Verfugbarkeit der Algorithmen fur andere

Impulse fur die weitere Forschung

Beispiel

,

7

,Beispiel

Implementierung

Potentieller Nutzen

Illustration bewiesener Ergebnisse

Simulationen in Zusammenarbeit mit anderen Wissenschaftlern

Leichtere Verfugbarkeit der Algorithmen fur andere

Impulse fur die weitere Forschung

Beispiel

,

7

,Beispiel

Implementierung

Potentieller Nutzen

Illustration bewiesener Ergebnisse

Simulationen in Zusammenarbeit mit anderen Wissenschaftlern

Leichtere Verfugbarkeit der Algorithmen fur andere

Impulse fur die weitere Forschung

Beispiel

,

7

,Beispiel

Implementierung

Potentieller Nutzen

Illustration bewiesener Ergebnisse

Simulationen in Zusammenarbeit mit anderen Wissenschaftlern

Leichtere Verfugbarkeit der Algorithmen fur andere

Impulse fur die weitere Forschung

Beispiel

,

7

,Beispiel

Implementierung

Potentieller Nutzen

Illustration bewiesener Ergebnisse

Simulationen in Zusammenarbeit mit anderen Wissenschaftlern

Leichtere Verfugbarkeit der Algorithmen fur andere

Impulse fur die weitere Forschung

Beispiel

,

7

,Beispiel

Implementierung

Potentieller Nutzen

Illustration bewiesener Ergebnisse

Simulationen in Zusammenarbeit mit anderen Wissenschaftlern

Leichtere Verfugbarkeit der Algorithmen fur andere

Impulse fur die weitere Forschung

Beispiel

,

7

,Zusammengefasst

Angewandte Mathematik findet sich haufig an der Schnittstellezu anderen Wissenschaften.

Physik, Chemie, Biologie, Informatik, Medizin,Gesellschaftswissenschaften, . . .

Programmieren ist ein ungemein wichtiger Bestandteil des Alltagsangewandter Mathematiker. . .

Verifizierung von Resultaten, Inspiration fur neue Resultate,Teil interdisziplinarer Zusammenarbeit, . . .

. . . aber das Hauptaugenmerk liegt woanders.

Analyse mathematischer Modelle, Entwicklung undAnalyse von Algorithmen, . . .

,

8

,Zusammengefasst

Angewandte Mathematik findet sich haufig an der Schnittstellezu anderen Wissenschaften.

Physik, Chemie, Biologie, Informatik, Medizin,Gesellschaftswissenschaften, . . .

Programmieren ist ein ungemein wichtiger Bestandteil des Alltagsangewandter Mathematiker. . .

Verifizierung von Resultaten, Inspiration fur neue Resultate,Teil interdisziplinarer Zusammenarbeit, . . .

. . . aber das Hauptaugenmerk liegt woanders.

Analyse mathematischer Modelle, Entwicklung undAnalyse von Algorithmen, . . .

,

8

,Zusammengefasst

Angewandte Mathematik findet sich haufig an der Schnittstellezu anderen Wissenschaften.

Physik, Chemie, Biologie, Informatik, Medizin,Gesellschaftswissenschaften, . . .

Programmieren ist ein ungemein wichtiger Bestandteil des Alltagsangewandter Mathematiker. . .

Verifizierung von Resultaten, Inspiration fur neue Resultate,Teil interdisziplinarer Zusammenarbeit, . . .

. . . aber das Hauptaugenmerk liegt woanders.

Analyse mathematischer Modelle, Entwicklung undAnalyse von Algorithmen, . . .

,

8

,Zielsetzung

Beherrschung diverser Grundlagen des Programmierens.

Variablen, Funktionen, Kontrollstrukturen, . . .

Fahigkeit, einfache mathematische Algorithmen zu implementieren.

Zahlenumwandlung, euklidischer Algorithmus, gaußschesEliminationsverfahren,. . .

,

9

,Zielsetzung

Beherrschung diverser Grundlagen des Programmierens.

Variablen, Funktionen, Kontrollstrukturen, . . .

Fahigkeit, einfache mathematische Algorithmen zu implementieren.

Zahlenumwandlung, euklidischer Algorithmus, gaußschesEliminationsverfahren,. . .

,

9

,Programmieren mit MATLAB

Wir verwenden fur diesen Kurs MATLAB.

I Mathematisch angehauchte Syntax

I Einfach zu erlernende Sprache

I Einfach auszufuhrende Programme

I Schneller Zugriff auf zahlreiche mathematische Standardalgorithmen

I Ausfuhrliche Dokumentation und große Community

Programmausfuhrung oft langsamer als C/C++ (besonders beiineffizienter Implementierung)

Kostenpflichtig (Alternative furs Zuhause: Octave)

Kaum Objektorientierung

Wenig Nahe zur Maschine

,

10

,Programmieren mit MATLAB

Wir verwenden fur diesen Kurs MATLAB.

I Mathematisch angehauchte Syntax

I Einfach zu erlernende Sprache

I Einfach auszufuhrende Programme

I Schneller Zugriff auf zahlreiche mathematische Standardalgorithmen

I Ausfuhrliche Dokumentation und große Community

Programmausfuhrung oft langsamer als C/C++ (besonders beiineffizienter Implementierung)

Kostenpflichtig (Alternative furs Zuhause: Octave)

Kaum Objektorientierung

Wenig Nahe zur Maschine

,

10

,Programmieren mit MATLAB

Wir verwenden fur diesen Kurs MATLAB.

I Mathematisch angehauchte Syntax

I Einfach zu erlernende Sprache

I Einfach auszufuhrende Programme

I Schneller Zugriff auf zahlreiche mathematische Standardalgorithmen

I Ausfuhrliche Dokumentation und große Community

Programmausfuhrung oft langsamer als C/C++ (besonders beiineffizienter Implementierung)

Kostenpflichtig (Alternative furs Zuhause: Octave)

Kaum Objektorientierung

Wenig Nahe zur Maschine

,

10

,MATLAB fur die Computerorientierte Mathematik I

MATLAB ist geeignet fur. . .

I Programmier-Einsteiger

I kleine bis mittelgroße wissenschaftliche Berechnungen

I Prototyping

MATLAB ist nicht oder nur eingeschrankt geeignet fur. . .

sehr große, rechenintensive Probleme

nicht-wissenschaftliche Anwendungen

umfangreiche Projekte

Open Source Projekte

=⇒ Fur das Ziel dieser Veranstaltung bietet MATLAB einenpassenden Rahmen.

,

11

,MATLAB fur die Computerorientierte Mathematik I

MATLAB ist geeignet fur. . .

I Programmier-Einsteiger

I kleine bis mittelgroße wissenschaftliche Berechnungen

I Prototyping

MATLAB ist nicht oder nur eingeschrankt geeignet fur. . .

sehr große, rechenintensive Probleme

nicht-wissenschaftliche Anwendungen

umfangreiche Projekte

Open Source Projekte

=⇒ Fur das Ziel dieser Veranstaltung bietet MATLAB einenpassenden Rahmen.

,

11

,MATLAB fur die Computerorientierte Mathematik I

MATLAB ist geeignet fur. . .

I Programmier-Einsteiger

I kleine bis mittelgroße wissenschaftliche Berechnungen

I Prototyping

MATLAB ist nicht oder nur eingeschrankt geeignet fur. . .

sehr große, rechenintensive Probleme

nicht-wissenschaftliche Anwendungen

umfangreiche Projekte

Open Source Projekte

=⇒ Fur das Ziel dieser Veranstaltung bietet MATLAB einenpassenden Rahmen.

,

11

,Nutzen uber die Vorlesung hinaus

Einstieg in die Programmierung

Voraussetzung fur diverse weiterfuhrende Kurse

Relevanz in Wissenschaft und Industrie

Erleichterter Einstieg in andere Sprachen wie R, Python und Fortran

Kann fur Schulprojekte in der Oberstufe verwendet werden?

Kann eine gemeinsame Plattform zwischen Mathematiker und Informatikerbieten

Kann als extrem machtiger Taschenrechner den wissenschaftlichen Alltagerleichtern

,

12

,MATLAB lernen

Mit Hilfe der Vorlesung

Ubungsaufgaben

Einfuhrungsskript (sowie weitere Unterlagen spater)

Programmiersprechstunde

regelmaßige Tutorien

MATLAB-Tutorien

Aus Eigenantrieb

Internet (besonders MathWorks und Stack Exchange)

Literatur

Fragen stellen!

,

13

,MATLAB lernen

Mit Hilfe der Vorlesung

Ubungsaufgaben

Einfuhrungsskript (sowie weitere Unterlagen spater)

Programmiersprechstunde

regelmaßige Tutorien

MATLAB-Tutorien

Aus Eigenantrieb

Internet (besonders MathWorks und Stack Exchange)

Literatur

Fragen stellen!

,

13

,

Fragen?

,

14