Main Content


Dead reckoning positions for track


[drlat,drlong,drtime] = dreckon(waypoints,time,speed)
[drlat,drlong,drtime] = dreckon (waypoints,time,speed,spdtimes)


[drlat,drlong,drtime] = dreckon(waypoints,time,speed) returns the positions and times of required dead reckoning (DR) points for the input track that starts at the input time. The track should be in navigational track format (two columns, latitude then longitude, in order of traversal). These waypoints are the starting and ending points of each leg of the track. There is one fewer track leg than waypoints, as the last point included is the end of the track. In navigation, the first waypoint would be a navigational fix, taken at time. The speed input can be a scalar, in which case a constant speed is used throughout, or it can be a vector in which one speed is given for each track leg (that is, speed changes coincide with course changes).

[drlat,drlong,drtime] = dreckon (waypoints,time,speed,spdtimes) allows speed changes to occur independent of course changes. The elements of the speed vector must have a one-to-one correspondence with the elements of the spdtimes vector. This latter variable consists of the time interval after time at which each speed order ends. For example, if time is 6.75, and the first element of spdtimes is 1.35, then the first speed element is in effect from 6.75 to 8.1 hours. When this syntax is used, the last output DR is the earlier of the final spdtimes time or the final waypoints point.


This is a navigational function. It assumes that all latitudes and longitudes are in degrees, all distances are in nautical miles, all times are in hours, and all speeds are in knots, that is, nautical miles per hour.

Dead reckoning is an estimation of position at various times based on courses, speeds, and times elapsed from the last certain position, or fix. In navigational practice, a dead reckoning position, or DR, must be plotted at every course change, every speed change, and at every hour, on the hour. Navigators also DR at other times that are not relevant to this function.

Often in practice, when two events occur that require DRs within a very short time, only one DR is generated. This function mimics that practice by setting a tolerance of 3 minutes (0.05 hours). No two DRs will fall closer than that.


Assume that a navigator gets a fix at noon, 1200Z, which is (10.3ºN, 34.67ºW). He's in a hurry to make a 1330Z rendezvous with another ship at (9.9ºN, 34.5ºW), so he plans on a speed of 25 knots. After the rendezvous, both ships head for (0º, 37ºW). The engineer wants to take an engine off line for maintenance at 1430Z, so at that time, speed must be reduced to 15 knots. At 1530Z, the maintenance will be done. Determine the DR points up to the end of the maintenance.

waypoints = [10.1 -34.6; 9.9 -34.5; 0 -37]

waypoints =
   10.1000  -34.6000							% Fix at noon
    9.9000  -34.5000							% Rendezvous point
         0  -37.0000							% Ultimate destination

speed = [25; 15];
spdtimes = [2.5; 3.5];							% Elapsed times after fix
noon = 12;
[drlat,drlong,drtime] = dreckon(waypoints,noon,speed,spdtimes);

ans =
    9.8999  -34.4999   12.5354								 % Course change at waypoint
    9.7121  -34.5478   13.0000								 % On the hour
    9.3080  -34.6508   14.0000								 % On the hour
    9.1060  -34.7022   14.5000								 % Speed change to 15 kts
    8.9847  -34.7330   15.0000								 % On the hour
    8.8635  -34.7639   15.5000								 % Stop at final spdtime, last 
 								 % waypoint has not been reached

Version History

Introduced before R2006a

See Also

| |