Impuls- und Energieerhaltung beim Stoß
Wir betrachten den zentralen Stoß; bekannt sind dazu die Formeln für Impulserhaltung und Energieerhaltung.
Als Bezeichner für Massen werden m[1], m[2] und für Geschwindigkeiten v[1], v[2] (vor dem Stoß), V[1], V[2] (nach dem Stoß) eingeführt.
Impulsformel := m[1]*v[1]+m[2]*v[2]=m[1]*V[1]+m[2]*V[2];
Energieformel := 1/2*m[1]*v[1]^2 + 1/2*m[2]*v[2]^2 = 1/2*m[1]*V[1]^2 + 1/2*m[1]*V[2]^2;
Im konkreten Beispiel soll ein Körper die Masse 10000 kg und die Geschwindigkeit 5 besitzen, der andere die Masse 100000 kg und die Geschwindigkeit 0.
m1 := 10000: // Nur hier werden die bekannten Daten eingetragen.
m2 := 100000:
v1 := 5:
v2 := 0:
Bezogen auf die obigen Formeln heißt das:
gegeben := m[1]= 10000, v[1]=5,
m[2]=100000, v[2]=0;
Folglich
Impulsgleichung := Impulsformel | gegeben;
Energiegleichung := Energieformel | gegeben;
Für den unlastischer Stoß ergibt sich durch Anwendung nur der Impulserhaltung
loesung := solve({Impulsgleichung, V[1]=V[2]});
V1 := V[1] | loesung; // zwischengespeichert
V2 := V[2] | loesung; // zwischengespeichert
s[1] und s[2] beschreiben den Abstand der Körper vom Nullpunkt.
s[1] := t -> piecewise([t<=0,v1*t-0.2],[t>0,V1*t-0.2]):
s[2] := t -> piecewise([t<=0,v2*t+0.2],[t>0,V2*t+0.2]):
plotfunc2d(s[1],s[2])
Animation zum unelastischen Stoß:
In p[1] und p[2] werden die zur Vorbereitung der Grafik berechneten graphischen Elemente gespeichert.
p[1] := plot::Point2d(
s[1](t), 0, PointSize=float(0.1*m1^(1/3))*unit::mm, Color=RGB::Red,
t=-3..12, Frames=100
):
p[2] := plot::Point2d(
s[2](t), 0, PointSize=float(0.1*m2^(1/3))*unit::mm, Color=RGB::Green,
t=-3..12, Frames=100
):
plot(p[1],p[2],YAxisVisible=FALSE,ViewingBoxXRange=-10..10);
Für den elastischer Stoß ergibt sich
Impulsgleichung;
Energiegleichung;
loesung := solve({Impulsgleichung, Energiegleichung});
// Die erste Lösung wird ausgeschlossen:
V1 := V[1] | loesung[2];
V2 := V[2] | loesung[2];
s[1] und s[2] beschreiben den Abstand der Körper vom Nullpunkt.
s[1] := t -> piecewise([t<=0,v1*t-0.2],[t>0,V1*t-0.2]):
s[2] := t -> piecewise([t<=0,v2*t+0.2],[t>0,V2*t+0.2]):
plotfunc2d(s[1],s[2])
In p[1] und p[2] werden die zur Vorbereitung der Grafik berechneten graphischen Elemente gespeichert.
p[1] := plot::Point2d(
s[1](t), 0, PointSize=float(0.1*m1^(1/3))*unit::mm, Color=RGB::Red,
t=-3..12, Frames=100
):
p[2] := plot::Point2d(
s[2](t), 0, PointSize=float(0.1*m2^(1/3))*unit::mm, Color=RGB::Green,
t=-3..12, Frames=100
):
plot(p[1],p[2],YAxisVisible=FALSE,ViewingBoxXRange=-10..10);