Skip to main content
main-content

Über dieses Buch

Das vorliegende Buch gibt Studierenden der Physik und der Ingenieurwissenschaften einen pragmatischen und anwendungsorientierten Einstieg, Probleme der Physik mit C++ zu lösen. Zusammen mit der GNU Scientific Library, einer kostenlosen Bibliothek für numerische Algorithmen, zeigt der Autor, wie man mit wenigen Schritten Computerprogramme zur Lösung von typischen Aufgaben aus der klassischen Mechanik schreibt. Dabei geht er auch auf Aspekte wie die Weiterverarbeitung von Daten zur Darstellung als Tabellen und Diagramme ein.Das Buch beginnt mit einer Tour durch C++: Moderne Sprachelemente, die Standard Template Library und der Entwurf von Klassen spielen eine zentrale Rolle. Es folgt die Besprechung der GNU Scientific Library. Schritt für Schritt wird gezeigt, wie Routinen zur Lösung von linearen Gleichungssystemen, Nullstellensuche, numerischen Integration und Lösung von Differenzialgleichungen in eigenen Programmen eingesetzt werden können. Das Buch schließt mit ausführlichen Aufgaben zur theoretischen Mechanik: geradlinige Bewegungen mit und ohne Reibung und mechanische Schwingungen. Zahlreiche Beispiele und zusätzliche Übungsaufgaben helfen Leserinnen und Lesern dabei, das Gelernte anzuwenden und zu festigen. Alle Rechenschritte, Programmiertechniken und Quelltexte werden ausführlich erklärt, was einen schnellen Einstieg in die komplexe Thematik ermöglicht. Grundkenntnisse der Mechanik und von C++ werden vorausgesetzt. Die Quelltexte stehen zum Download bereit und können leicht in eigene Projekte integriert werden.
Der AutorElias Posoukidis hat an der Ruhr-Universität Bochum Physik studiert. Er hat Bücher zur GUI-Programmierung geschrieben, hat als Entwickler und Software-Architekt gearbeitet und unterrichtet nun Physik an einem griechischen Lyzeum.

Inhaltsverzeichnis

Frontmatter

C++

Frontmatter

Kapitel 1. Eine Tour durch C++

Zusammenfassung
Eine so mächtige Programmiersprache wie C++ in wenigen Seiten vorzustellen, ist unmöglich. Das Angebot an Funktionen und Programmiermethoden ist so groß, dass zwangsläufig eine Auswahl stattfinden muss. Doch welche Teile der Sprache sind wichtig und welche nicht? Eine eindeutige Antwort auf diese Frage gibt es nicht, denn die Sprache wird von einem Systemprogrammierer anders als von einem Naturwissenschaftler und nochmal anders von einem Spielentwickler genutzt.
Elias Posoukidis

Kapitel 2. Klassen in C++

Zusammenfassung
C++ ist keine rein objektorientierte Sprache. Sie unterstützt aber neben anderen auch diesen Programmierstil, in dem Klassen das zentrale Element sind. Es handelt sich dabei um benutzerdefinierte Vorlagen zur Konstruktion von Objekten, die über eigene Daten verfügen und mittels eigener Funktionen, den Elementfunktionen, diese Daten manipulieren. Instanzen einer Klasse sind Objekte, die mithilfe dieser Vorlagen erzeugt werden und über ihre Elementfunktionen mit anderen Objekten interagieren, die nicht von demselben Typ sein müssen.
Elias Posoukidis

Kapitel 3. Tabellen und Views

Zusammenfassung
Die im letzten Kapitel eingeführten Klassen zur Formatierung von Daten und ihre Speicherung in Dateien werden wir in diesem Kapitel um eine weitere Klasse zur Verwaltung von Zahlentabellen ergänzen. Sie sollen hauptsächlich zum Speichern von Ergebnissen aus numerischen Berechnungen eingesetzt werden. Das Hinzufügen von Daten, ihre Speicherung in Dateien sowie eine einfache Suche werden Teil der Funktionalität der Klasse sein.
Elias Posoukidis

Kapitel 4. Klassen zur Modellierung von physikalischen Systemen

Zusammenfassung
Betrachten wir eine Physikaufgabe als eine stark idealisierte Beschreibung eines Naturvorgangs und demzufolge eines physikalischen Systems, so sind die bekannten und unbekannten Größen die Parameter, welche das System beschreiben. Sie bieten damit eine Vorlage, um Klassen zu programmieren, die diese Prozesse abbilden. In Anlehnung an die Vorgehensweise im vorherigen Kapitel wären damit die Eigenschaften der Klasse schnell festgelegt und es bliebe zu klären, welche dieser Eigenschaften des zu beschreibenden Systems mit Variablen und welche mit Elementfunktionen abgebildet werden.
Elias Posoukidis

Schnittstellen zur GNU Scientific Library

Frontmatter

Kapitel 5. Die Vektor-Klasse

Zusammenfassung
Ein Feld oder Array ist eine Datenstruktur, in der mehrere Elemente desselben Datentyps hintereinander im Speicher angelegt werden. Der Speicher kann entweder dynamisch (zur Laufzeit des Programms) oder statisch (während der Kompilierung) erzeugt und die Elemente können per Index über ihre Position im Feld angesprochen werden. Vektoren sind in der GNU Scientific Library Strukturen, die mit einer Reihe von zugehörigen Funktionen zur Verwaltung von C-Feldern spezialisiert sind.
Elias Posoukidis

