- #1

- 1

- 0

You are using an out of date browser. It may not display this or other websites correctly.

You should upgrade or use an alternative browser.

You should upgrade or use an alternative browser.

- Thread starter palnm
- Start date

- #1

- 1

- 0

- #2

rcgldr

Homework Helper

- 8,749

- 553

Note this post only describes the math for the y-axis. (The x-axis movement would not involve g).

This can be integrated directly to determine velocity versus time, but apparently not position versus time. Wiki article with the answers, but not the derivation:

http://en.wikipedia.org/wiki/Drag_(physics)#Velocity_of_a_falling_object

http://en.wikipedia.org/wiki/Terminal_velocity#Derivation_for_terminal_velocity

derivation in this pdf file (see section 3, falling object with newton drag):

http://math.kennesaw.edu/~sellerme/sfehtml/classes/math2202/fallingbodies.pdf

You can use numerical integration using the equation for acceleration versus velocity, to calculate velocity and position over a series of small time steps, or use the equation linked to above to calculate positions using the equation for velocity versus time. Example using acceleration versus velocity:

Acceleration = F(v) = g - ( Cd ρ A v^{2}) / (2 m)

For each time step, you calculate

new_velocity = old_velocity + time_step x average_acceleration

One way to do this is to use trapezoidal method

average_accleration = 1/2 (old_acceleration + new_acceleration)

new_velocity = old_velocity + time_step x 1/2 (old_acceleration + new_acceleration)

where old_acceleration is the acceleration at the start of a time step and new_acceleration is the acceleration at the end of a time step. This requires you be able to calculate new_acceleration directly or to be able to predict it via an iterative method (see below)

You can then calculate position once you calculate the new velocity, using the same method:

new_position = old_position + time_step x 1/2 x (old_velocity + new_velocity)

An iterative corrector method will improve the results. In the algorithm shown below, a_{n}, v_{n}, and p_{n}, are successive "guesses" that should converge quickly. F(...) calculates the acceleration based on v_{n}(t), and Δt is the elapsed time per step. You may want to do 6 to 8 interations instead of the 4 shown in this example. The first step is essentially Euler (since a_{1}(t) is set = F(v_{0}(t)) (= a(t-1)), the remaining steps are trapezoidal. Even though each step of this algorithm will converge to a specific set of values, the algorithm is based on trapezoidal rule, a linear approximation, so you need to use small time steps (Δt).

F(v) = g - ( Cd ρ A v^{2}) / (2 m)

v_{0}(t) = v(t-1)

p_{0}(t) = p(t-1)

a_{1}(t) = F(v_{0}(t))

v_{1}(t) = v(t-1) + 1/2 (a(t-1) + a_{1}(t)) Δt

p_{1}(t) = p(t-1) + 1/2 (v(t-1) + v_{1}(t)) Δt

a_{2} = F(v_{1}(t))

v_{2}(t) = v(t-1) + 1/2 (a(t-1) + a_{2}(t)) Δt

p_{2}(t) = p(t-1) + 1/2 (v(t-1) + v_{2}(t)) Δt

a_{3} = F(v_{2}(t))

v_{3}(t) = v(t-1) + 1/2 (a(t-1) + a_{3}(t)) Δt

p_{3}(t) = p(t-1) + 1/2 (v(t-1) + v_{3}(t)) Δt

a_{4} = F(v_{3}(t))

v_{4}(t) = v(t-1) + 1/2 (a(t-1) + a_{4}(t)) Δt

p_{4}(t) = p(t-1) + 1/2 (v(t-1) + v_{4}(t)) Δt

...

v(t) = v_{n}(t)

p(t) = p_{n}(t)

a(t) = F(p_{n}(t))

time += Δt

t += 1

This is a predictor-corrector type algorithm:

http://en.wikipedia.org/wiki/Predictor-corrector_method#Euler_trapezoidal_example

Since you have an equation for velocity versus time v = V(t), you can use it directly and just use trapezoidal rule (time steps still need to be small):

t = 0

time = 0

v(t) = v(time)

p(t) = p(time)

loop:

t += 1

time += Δt

v(t) = V(time)

p(t) = p(t-1) + 1/2 (v(t-1) + v(t)) Δt

This can be integrated directly to determine velocity versus time, but apparently not position versus time. Wiki article with the answers, but not the derivation:

http://en.wikipedia.org/wiki/Drag_(physics)#Velocity_of_a_falling_object

http://en.wikipedia.org/wiki/Terminal_velocity#Derivation_for_terminal_velocity

derivation in this pdf file (see section 3, falling object with newton drag):

http://math.kennesaw.edu/~sellerme/sfehtml/classes/math2202/fallingbodies.pdf

You can use numerical integration using the equation for acceleration versus velocity, to calculate velocity and position over a series of small time steps, or use the equation linked to above to calculate positions using the equation for velocity versus time. Example using acceleration versus velocity:

Acceleration = F(v) = g - ( Cd ρ A v

For each time step, you calculate

new_velocity = old_velocity + time_step x average_acceleration

One way to do this is to use trapezoidal method

average_accleration = 1/2 (old_acceleration + new_acceleration)

new_velocity = old_velocity + time_step x 1/2 (old_acceleration + new_acceleration)

where old_acceleration is the acceleration at the start of a time step and new_acceleration is the acceleration at the end of a time step. This requires you be able to calculate new_acceleration directly or to be able to predict it via an iterative method (see below)

You can then calculate position once you calculate the new velocity, using the same method:

new_position = old_position + time_step x 1/2 x (old_velocity + new_velocity)

An iterative corrector method will improve the results. In the algorithm shown below, a

F(v) = g - ( Cd ρ A v

v

p

a

v

p

a

v

p

a

v

p

a

v

p

...

v(t) = v

p(t) = p

a(t) = F(p

time += Δt

t += 1

This is a predictor-corrector type algorithm:

http://en.wikipedia.org/wiki/Predictor-corrector_method#Euler_trapezoidal_example

Since you have an equation for velocity versus time v = V(t), you can use it directly and just use trapezoidal rule (time steps still need to be small):

t = 0

time = 0

v(t) = v(time)

p(t) = p(time)

loop:

t += 1

time += Δt

v(t) = V(time)

p(t) = p(t-1) + 1/2 (v(t-1) + v(t)) Δt

Last edited:

- #3

cepheid

Staff Emeritus

Science Advisor

Gold Member

- 5,192

- 38

I agree that it looks nasty: right now you've got what's called an integral equation. The velocity depends on its own integral in some way. My advice would be NOT to take that step of integrating both sides of the equation. Instead, leave it as it is. Then you have a differential equation -- the velocity is related to its derivative. That's something that I, at least, have a better idea of how one might go about solving. For instance, in the x-direction where drag is the only force acting, you have:

[tex] F_x = -\frac{1}{2}\rho A C_d v_x^2 [/tex]

[tex] ma_x = -\frac{1}{2}\rho A C_d v_x^2 [/tex]

You can write this as

[tex] m\frac{dv_x}{dt} = -\frac{1}{2}\rho A C_d v_x^2 [/tex]

This differential equation is separable.

- #4

rcgldr

Homework Helper

- 8,749

- 553

v(t) = v_{n}(t)

p(t) = p_{n}(t)

a(t) = F(p_{n}(t))

time += Δt

t += 1

a(t) is a function of velocity, so that third line should be:

a(t) = F(v

Share: