Kontakt: mail@salviati.de     Impressum    Lizenzbedingungen und Versionshinweise

 

Simulator: Darstellung von Funktionen mit Parametern und Simulation durch Modellbildung

Funktionen   Modellbildung    Messdaten    Hintergrundbild           Modelleditor     Menüleiste     Beispiele    

Funktionsgraphen

Es können beliebige arithmetische Funktionen, deren 1. und 2. Ableitung sowie eine Stammfunktion dargestellt werden. Dazu wird der Funktionswert in der gewohnten Schreibweise eingegeben. Ein Parser erstellt aus dem Funktionsterm einen Rechenbaum, mit dem die Funktionswerte berechnet werden. Die Bildung der 1. und 2. Ableitung erfolgt nicht numerisch, sondern algebraisch durch Anwendung der Ableitungsregeln. Die Stammfunktion F(x)wird numerisch nach dem Trapezverfahren berechnet, die Integrationskonstante wird so gewählt, dass F(0)=0 ist. Hat die Funktion im angezeigten Bereich Unstetigkeitsstellen, so wird keine Stammfunktion gezeichnet.

Die Funktionswerte können Parameter enthalten, deren Werte beliebig variiert werden können. Der Buchstabe e ist für die eulersche Zahl e reserviert, mit pi wird die Kreiszahl π bezeichnet.

Beispiele:

f(x) = 0.5*x+1

f(x) = 1/3*x^3+1/2*x^2-x+1

f(x) = cos(x-pi)

f(t) = a*sin(w*t-b)*e^(-k*t)

f(x) = a*(x-c)^2+b

Der Funktionswert wird in das Eingabefeld in der unteren Leiste des Programmfensters eingegeben:

Für die Bezeichnung der unabhängigen Variablen und der Parameter kann ein einzelner, beliebiger kleiner oder großer Buchstabe a..z bzw. A..Z (keine Umlaute) benutzt werden. Es gelten die üblichen Vorrangregeln, als Klammern sind nur runde Klammern (  ) zugelassen. Der Multiplikationsoperator * kann zwischen Zahlen und Parametern oder Klammern weggelassen werden.

Operatoren:

   +     Addition

   -     Subtraktion

   *     Multiplikation

   /     Division

   ^     Potenz

Funktionen:

   abs   Absolutbetrag

   arc   Bogenmaß

   deg   Gradmaß

   asin  Arcussinus

   acos  Arcuscosinus

   atan  Arcustangens

   sin   Sinusfunktion

   cos   Cosinusfunktion

   tan   Tangensfunktion

   cot   Cotangensfunktion

   exp   Exponentialfunktion

   log   Logarithmusfunktion zur Basis 10

   lg    Logarithmusfunktion zur Basis 10

   ln    Logarithmusfunktion zur Basis e

   sqrt  Quadratwurzelfunktion

   round Rundungsfunktion

   int   Ganzzahlfunktion

Parameter:

Enthält ein Funktionsterm Parameter (erlaubt sind einzelne kleine oder große Buchstaben a..z bzw. A..Z, keine Umlaute), so wird für jeden Parameter ein Fenster mit einem Schieber geöffnet, mit dem der Parameterwert variiert werden kann:

Der aktuelle Parameterwert wird im rechten Textfenster angezeigt. Die Grenzen des Schiebers können durch Eingabe in die entsprechenden Textfelder verändert werden. Der gewünschte Parameterwert kann auch direkt in das rechte Textfeld eingegeben werden.

Verkettete Funktionen:

Die eingegebenen Funktionen können verkettet werden. Wenn für eine Funktion, z.B. für die Funktion f0 mit der Nummer 0, ein Funktionsterm eingegeben wurde, kann auf diesen Bezug genommen werden.

Beispiel:

0: f(t) = a*sin(w*t-b)
wurde als Funktion mit der Nummer 0 eingegeben. Dann kann man bei der Eingabe einer neuen Funktion auf diese Bezug nehmen:

1: f(t) = f0*e^(-k*t)
sei der Term für die Funktion mit der Nummer 1. Diese entspricht dann der Funktion f(t) = a*sin(w*t-b)*e^(-k*t)

Zu beachten ist, dass die verketteten Funktionen alle den gleichen Namen für das Argument, die unabhängige Variable, haben müssen, hier im Beispiel also die Variable t.

Ein direkter oder indirekter rekursiver Bezug ist nicht möglich. So kann man z.B. beim Funktionswert der Nummer 0 nicht auf diese Funktion selbst, also auf f0 Bezug nehmen (direkte Rekursion), wie z.B. in 0: f(x) = x*f0.

