Mathematica 12 - WhenEvent - Warum wird der Vorzeichenwechsel nicht angenommen
- Erstellt am 26.4.2021
- Überarbeitet am 26.8.2024
- Software: Mathematica 12
Fordern Sie hier ein
Als ein grundlegendes Beispiel für die Funktion WhenEvent finden Sie auf der Hilfeseite von Wolfram zu dieser Funktion die Simuliation eines springenden Balls, der bei jedem Sprung 95% seiner Geschwindigkeit beibehält. Wenn Sie das Beispiel so abändern, dass der Ball nur 80% seiner Geschwindigkeit beibehält, wird ein Graph angezeigt, in dem der die Höhe 0 dennoch unterschritten wird, obwohl hier die Geschwindigkeit gemäß dem Befehl das Vorzeichen wechseln müsste.
Was ist der Grund hierfür?
Erläuterung
Die Differentialgleichung
y''(t)=-g
mit g>0 hat als allgemeine Lösung
y(t)=-g2*t2+a*t+b
mit zwei Konstanten a und b. Die Nullstellen dieser Funktionen werden nach dem Umformen der Gleichung
-g2*t2+a*t+b=0
zu
t2-2*ag*t-2*bg=0
gemäß der p-q-Formel berechnet als
t1=ag-√a2g2+2*bg=tmitte-12tabstand
t2=ag+√a2g2+2*bg=tmitte+12tabstand
Wenn die beiden Nullstellen reelle Zahlen sind, ist ihr Abstand gleich
t2-t1=2*√a2g2+2*bg=tabstand
Wir können die Gleichungen der Funktion und Ableitung auch schreiben als
y(t)=-g*(t-t1)*(t-t2)
Des Weiteren gilt
y(0)=b
y'(t)=-g*t+a
und damit
y'(0)=a
Die Nullstelle der ersten Ableitung liegt bei ag=tmitte. Die ersten Ableitungen an den Nullstellen sind
y'(t1)=-g*(tmitte-12*tabstand)+a=-g*tmitte+a+g*12*tabstand=y'(tmitte)+g*12*tabstand=g*12*tabstand
y'(t2)=-g*(tmitte+12*tabstand)+a=-g*tmitte+a-g*12*tabstand=y'(tmitte)-g*12*tabstand=-g*12*tabstand=-y'(t1)
Jede der beiden Ableitungen sind proportional zu dem Abstand zwischen den Nullstellen:
2g*y'(t1)=tabstand=-2g*y'(t2)
Für den Abstand zwischen den beiden Nullstellen zweier durch einen Übergang yneu'(z)=-q*yalt'(z) mit 0<q<1 folgt
tabstand,neu=q*tabstand,alt
Damit gilt
tabstand,2=q*tabstand,1
tabstand,3=q*tabstand,2=q2*tabstand,1
tabstand,4=q*tabstand,3=q3*tabstand,1
und allgemein
tabstand,i=qi-1*tabstand,1
Hier ist tabstand,i der Abstand zwischen den Nullstellen der i-ten komplett innerhalb des angegebenen Definitionsbereiches liegenden Teilkurve. Die Summe aller dieser Abstände ist
∑∞i=0qi*tabstand,1=11-q*tabstand,1
weil es sich um eine geometrische Reihe handelt.
Wegen y'(0)=0 liegt die allererste Kurve noch nicht komplett im angegebenen Definitionsbereich, sondern genau zur Hälfte, denn Ihre Mitte liegt bei t=0. Die Gesamtlänge aller Teilkurven ab dem Minimum des angegebenen Definitionsbereichs ist
12*tabstand,0+11-q*tabstand,1=12*tabstand,0*tabstand,0+11-q*q*tabstand,0=tabstand,0*(12+q1-q)
Für g=9.81 und q=0.8 ist die Gleichung der ersten Lösungskurve
y(t)=-4.905*t2+5
mit den Nullstellen
t1=-1.0096375546923047
t2=1.0096375546923047
und
tabstand,0=2.0192751093846093
sodass die Gesamtbreite innerhalb des angegebenen Definitionsbereichs durch
2.0192751093846093*(12+0.81-0.8)=2.0192751093846093*4.5=9.08674
berechnet wird. Das bedeutet, dass alle der unendlich vielen Ereignisse alle vor dem Wert 9.08674 passieren, die unendlich vielen Teilkurven, aus denen sich die Lösung der Differentialgleichung zusammensetzt, in der Summe nur eine Breite von 9.08674<10 haben. In jeder Annäherung der Lösung durch endlich viele Teilkurven verletzt die letzte der Teilkurven das Ereignis.
Wenn Sie bei Ihre Differentialgleichung mit WhenEvent ein ähnliches Phänomen beobachten, überprüfen Sie, ob es sich analog mit der geometrischen Reihe erklären lässt.
|