Summer 2018

Lecturer: | G. Kanschat | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

Assistants: | D. Jando, P. Lucero, B. Boll | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Class data: | LSF, MÜSLI | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Lectures: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Tutorials: |
Mo 16-18h, Seminarraum 11, D. Jando Tue 11-13h, Seminarraum 11, P. Lucero (english) Fr 14-16h, Seminarraum 11, B. Boll | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Office hours for programming purposes: | Wed 11-13h, PC-Pool Software 1 |

- The third programming sheet is online.

- Exercise Sheet 1 (Monday 23.04. at noon)
- Exercise Sheet 2 (Monday 30.04. at noon)
- Exercise Sheet 3 (Monday 07.05. at noon)
- Exercise Sheet 4 (Monday 14.05. at noon)
- Exercise Sheet 5 (Tuesday 22.05. at noon)
- Exercise Sheet 6 (Monday 28.05. at noon)
- Exercise Sheet 7 (Monday 04.06. at noon)

- Programming Exercise Sheet 1

Matlab/Octave: run_method.m, rhs.m, blackbox_method.m

Python (use Python3 as there may be incompatibilities with earlier versions): run_method.py, rhs.py, blackbox_method.py

- Programming Exercise Sheet 2
- Programming Exercise Sheet 3

Matlab/Octave: main.m, run_rk.m, rk.m

Python: base_method.py, ivp.py, rk.py

The lecture will mainly follow these notes Lecture notes.

Maybe additional topics will be treated during the semester. Corresponding chapters will be published here.Further reading:

- E. Haier, S. Norsett, G. Wanner: Solving Ordinary Differential Equations I and II, Springer
- Stoer, Bulirsch: Introduction to Numerical Analysis, Springer
- R. Freund, R. Hoppe: Stoer/Bulirsch - Numerische Mathematik 2, Springer
- P. Deuflhard, F. Bornemann: Numerische Mathematik II, de Gruyter
- R. Rannacher: Skript Numerik I (German)

We will prepare weekly homework assignments. The purpose of these assignments is training the subjects learned in class and developing an understanding for the taught concepts. The assignments are essential for acquiring the competences taught in the class and tested in the final exam.

The homework assignments should be prepared in small groups discussing the steps of the solution and agreeing on the written version handed in to the tutors. The groups can change over the semester, but students are advised to seek some continuity in their own interest. The written assignment has to be well structured and documented, a simple list of formulas is not sufficient to be reviewed. Homework assignments can be prepared in English or German

Theoretical homework will be evaluated according to completeness and mathematical correctness. The assignments will be returned with comments of the tutors. There will be no points given and accumulated over the semester.

Programming homework can be handed in in any widespread programming language. Programming advice will only be given for Matlab/Octave and Python, possibly C++. Programs have to be documented and must be handed in with proof of function. Technical details wil be discussed with the tutors.

In the following we provide some informations about two programming languages: MATLAB / GNU Octave and C++. You can use any other language, but we won't provide support.

MATLAB is a commercial software used by many companies. A big advantage is, that MATLAB is very easy to learn.
You can get MATLAB from the URZ for free here.
Also it is installed in most Computer Pools. You can find a list of the pools here .

GNU Octave is the free equivalent to MATLAB, which is in most cases compatible to MATLAB Code. Usually it is installed on each linux computer,
if not then check your package manager. Or download it directly from the Webpage.

P. Siehr gave an introduction for first-term students in the "Vorkurs". The course was in German - you can find the slides here.
(The example-code for max(a,b,c) is wrong.)

If you find a good tutorial in English, then please tell us the url, so that we can put it on this webpage. This tutorial is "ok".

Python is an interpreted high-level programming language for general-purpose programming with a design philosophy emphasizing code readability.
It provides constructs that enable clear programming on both small and large scales. Python supports object-oriented, imperative, functional and procedural paradigms, and has a large and comprehensive standard library.

Python is an interesting middle point between MATLAB/GNU Octave and C++, as it is fairly easy to learn and use since it is interpreted like MATLAB/GNU Octave, while being powerful enough to allow large and complex programs with a
relatively high performance. Python's library is very large and features packages to perform many operations that are needed in a wide range of applications, particularly for mathematics.

The Python community is very large and many tutorials and forums are available. The official tutorial is available here .

If you have recommendations of other tutorials that could be interesting please tell us.

C++ is one of the most commonly used programming languages. If you are interested in numerical analysis for your studies (bachelor / master thesis) you eventually learn to programm in C++. Here you can find tutorials in English 1, English 2 and German.

- The written final exam will take place
**Thursday, June 21, 2018 at 09:00 in INF 205 (Mathematikon), Conference room, 5th floor** - Optionally, the final exam can be replaced by the programming exam. The programming exam will be published online on June 7, 2018, and has to be handed in by July 20, 2018.

For the written exam: - You are allowed to bring one sheet of paper (DIN A4), individually designed on both sides.
- There is no need for registration, just come to the exam.
- The questions will be in English, students can prepare their answers either in English or in German.