Skip to main content

2020 | Buch

Klassische Mechanik mit C++

Basics und Anwendungen

insite
SUCHEN

Ü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
Metadaten
Titel
Klassische Mechanik mit C++
verfasst von
Elias Posoukidis
Copyright-Jahr
2020
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-662-60905-7
Print ISBN
978-3-662-60904-0
DOI
https://doi.org/10.1007/978-3-662-60905-7

    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.