Algorithmen und Programmieren

Ansprechpartner

Termine

Vorlesung/ Übung:Do, 08:15 - 11:15 UhrRaum: 34-253 (Terminal-Pool RHRZ)

Inhalt

Die Lehrveranstaltung ist so konzipiert, dass Studierende Programmierkenntnisse erwerben können, auch ohne vorherige Erfahrung in der Programmierung. Voraussetzung für den Lernerfolg ist jedoch eine aktive und kontinuierliche Mitarbeit.

Die Lehrinhalte umfassen nach aktuellem Stand (Änderungen vorbehalten):

  • Geometrisches Problem: Berechnung eines Kreises aus drei gegebenen Punkten (C++-Programmierung, Einführung in Unterroutinen)
  • Numerische Integration: Implementierung der Simpson-Regel in C++
  • Fourier-Analyse: Berechnung des Spektrums eines periodischen Signals (C++)
  • Lineare Gleichungssysteme: Gauß-Algorithmus, Gauß-Seidel-Verfahren und BiCG-Algorithmus (inkl. C++-Implementierung des Gauß-Seidel-Verfahrens)
  • Nichtlineare Gleichungen: Newton-Verfahren zur Bestimmung von Nullstellen und zum Lösen nichtlinearer Gleichungssysteme (C++)
  • Approximation: Least-Squares- und Spline-Methoden (C++-Implementierung eines Curve-Fits)
  • Differenzenverfahren: Berechnung der Biegelinie eines Balkens mittels Finite-Differenzen-Methode (C++)
  • Zeitabhängige Probleme:
    • Explizite und implizite Differenzenverfahren (Stabilität, Konvergenz, Konsistenz)
    • Anwendung: Lösung der Wärmeleitungsgleichung zur Bestimmung instationärer Temperaturverteilungen (C++)
  • Zeitintegrationsverfahren für dynamische Systeme: Euler-, Crank-Nicolson- und Leapfrog-Verfahren (C++-Simulation von Schwingungsdifferentialgleichungen)
  • Runge-Kutta-Verfahren (4. Ordnung): Berechnung der Flugbahn eines Balls (C++)
  • Optimierungsverfahren: Gradientenverfahren zur Minimierung vorgegebener Funktionen (C++)
  • Neuronale Netze:
    • Einführung und praktische Anwendung (Training zur Zahlenerkennung in C++)
    • Mathematische Grundlagen des Backpropagation-Algorithmus

       

C++-Grundlagen (ohne Anspruch auf Vollständigkeit):
Behandelt werden u. a. Variablentypen, Präprozessor-Direktiven, Pointer, Ein- und Ausgabe von Daten, Schleifenstrukturen, Speicherverwaltung (dynamisch und statisch), Kontrollstrukturen (if-else), Unterprogramme, Strukturen sowie Dateiverarbeitung. Objektorientierte Programmierung ist nicht Bestandteil der Veranstaltung.

Weitere Informationen