Kapitel 6. Die Matrix-Klasse

Zusammenfassung
Eine Matrix ist eine zweidimensionale Struktur von Elementen desselben Datentyps, die in Reihen und Spalten angeordnet sind und über zwei Indizes angesprochen werden, wobei der Index für die erste Spalte und Reihe 0 ist.
Elias Posoukidis

Kapitel 7. Lösung von linearen Gleichungssystemen

Zusammenfassung
Viele Probleme aus der Mathematik und Physik werden durch lineare Gleichungssysteme beschrieben. Dabei geht es um die Berechnung von n unbekannten Größen, wenn m lineare Gleichungen vorliegen.
Elias Posoukidis

Kapitel 8. Nullstellenberechnung reeller Funktionen

Zusammenfassung
Es existieren zwei Gruppen von Algorithmen zur Berechnung von Nullstellen reeller Funktionen. Zur ersten Gruppe gehören Verfahren, die ohne Kenntnis der Ableitung einer Funktion auskommen, und zur zweiten Gruppe solche, bei denen die Ableitung einer Funktion bekannt sein muss. Alle Verfahren arbeiten iterativ.
Elias Posoukidis

Kapitel 9. Numerische Integration

Zusammenfassung
Durch Anwendung der Ableitungsregeln lässt sich praktisch jede Funktion differenzieren. Dies gilt nicht für die Integration. Nicht jedes Integral kann analytisch berechnet werden und selbst wenn eine Lösung existiert, ist diese manchmal nur durch eine Reihe von geschickten und oftmals komplizierten Substitutionen zu berechnen. Schließlich treten auch Fälle auf, in denen der Integrand nur in tabellarischer Form vorliegt. In all diesen Situationen bietet es sich an, numerisch zu integrieren.
Elias Posoukidis

Kapitel 10. Anfangswertprobleme für gewöhnliche Differenzialgleichungen

Zusammenfassung
Viele Probleme aus den Naturwissenschaften, wie z.B. Wachstumsmodelle, chemische Reaktionen oder die Bewegung von Objekten werden mithilfe von Differenzialgleichungen beschrieben. Wenn keine analytische Lösung für diese Gleichungen gefunden werden kann oder diese zu kompliziert ist, können numerische Methoden eingesetzt werden.
Elias Posoukidis

Kapitel 11. Interpolation

Zusammenfassung
Bei einer eindimensionalen Interpolation handelt es sich um die Aufgabe, Werte einer Funktion f(x) zu ermitteln, von der nur N Wertepaare (x0, y0), . . . (xN, yN) bekannt sind. Dies können z.B. Messdaten eines Experiments oder Ergebnisse einer numerischen Berechnung sein. Die xi heißen Stützstellen, die yi Stützwerte und die Punkte (xi, yi) Stützpunkte.
Elias Posoukidis

Klassische Mechanik mit C++

Frontmatter

Kapitel 12. Eindimensionale Bewegungen

Zusammenfassung
Ein auf horizontaler Ebene ruhendes Objekt der Masse m wird unter dem Einfluss einer konstanten, nach oben gerichteten äußeren Kraft, die einen Winkel φ mit der Horizontalen bildet, in Bewegung gesetzt. Die Kraft wirkt für t1 Sekunden und das Objekt kommt nach insgesamt t2 Sekunden zum Stillstand. Der Gleitreibungskoeffizient zwischen Körper und Ebene sei μ.
Elias Posoukidis

Kapitel 13. Bewegung in einem Medium mit Reibung

Zusammenfassung
Eine Kugel mit der Masse m wird mit einer Anfangsgeschwindigkeit υ0 senkrecht nach oben geschossen. Die Kugel bewegt sich in einem Medium, das auf sie eine geschwindigkeitsabhängige Reibungskraft der Form \( \mathop R\limits^{ \to } = {-}\beta \mathop \upsilon \limits^{ \to } \) ausübt. Auf die Kugel wirkt neben der Reibungskraft nur noch die Schwerkraft (Abb. 13.1).
Elias Posoukidis

Kapitel 14. Schwingungen

Zusammenfassung
Ein Klotz mit der Masse m wird an einer horizontalen Feder mit der Federkonstanten k befestigt, um eine Distanz x0 von der Ruhelage ausgelenkt und anschließend losgelassen (Abb. 14.1). Der Klotz bewegt sich ohne Reibung und die Masse der Feder ist vernachlässigbar klein. Stellen Sie die Bewegungsgleichungen auf. Lösen Sie diese numerisch und vergleichen Sie die Daten mit den exakten Ergebnissen.
Elias Posoukidis

Backmatter

Weitere Informationen

Premium Partner

    Marktübersichten

    Die im Laufe eines Jahres in der „adhäsion“ veröffentlichten Marktübersichten helfen Anwendern verschiedenster Branchen, sich einen gezielten Überblick über Lieferantenangebote zu verschaffen. 

    Bildnachweise