Auch ein "Umweg" über eine weitere Funktion (indirekte Rekursion) ist nicht erlaubt, wie es im folgenden Beispiel der Fall wäre:

0: f(x) = x*f1,   1: f(x) = f0

Abschnittsweise definierte Funktionen:

Für jede Funktion kann ein Bereich auf der Abszisse angegeben werden, innerhalb dessen die Funktion und ggf. ihre Ableitungen gezeichnet wird. Damit lassen sich auch abschnittsweise definierte Funktionen darstellen. Zur Festlegung eines Abszissenbereichs wird der gewünschte Bereich in eckigen Klammern einfach hinter den Funktionsterm geschrieben:

Beispiel:

f(x) = 0.5*x+1 [-2.5;+3.5]

Die Funktion und deren Ableitungen werden nur zwischen den Argumenten x = -2.5 und x = +3.5 gezeichnet.

Man kann auch nur eine untere oder obere Grenze angeben, z.B. f(x) = 0.5*x+1 [;+3.5] oder f(x) = 0.5*x+1 [-2.5;]. Im ersten Fall geht der Bereich von -∞ bis 3,5, im zweiten Fall von -2,5 bis +∞.

Die linke und rechte Grenze der Abszisse ändern sich durch eine Bereichsangabe nicht. Es wird immer nur innerhalb der mit dem Koordinatensystem festgelegten Abszissen- und Ordinatengrenzen gezeichnet.

Anzeige von Werten:

Für die aktuell im Eingabefeld für Funktionswerte angezeigte Funktion können einzelne Werte der Funktion sowie der 1. und 2. Ableitung angezeigt werden. Hierzu gibt man in das entsprechenden Eingabefeld das Argument, den Abszissenwert, ein.

 

Graphische Darstellung:

Es können bis zu zehn verschiedene Funktionswerte (Indizes 0 bis 9) eingegeben werden, die Auswahl des entsprechenden Indexes erfolgt mit den Pfeiltasten rechts vom Eingabefeld.

Für die graphische Darstellung der eingegebenen Funktionen, deren Ableitungen und deren Stammfunktion müssen in der oberen Werkzeugleiste die entsprechenden Checkboxen gesetzt und die gewünschten Farben und Strichstärken ausgesucht werden:

Ein Klick mit der linken Maustaste auf den entsprechenden Farbbutton öffnet ein Dialogfenster zur Auswahl der gewünschten Zeichenfarbe. Mit der rechten Maustaste kann die Strichstärke verändert werden: jeder Klick auf den Farbbutton vergrößert die Strichstärke bis zur Stufe 4, ein weiterer Klick setzt sie auf Stufe 1 zurück.

Die Einstellungen gelten jeweils für die im Eingabefenster gerade angezeigte Funktion und können für alle zehn Funktionen getrennt vorgenommen werden.

Mit gedrückter linker Maustaste im Zeichenfeld kann die Kurve der aktuellen Funktion durchlaufen werden, dabei wandert zur Veranschaulichung ein Fadenkreuz entlang der Kurve:

Drückt man die rechte Maustaste, so wird anstelle des Fadenkreuzes die Tangente angezeigt:

 

Eigenschaften der Funktionen:

Zur Untersuchung der eingegeben Funktionen können vielfältige analytische Verfahren ausgeführt und numerische Berechnungen durchgeführt werden:

Zur Ausgabe der Berechnungen wird ein separates Konsolenfenster geöffnet, in das die Ergebnisse geschrieben werden. Der Text im Konsolenfenster kann markiert, editiert und gelöscht werden. Markierter Text kann in die Zwischenablage kopiert oder ausgeschnitten werden, ebenso kann aus der Zwischenablage fremder Text eingefügt werden.

 

Bestimmtes Integral:

Für jede eingegebene Funktion kann ein bestimmtes Integral, d.h. die Fläche unter der Kurve in einem bestimmten Intervall, berechnet und angezeigt werden. Die Berechnung erfolgt numerisch nach dem Trapezverfahren, die Fläche unter der Kurve kann farblich gekennzeichnet werden.

Es wird für die aktuell im Textfenster angezeigte Funktion ein Dialog aufgerufen, in den Zahlenwerte für die untere und die obere Grenze eingetragen werden müssen.

Die Ausgabe des berechneten Zahlenwerts für das bestimmte Integral erfolgt auf der Konsole.

Parameterdarstellung:

Alternativ zu der normalen Darstellung von Funktionsgraphen können die Funktionen auch in der Parameterdarstellung gezeigt werden. Hierzu muss eine der Funktionen f0 bis f9 als Abszisse festgelegt werden, andere Funktionen können dann in Abhängigkeit von dieser Funktion dargestellt werden.

