Lehrveranstaltungen

Sommersemester 2018/Summer Semester 2018

Algorithmisches Differenzieren

Im Rahmen der VL Anktuelle Themen aus der Numerik wird von Mai bis Juni ein Kurs “Algorithmisches Differenzieren” angeboten.

Gegenstand

Algorithmisches Differenzieren ist eine Technologie, die aus einem gegebenen lauffähigen Computerprogramm ein neues Computerprogramm automatisch generiert.

Wenn das ursprüngliche Programm die Auswertung einer beliebigen Funktion realisiert, so liefert das generierte Programm den Wert der Funktion und den exakten Wert ihrer Ableitung, d.h. ohne die Approximationsfehler, die bei einer numerischen Annäherung mit Hilfe von Differenzenquotienten entstehen.

Anwendung findet AD vor allen in der Optimierung, der Sensitivitätsanalyse und beim Lösen von nichtlinearen Gleichungssystemen.

Inhalt

In der Vorlesung wird eine Einführung in die Technik des Algorithmischen Differenzierens gegeben. Der Einfachheit halber werden wir uns auf das Ableiten von MATLAB-Code beschränken.

Im Einzelnen werden behandelt:

  • Ableitungsbegriffe;
  • Was ist AD? Vorwärtsmodus, Rückwärtsmodus;
  • Bestehende AD Software für MATLAB;
  • Anwendungen bei der Lösung nichtlinearer Gleichungssysteme, Newton-Verfahren, Optimierung;
  • AD-Software selbst gebaut; Ein einfaches AD Tool in MATLAB, programmiert an einem Nachmittag.

In die Veranstaltung integriert sind Übungen am Computer.

Zielgruppe und benötige Vorkenntnisse

Alle, die an einer Einführung in das algorithmische Differenzieren interessiert sind. Die LV ist eher praktisch orientiert, so dass auch Anwender hier nicht überfordert werden.

Voraussetzung sind Kenntnisse, wie sie im Grundstudium Mathematik erworben werden. Grundkenntnisse in MATLAB sind vorteilhaft, aber keine Bedingung.

Benötigte Resultate aus

  • numerischer Mathematik
  • Optimierung
  • Programmierung

werden in der Vorlesung bzw. Übung bereitgestellt.

Die Veranstaltung benutzt den Freitagstermin der LV “Aktuelle Themen aus der Numerik”, Freitag, 9:15-10:45 Uhr, Raum PRü-1104. Erstmalig wir sie am 11. Mai stattfinden. Es sind acht Termine (einschließlich Übung) geplant.

Das Skript (bis zum aktuellen Stand der VL.) zur LV finden Sie hier: Skript.pdf

Numerik für natur- und ingenieurwissenschaftliche Studiengänge II (Numerik für Geowissenschaftler)/Numerical Analysis of Differential Equations

Lecture In English language, tutorials in English and German language.

MATLAB in a Nutshell

In the tutorials we will perform some experiments to solve ODEs and PDE, where we use Matlab/Octave. For Matlab/Octave newbies we offer a short introduction in the basics of Matlab/Octave. See Downloads/Literature on our OPAL web page.

General remarks

The second part of the lecture course “Numerik für natur- und ingenieurwissenschaftliche Studiengänge” deals exclusively with differential equation, i.e. with ODEs and PDEs. It is identically with “Numerical Analysis of Differential Equation” for CMS, CSE, and VT-TUN.

When & where

When Where
Lecture Monday, 9:15 AM MIB-1113
Tutorial (CMS, CSE) Tuesday (even Weeks), 9:15 AM PRÜ-1103
Tutorial (BGIP, MNAT) Friday (odd Weeks), 9:15 AM MIB-1113

Contents

The lectures deals with

  • Analysis of ordinary differential equations (ODE);
  • Initial Value Problems (IVP);
  • Numerical methods for IVPs;
  • Classification of Partial Differential Equations (PDE);
  • Boundary Value Problems (BVPs);
  • Finite differences method;
  • Finite elements method;
  • Time dependent PDE problems.

Audience

CMS, CSE, VT-TUN, BGIP

Exam

Written exam (2hrs) at the end of semester.

Materials

We offer

  • slides of lectures in English language;
  • printable version of slides in English language;
  • printed script (in English language) available from “Medienzentrum” for approximately 3€;
  • exercise sheets in English and German language.
  • program templates for tutorials;

OPAL

Please register on OPAL

Fortgeschrittene Methoden der Programmierung in MATLAB

Lectures in German language. English speakers may have a look on “Introduction to Scientific Programming” in winter semester 2018/2019.

Allgemeine Bemerkungen

Ziel der Lehrveranstaltung ist es, vertiefende Kenntnisse der in MATLAB zu erarbeiten. Wir betrachten hier “Matlab” als Programmiersprache, die auch von anderen Programmen (Octave/freeMat) interpretiert werden kann.

Termine

Wann Wo
Vorlesung Montag, 14:00Uhr PRÜ-1104
Übung Dienstag (gerade Wo.), 7:00Uhr KKB-2097

Es werden die folgenden Aspekte behan­delt

  • Einführung in Matlab;
  • Konstruktion von Algorithmen: Iteration, Rekursion, Algorithmen strukturieren;
  • Einführung in die Konzepte der OOP: Klassen, Objekte, Vererbeung;
  • OOP mit Matlab: geeignete Datenstrukturen, Konstruktion und Implementierung von Klassen;
  • User Interfaces: Matlabs Klassen für GUIs, programmatic approach, GUIDE, AppDesigner;
  • Fehlerbehandlung: error, MExceptions;
  • Doumentation von Software: publish, doc, help.

Vorkenntnisse in MATLAB sind von Vorteil, aber nicht Voraussetzung zur Teilnahme an der LV. Eine Einführung in die Programmiersprache MATLAB wird in der VL gegeben.

Im Vergleich zu den letzten Durchläufen wird sich die LV im Sommer 2018 etwas ändern:

  • Es wird eine in die LV integrierte Einführung in Matlab für Anfängern geben;
  • Algorithmen werden einführend behandelt;
  • Es wird stärker auf die Unterschiede zwischen Matlab und Octave/freeMat eingegangen.
  • Die automatisierte Erstellung von Dokumentation wird erstmalig in der VL behandelt.
  • Automatisches Differenzieren wird nicht mehr als Beispiel vorkommen. Falls Sie sich für AD in Matlab interessieren, schauen sich bitte die LV “Aktuelle Themen aus der Numerik” an.

OPAL

Seite der VL auf OPAL

Prüfungsvorleistung

Voraussetzung für die Teilnahme an der Klausur ist das Bestehen einer Prüfungsvorleistung. Diese ist in Form eines Programmes abzuliefern.

Für die Prüfungsvorleistung 2016 war ein “klassischer” Fraktalgenerator mit grafischer Benutzerschnittstelle zu programmieren. Die abgegebenen Programme spiegeln die Vielfalt möglicher Desing- und Programmierentscheidungen wieder.

Preview on winter semester 2018/2019

Introduction to Scientific Programming

Numerik für natur- und ingenieurwissenschaftliche Studiengänge I

AnhangGröße
skript-blockkurs-2018.pdf422.73 KB