Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

Re: ROCKET ERROR



David Bowman wrote:

I'm sorry to be so pedantic here, but your results *are* the theory,
(albeit numerically calculated) and hence, *must* agree with the theory.

Yes, and it is a more general theory that the analytical derivation provided
by Roger. I became aware that his formula does not predict the outcome
of a possible experiment accurately, unless the mass of each bullet, dm, is
small in comparison with the remaining mass mR. For the hypothetical
example used (initial mass=100 kg and v0=1000 m/s) the calculus-derived
formula predicts that for mR=10 kg

vR=v0*ln(100/mR)=2303 m/s (as long as dm<<mR)

It is not applicable for a rocket from which 9 bullets (of 10 kg
each) were fired with the same v0=1000 m/s. But my little
corrected program (see below) is a reliable theoretical description
of what should be expected in such case. It shows that vR should
be 1929 m/s rather than 2303 m/s. The discrepancy becomes 0.2%
when dm=0.01 kg (and when the program runs 1000 times longer).

Simple calculus does not deal with step-like discontinuities. A
brut-force numerical method is often more general, and more
effective, in solving practical problems, than an elegant
analytical method.

Brian Whatcott wrote:

The assumption was a constant mass flow rate so this was I
suppose an implicit simulation in time.

The discrete bullets model describes the continous flow correctly
when dm<<mR. But a theory which describes the continous flow
of molecular bullets does not describe a rocket propelled by very
large bullets.

program rocket3
let mR=100 ! initial total mass kg
let vR=0 ! rocket initially at rest
let dm=10 ! mass of each "bullet" kg
let v0=-1000 ! m/s (bullet wrt to rocket)
DO ! one bullet per loop
print mR;vR,1000*log(100/mR)
let dvR=-v0*dm/mR ! change of rocket m/s
let mR=mR-dm ! remaining rocket kg
let vR=vR+dvR ! new rocket speed
if mR<1*dm then stop
LOOP ! next bullet
end

Ludwik Kowalski