Beispiel: Lissajoussche Figuren

f0(t) = a*sin(w*t+c)
f1(t) = b*sin(n*w*t)

f0 kann nun als x(t) betrachtet werden, f1 kann als y(t). In der Parameterdarstellung wird die Funktion y(x) gezeigt:

Durch Variation der Parameter kann diese Figur animiert werden.

 

3D-Darstellung:

Die Parameterdarstellung ist auch in 3 Dimensionen möglich. Eine der Funktionen f0 bis f9 wird als Abszisse (x-Achse) festgelegt, eine zweite als Ordinate (y-Achse). Für die 3. Achse, die Applikate (z-Achse), können nun eine oder mehrere der Funktionen f0 bis f9 zur Darstellung ausgewählt werden.

Die Ebene, die von der x- und z-Achse aufgespannt wird, liegt fest in der Bildschirmebene, die y-Achse geht in die Bildschirmebene hinein, die Graphik wird von schräg oben betrachtet. Punkte mit negativer y-Koordinate liegen vor der Bildschirmebene, Punkte mit positiver y-Koordinate dahinter.

Der Augpunkt für die Betrachtung der dreidimensionalen Darstellung liegt 30 cm vor der Bildschirmebene und ca. 10 cm oberhalb der Bildschirmmitte. Durch Mausbewegung mit gedrückter linker Maustaste entlang der horizontalen bzw. vertikalen Achse kann der Augpunkt nach links oder rechts bzw. nach oben oder unten verschoben werden.

Beispiel: Spirale

f0(t) = c*t
f1(t) = a*sin(w*t)
f2(t) = b*cos(w*t+d)

Abszisse (x-Achse): f1 = a*sin(w*t), Ordinate (y-Achse): f0 = c*t, Applikate (z-Achse): f2 = b*cos(w*t+d)

Abszisse (x-Achse): f0 = c*t, Ordinate (y-Achse): f1 = a*sin(w*t), Applikate (z-Achse): f2 = b*cos(w*t+d)

 

Speichern und Laden

Die eingegebenen Funktionsterme können zusammen mit den eingestellten Attributen abgespeichert und später wieder geladen werden. Dazu stehen im Datei-Menü die Menüpunkte Laden, Speichern und Speichern unter zur Verfügung. Zusätzlich mitgespeichert werden die Einstellungen für die Koordinatenachsen, nicht aber Daten aus der Modellbildung oder importierte Messwerttabellen (siehe unten). Diese können anschließend separat dazugeladen werden (siehe dazu die Importfunktionen in den Menüs Simulation und Tabelle).

Modellbildung

Mit einem Modellbildungssystem kann man physikalische Modelle erstellen, durchrechnen und die Ergebnisse graphisch darstellen. Dabei besteht die Aufgabe darin, die physikalische Beschreibung der untersuchten Vorgänge zu erarbeiten. Hierzu müssen die zu berücksichtigenden Größen erkannt und die zwischen ihnen bestehenden Zusammenhänge ermittelt werden.

Grundlage der Modellbildung ist ein dynamisches System, in dem die verschiedenen Elemente nach bestimmten Gesetzen zusammenwirken. Bei den Elementen unterscheidet man Zustandsgrößen, Änderungsraten, Zwischenwerte und Parameter.

Für die graphische Darstellung von dynamischen Systemen gibt es eine Reihe von Modellbildungsprogrammen, wie z.B. Modus, Stella, Dynasys und Moebius. Das oben angesprochene Beispiel einer gedämpften Schwingung wird von diesen Programmen in ähnlicher Weise dargestellt:

Beispiel: Dynamisches System zur Modellierung einer gedämpften Schwingung:

Darstellung in verschiedenen Modellbildungsprogrammen:

    Zustandsgrößen:  

x
v

Elongation
Geschwindigkeit

    Änderungsraten:  

dx_dt
a

Zeitliche Änderung der Elongation
Beschleunigung

    Zwischenwerte:  

F
R

Rückstellkraft
Reibungskraft

    Parameter:  

m
D
k

Masse
Federkonstante
Reibungsfaktor

Zwischen den einzelnen Elementen des Modells gelten folgende funktionalen Zusammenhänge:

    F  

 = 

  - D * x  

    R  

 = 

  k * v  

    a  

 = 

  ( F - R ) / m  

    dx_dt  

 = 

  v  

Die Parameter haben konstante Werte, hier zum Beispiel:

  D = 5.0 N/m,  k = 0.3 N/ms-1 und  m = 2.0 kg .

Die Werte der Zustandsgrößen x und v hängen von der Zeit ab und werden bei der Simulation aus den zugehörigen Änderungsraten dx_dt bzw. a durch entsprechende numerische Verfahren für die betrachteten Zeitpunkte Schritt für Schritt berechnet.

Beispiele:

Barometrische Höhenformel: barometer.sim

Flugbahn eines Federballs: badminton.sim

Gedämpfte Schwingung: schwingung.sim

Auf- und Entladen eines Kondensators: kondensator.sim

Zahlreiche weitere Beispiele für Modelle zu physikalischen Themen findet man bei:
Horst P. Schecker, Physik - Modellieren, Grafikorientierte Modellbildungssysteme im Physikunterricht, Ernst Klett Verlag, Stuttgart (1998).

Erstellen eines Modells

Die einzelnen Elemente des Modells werden in beliebiger Reihenfolge eingegeben.

Es erscheint ein Eingabedialog, abhängig vom gewählten Elementtyp. Hier können die entsprechenden Eingaben vorgenommen werden:

    
  

Die Anfangswerte von Zuständen sowie die Werte von Parametern können variabel gehalten werden. Dazu muss das Häkchen neben dem Werteingabefeld entfernt werden:

    

Beim Schließen des Eingabedialogs erscheint dann für das entsprechende Element ein Fenster mit einem Schieberegler:

Wie bei den abschnittsweisen Funktionen kann auch bei den Modellelementen ein Definitionsbereich festgelegt werden. Dazu wird hinter den Namen des Elements ein Bereich in eckigen Klammern angegeben. Für die Argumente außerhalb dieses Bereichs ist der Wert der Größe gleich null. Damit lassen sich z.B. zeitabhängige Vorgänge in bestimmte Phasen einteilen, in denen andere Formeln oder andere Parameterwerte gelten. Ein Beispiel hierzu ist das Modell für das Auf- und Entladen eines Kondensators. Für den Aufladevorgang hat die anliegende Quellspannung einen bestimmten konstanten Wert, beim Entladevorgang ist die Quellspannung gleich null:

Modell für das Auf- und Entladen eines Kondensators:

Während der ersten 300 ms liegt eine Quellspannung Uo = 5,0 Volt an, der Kondensator wird aufgeladen. Zur Zeit t = 300 ms wird die Quellspannung abgeschaltet, der Kondensator entlädt sich wieder.

Die Kurve für den Auf- und Entladevorgang beim Kondensator aus der Modellsimulation kann durch die entsprechenden theoretischen Funktionen angepasst werden:

Durch Vergleich der eingestellten Parameterwerte für k, R und C kann die Theorie bestätigt werden.

 

Messdaten

Es können Daten aus Experimenten, Videoanalyse, Tabellenkalkulation oder beliebigen anderen Quellen importiert und graphisch dargestellt werden. Voraussetzung ist, dass die Daten in einer Textdatei als Tabelle vorliegen. Die einzelnen Zeilen des Textes in der Texdatei müssen dabei den Zeilen der Tabelle entsprechen, innerhalb einer Zeile müssen die einzelnen Spalten durch ein eindeutiges Trennzeichen voneinander abgesetzt sein. Als Trennzeichen können die folgenden Zeichen benutzt werden:

Trennzeichen:  TAB, ;, | oder ,.

Wenn die Daten Dezimalzahlen enthalten, muss das Dezimaltrennzeichen (. oder ,) eindeutig sein. Ob dieses Punkt oder Komma ist, kann beim Import angegeben werden. Die Daten dürfen keine Tausendertrennzeichen enthalten, diese müssen gegebenfalls vorher mit einem normalen Editor entfernt werden.

Die Dateinamenerweiterung für die Textdatei kann prinzipiell beliebig sein, als Standard ist die Dateinamenerweiterung .dat voreingestellt.

Beispiel:

Aus einer Tabellenkalkulation wurden Daten durch Copy & Paste in ein Editorprogramm eingefügt. Die einzelnen Spalten sind durch ein Tabulatorzeichen voneinander getrennt, das Dezimaltrennzeichen ist das Komma. Die erste Zeile (im Folgenden Zeile Nr. 0) enthält den Tabellkopf mit den Größenbezeichnungen und Einheiten, die eigentlichen Daten beginnen ab Zeile 1.

Zeilen dürfen unvollständig sein. In dem obigen Beispiel fehlen in den Zeilen 12 und 13 die Werte für x und y (Die Daten stammen aus einer Videoaufnahme, zu den entsprechenden Zeiten war der Federball durch eine Deckenabhängung verdeckt).

