https://wiki.factorio.com/Locomotive#Maximum_speed

So every tick the train looses some speed to friction and then it gains some speed from the locmotives. Both of those factors do not include the speed of the train. So every tick the train should gain the same amount of speed until it hits the max speed. Also if the train is too long the formula turns negative, the train should loose speed every tick.Maximum speed

The maximum speed that a locomotive can get to depends on the train that it is pulling. The speed of an accelerating train can be calculated with the following formula:

train_speed = (old_train_speed - (train_friction_force ÷ train_weight) + ((10 × number_of_locomotives_in_moving_direction × fuel_acceleration_bonus) ÷ train_weight)) × (1 - air_resistance_of_front_rolling_stock × 1000 ÷ train_weight)

where train_friction_force is amount of wagons and locomotives ÷ 2 and train_weight is the summed up weight of each wagon and locomotive, see their individual pages for the weight values. The calculated train_speed is capped to max_speed = 1.2 * fuel_top_speed_multiplier.

But observation show:

- A train with 1 locomotive and 128 cargo wagons moves. Terribly sow but it moves.

- A train with 1 locomotive and 32 cargo wagons accelerates from 0 at about 1km/hs. At 60km/h it accelerates about 0.5km/hs. At 80km/h it accelerates about 0.3km/hs. At 98km/h it accelerates about 0.03km/hs.

This leads me to believe that the formula for train speed in the wiki is outdated or incomplete. There clearly is a component that is dependent on the speed of the train.

Could any devs shed some light on this please?