Archiv verlassen und diese Seite im Standarddesign anzeigen : freien Fall berechnen
hi,
ich kam gerade ins grübeln...
wenn ich einen Stein aus 125m Höhe fallen lasse (g~10m/s²) und jede Sekunde die aktuelle Geschwindigkeit und Position ermitteln will,
ist es richtig, dass jede Sekunde die aktuelle Geschwindigkeit gleichmäßig um weitere 10m/s gegenüber vorher zunimmt? Und die Höhe jede Sek. um konstant 10m mehr als in der vorherigen abnimmt (rund gerechnet)?
ist doch korrekt, oder?
dh = 0.5 * (g)*dt*dt + vi*dt ; // dt ist immer 1s
hi = hi-dh;
vi = vi + (g)*dt;
0 h0=125m (Start)
v0=0;
1 dh=0.5*10*1*1 + v0*1 = 5+0 = 5m; // die *1s lass ich später weg)
h1=125-dh=125-5=120m
v1= 0+ 10*1=10m/s;
2 dh=0.5*10 + v1 = 5+10=15m
h2=120-dh=120-15=105m
v2= 10+10 = 20m/s
3 dh=0.5*10 + v2 = 5+20=25m
h3=105-dh=105-25=80m
v3= 20+10 = 30m/s
4 dh=0.5*10 + v3 = 5+30=35m
h4=80-dh=80-35=45m
v4=30+10 = 40m/s
5 dh=0.5*10 + v4 = 5+40=45m
h5=45-45 = 0m (Aufschlag)
v5= 40+10=50m/s
also Aufschlag nach 5s mit 50m/s?
(Probe:
wenn ich dt=5s oben einsetze:
dh = 0.5*10*5*5 + 0*5= 125m
h=125-125=0m
v=0+ 10*5=50m/s )
Denn was mich stutzig gemacht hat:
die Höhe nimmt ausschließlich in der 1. Sekunde um nur 5m ab, danach immer jede weitere Sek wachsend um konstant 10m...:confused:
Im Prinzip hast du Recht und das Ergebnis stimmt auch.
Aber du musst das als Infinitesimalproblem verstehen. Korrekt wird die Rechnung, wenn du mit unendlich kleinen Zeitabständen rechnest.
Wenn du die Zeitabstände mal von 1 Sekunde auf 0,5 Sekunden, 0,1 Sekunden, 0,05 Sekunden, 0,01 Sekunden... verkürzt, kommst du dem tatsächlichen Ergebnis immer näher.
In deinem Fall geht die Rechnung allerdings wirklich auf, weil du mit der Durchschnittsgeschwindigkeit deiner Zeitperiode rechnest. Wenn du das gleiche versuchst, um die zurückgelegte Strecke auszurechnen, wird das wahrscheinlich nicht klappen.
Die passenden Formeln findet man leicht im Web (https://jumk.de/formeln/freier-fall.shtml).
RoboHolIC
29.03.2019, 00:32
...ist es richtig, dass jede Sekunde die aktuelle Geschwindigkeit gleichmäßig um weitere 10m/s gegenüber vorher zunimmt? Und die Höhe jede Sek. um konstant 10m mehr als in der vorherigen abnimmt (rund gerechnet)?
Nein. Die Geschwindigkeit nimmt zwar je Sekunde um 10m/s zu, aber der zurückgelegte Weg (=Abnahme der Höhe über Grund) verändert sich quadratisch mit 0,5 * 10m/s² * ((t_2)²-(t_1)²), wobei t_2 > t_1.
Nein. Die Geschwindigkeit nimmt zwar je Sekunde um 10m/s zu, aber der zurückgelegte Weg (=Abnahme der Höhe über Grund) verändert sich quadratisch mit 0,5 * 10m/s² * ((t_2)²-(t_1)²), wobei t_2 > t_1.
Doch! Er sagte "konstant 10 m mehr als in der vorigen..."
0,5 * 10 * (1²-0²) = 5
0,5 * 10 * (2²-1²) = 15
0,5 * 10 * (3²-2²) = 25
0,5 * 10 * (4²-3²) = 35
0,5 * 10 * (5²-4²) = 45
Holomino
29.03.2019, 08:09
Integralrechnung ist Dein Freund:
g= sE/tE² //Konstant
v= g*t //lineare Funktion
s= 1/2 * g * t² //quadratische Funktion
s= 1/2 * sE/tE² * t² //g eingesetzt
t= SQRT(2s /sE * tE²) //Nach t umgestellt
Eingesetzt:
tE² = 1s²
sE = 10m
s= 125m
t=SQRT( 2*125m /10m * 1s²) = SQRT(25s²) = 5s
v= t*g = 5s*10m/s² = 50m/s //Geschwindigkeit zum Zeitpunkt t
Integralrechnung ist Dein Freund:
g= sE/tE² //Konstant
v= g*t //lineare Funktion
s= 1/2 * g * t² //quadratische Funktion
s= 1/2 * sE/tE² * t² //g eingesetzt
t= SQRT(2s /sE * tE²) //Nach t umgestellt
Eingesetzt:
tE² = 1s²
sE = 10m
s= 125m
t=SQRT( 2*125m /10m * 1s²) = SQRT(25s²) = 5s
v= t*g = 5s*10m/s² = 50m/s //Geschwindigkeit zum Zeitpunkt t
mit Integralrechnung ist es klar, aber es geht hier um ein iteratives Verfahren, das in einem C++ Programm eingesetzt werden soll.
Momentan: Iteration jede volle Sekunde,
später auch ggf. engmaschiger.
Mir ist dabei nur aufgefallen, dass die Schritte jede Sekunde immer eine um konstant 10m schnelleren Höhenverlust ergeben (5 auf 15, dann 25, dann 35, dann 45m, und die Zunahme bleibt auch konstant und wird nicht schneller), nur nicht bei der 1. Sekunde, da sind es von 0m auf 5m nur 5m Differenz, nicht 10m Differenz wie sonst. Der Grund dafür ist mir spontan nicht ganz einleuchtend.
Das liegt daran, dass du mit den Mittelwerten der linearen Geschwindigkeitsfunktion (v = g * t) arbeitest.
Bei 0 Sekunden (mit g = ~10) ist v = 0, bei 1 Sekunde ist v = 10 , Mittelwert 5.
Bei 1 Sekunden ist v = 10, bei 2 Sekunde ist v = 20 , Mittelwert 15.
Bei 2 Sekunden ist v = 20, bei 3 Sekunde ist v = 30 , Mittelwert 25.
Da die Funktion linear ist und du mit dem Mittelwert arbeitest, ist das Ergebnis exakt und die Iteration über kleinere Intervalle bringt dir keine höhere Genauigkeit. Anders wäre es, wenn du mit der Anfang deiner Intervalle (also 0, 10, 20, ...) arbeitest. Dann wird das Ergebnis mit kleineren Intervallen genauer.
Das liegt daran, dass du mit den Mittelwerten der linearen Geschwindigkeitsfunktion (v = g * t) arbeitest.
Bei 0 Sekunden (mit g = ~10) ist v = 0, bei 1 Sekunde ist v = 10 , Mittelwert 5.
Bei 1 Sekunden ist v = 10, bei 2 Sekunde ist v = 20 , Mittelwert 15.
Bei 2 Sekunden ist v = 20, bei 3 Sekunde ist v = 30 , Mittelwert 25.
Da die Funktion linear ist und du mit dem Mittelwert arbeitest, ist das Ergebnis exakt und die Iteration über kleinere Intervalle bringt dir keine höhere Genauigkeit. Anders wäre es, wenn du mit der Anfang deiner Intervalle (also 0, 10, 20, ...) arbeitest. Dann wird das Ergebnis mit kleineren Intervallen genauer.
aaahh!! na klar, danke!! ](*,)
die kürzeren Iterationen (später mal) sind für eine Animation auf einem Arduino-TFT - momentan in der "Testphase" mit Serial Monitor noch sehr ruckelig, aber brauchbar für Testzwecke 8)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.