Importieren von Messwerten:

Nach dem Öffnen der Datei erscheinen ein Dialogfenster und ein Konsolenfenster, in dem die importierten Daten angezeigt werden. In dem Dialogfenster können nun das Trennzeichen sowie das Dezimaltrennzeichen eingestellt werden. Außerdem kann angegeben werden, ab welcher Zeile die eigentlichen Daten beginnen. Das Ergebnis kann man im Konsolenfenster sehen, dort ist am Anfang jeder Zeile eine zusätzliche Spalte eingefügt, in der die Nummer der Zeile angezeigt wird. Die Trennung zwischen den einzelnen Spalten wird durch das Zeichen | angezeigt.

In dem Dialog muss eine Spalte als Wertebereich für die Abszisse ausgewählt werden, für die übrigen Spalten kann festgelegt werden, ob, in welcher Farbe und mit welchem Symbol die Werte in das Diagramm eingezeichnet werden sollen. Die Messwerte können mit den Werten einer Funktion oder den Daten einer Modellsimulation verglichen werden. Die Anpassung muss dabei von Hand erfolgen, eine automatische Anpassung ist nicht möglich (und im Allgemeinen auch nicht sinnvoll). Damit die Anpassung bequem und genau durchgeführt werden kann, sollten die Parameter jeweils variabel gehalten werden, die Anpassung kann dann durch Variation der Parameter mit den Schiebereglern vorgenommen werden:

Zuletzt kann die Bahnkurve aus der Modellsimulation durch Copy & Paste in das Bild aus der Videoaufnahme übertragen werden:

Man könnte jetzt versuchen, der Bahnkurve eine arithmetische Funktion anzupassen. Das kann nicht gelingen, da die dem Vorgang zugrunde liegende, nichtlineare Differenzialgleichung keine geschlossene Lösung besitzt, und es daher keine explizite Formeln für die Funktionen x(t) und y(t) gibt. Auch dieser Sachverhalt kann hier plausibel veranschaulicht werden.

 

Anpassung von Messwerten durch arithmetische Funktionen

Das Programm unterstützt die Anpassung von Funktionen an die importierten Daten durch Variation der Parameter. Dabei können die Parameter manuell durch die entsprechenden Schieberegler oder automatisch verändert werden. Zur Beurteilung der Güte der Anpassung wird anschließend der Bestimmtheitsgrad R² berechnet und auf der Konsole ausgegeben. Dabei entspricht ein Wert R² = 1 einer exakten Übereinstimmung der Funktionswerte mit den Messwerten, bei Werten von R² > 0,9 kann man von einer gelungenen Anpassung sprechen. Bei R² = 0 bildet die anpassende Funktion genau den Mittelwert der Messwerte, während Werte R² < 0 anzeigen, dass die Funktion für die Anpassung eventuell ungeeignet ist.

Bei der automatischen Anpassung werden die Parameter innerhalb der vorgegebenen Grenzen wiederholt zyklisch variiert. Dabei erfolgt bei geeignetem Funktionsterm und plausiblen Anfangswerten eine Annäherung an die optimale Anpassung. Die Berechnung erfolgt numerisch und nicht durch eine analytische Regressionsanalyse. Es ist sinnvoll, zunächst eine manuelle Anpassung zu versuchen und dann eine automatische Anpassung zu starten. Die automatische Anpassung kann wiederholt werden, um eine Verbesserung zu erreichen.

Im Gegensatz zu der bei Tabellenkalkulationsprogrammen gebräuchlichen Regressionsanalyse können bei dem hier beschriebenen Verfahren beliebige Funktionswerte mit einem oder mehreren Parametern sowie auch Funktionen oder Relationen in Parameterdarstellung zur Anpassung verwendet werden.

 

Beispiel: Maximale Ausladung bei einem Kranausleger:

 

Anpassung von Funktionen an Hintergrund

Fotos, Bilder oder Graphiken, die im Format *.jpg oder *.gif vorliegen, können als Hintergrundbild importiert werden. Dabei können ein Transparenzgrad und ein Zoomfaktor angegeben werden. Nach dem Laden des Bildes kann das Bild verschoben, in der Größe verändert und beliebig gedreht werden.

Beispiel:

In einem Foto von der Müngstener Brücke wird an den Brückenbogen eine Parabel angepasst:

 

 

 

 

Impressum:
Verantwortlich für Inhalt und Gestaltung:
Wolfgang Treffeisen
Benrodestraße 12
40597 Düsseldorf
mail@salviati.de