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] |
A bullet of mass dm is fired and the mass of the rocket decreases bydm.
The momentum gained by the bullet (in my lab frame) is dm*(v0-vR)
the momentum gained by the rocket is mR*d(vR) (in the same frame).
The magnitudes of these two changes of momentum must be equal.
Therefore, after firing a bullet the speed of the rocket changes by
d(vR)=(v0-vR)*dm/mR. The new vR is equal to the previous vR
minus d(vR). That is what the line 8 states.
In other words, the equation is derived from the law of conservation
of linear momentum. Naturally, one should make dm<<mR_initial.
I made dm=1% of the initial rocket mass but nothing prevents me from
choosing 0.1% or less.
order)Initially the rocket has mass mR and velocity vR; after ejecting a
bullet its mass is (mR-dm) and its velocity is vR+dv. Therefore
we have:
momentum gained by rocket = final momentum - initial momentum
= (mR-dm)*(vR+dv) - mR*vR = mR*dv - vR*dm
(to first differential
which is NOT equal to mR*dv as you claim. You have left off the
second term, which cancels the term dm*(-vR) in your expression
for the momentum gained by the bullet.
According to Roger's analysis, the line: let vR=vR+(v0-vR)*dm/mR
should actually be:
let vR=vR+v0*dm/mR
Please check my analysis. If you agree, I invite you to modify your
program and try re-running it!