Ich muss dieses Problem mit einem Python-Code auf der Grundlage der Annahme der Schwerkraft mit Luftwiderstand betroffen lösen y "= g - (1/70) * (y ')^2, g = 9,8, y (0) = 0, y '(0) = 0Ein Objekt fällt 100 m. Wie lange dauert es, bis es fällt 100m
Ich habe die Frage ähnlich gelöst mit der Euler-Heun-Methode für y "= y - (1/10) * y', y (0) = 0, y '(0) = 1, [0, unendlich]
Wie ändere ich was ich habe, um das erste Problem des Luftwiderstandes zu lösen? Irgendwelche Vorschläge?
h= 0.0001
y = 0.0
t = 0.0
v = 1.0
while y >= 0:
ym = v*h+y
vm = v - h*(y +v*0.1)
y = y + 0.5*h*(v+vm)
v = v - 0.5*h*(y + ym + 0.1*(v + vm))
t += h
error = abs(1.0 - y/ym)
if error > 1.0e-8:
h*=0.1
if error < 1.0e-10:
h*=1.1
print y, v, t
Hinweis: Ich habe auch versucht, ein einfaches Euler-Verfahren, aber der Fehler ist nicht genau genug
delta_t = .000001 #time step size
y = 0. #initial height
g = 9.8 #gravitational acceleration
t = 0. #initial time
y_prime = 0. #initial velocity
y_2_prime = g #initial acceleration
while y < 100:
y = y_prime * delta_t + y
y_prime = y_2_prime * delta_t + y_prime
y_2_prime = g - 0.014285714* y_prime**2
t = t + delta_t
print t
Hey, verwenden Sie Python 2? Wenn ja, "(1/70)" ist 0, also wirst du überhaupt keinen Widerstand haben. – DSM
ja du hast absolut recht. – pearli