4. Harmonische Schwingungen


Aufgabe:

Überzeugen Sie sich davon, dass der sog. Euler-Algorithmus für das Federpendel das richtige Ergebnis liefert. Ersetzen Sie dazu die paint-Routine aus Ihrem Programm aus dem letzten Abschnitt durch folgende Routine:

  public void paint(Graphics g) {

    final double D = 1.0; // Federkonstante
    final double m = 1.0; // Masse
    final double tmax = 10.0, dt = 0.01; // Zeitinterval
    double q = 1.0, p = 0.0; // Anfangsbedingungen
    double kraft;

    setRange(0.0, tmax, -1.5, 1.5);

    g.drawLine(sx(0.0), sy(0.0), sx(tmax), sy(0.0));

    g.setColor(Color.blue);

    // Schleife ueber die Zeit
    for(double t = 0.0; t < tmax; t += dt)
    { // Momentaufnahme der Kraft
      kraft = -D * q;

      // Euler Integration
      q += p * dt / m;
      p += kraft * dt;

      // Punkt im q(t) Diagramm wird gezeichnet
      g.fillOval(sx(t) - 2, sy(q) -2, 4, 4);
    }
  }

In den ersten beiden blauen Zeilen werden die beiden Konstanten, die unser System beschreiben, deklariert und initialisiert. Masse und Federkonstante sollen sich während des ganzen Programmlaufes nicht mehr verändern; Wir teilen dies JAVA mit, indem wir das Schlüsselwort final vor die Deklaration setzen. Dadurch wird der Compiler jeden (evtl. irrtümlichen) Versuch, diese Konstanten zu verändern, unterbinden. In der dritten Zeile werden die maximale Simulationszeit sowie das Zeitintervall unseres Integrators als Konstanten vereinbart.

In der darauffolgenden Zeile steht die Deklaration der dynamischen Variablen unseres Systems, also derjenigen Variablen, die sich verändern können (und sollen). In dem wir auch ihnen schon bei der Deklaration einen Wert zuweisen, setzen wir die Anfangsbedingungen für unser System fest. Im Beispiel bedeutet

  double q = 1.0, p = 0.0;,
dass sich unser Federpendel zu Anfang am Ort "q = 1.0" befindet und einen Anfangsimpuls von Null hat, also ruht. Die Kraft auf unser Federpendel wird nur deklariert und nicht initialisiert.

In der in Rot dargestellten Zeile berechnen wir die Kraft auf unser Federpendel. Im Fachjargon nennt man diese Art von Kraft übrigens auch lineare rücktreibende Kraft. Was ist hier linear, was rücktreibend?

Die in grün dargestellten Zeilen sind der sog. Integrator. Wir berechnen die Änderung in der Ortskoordinate q als Produkt von Geschwindigkeit (p/m) und einem kleinen Zeitinterval dt. Dementsprechend berechnen wir die Änderung des Impulses als Produkt von Kraft und Zeitintervall. Vergegenwärtigen Sie sich, dass der Impuls hier das Produkt von Masse und Geschwindigkeit ist und dass die hier angegebene Rechenvorschrift somit gerade dem zweiten Newtonschen Axiom entspricht!

weitere Aufgaben:


Hier geht es weiter ...