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
Geändert von Holomino (29.03.2019 um 07:20 Uhr)
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.
Lesezeichen