Three MATLAB functions and a script that demonstrates how to interact with each Lambert routine.
You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
This archive contains three MATLAB functions ported from FORTRAN programs documented in Sam Wagner's PhD disseration,"Automated trajectory design for impulsive and low thrust interplanetary mission analysis", Iowa State, 2014.
Chapter 2 of Sam's research discusses the characteristics and practical computer implementation of Lambert algorithms due to Richard Battin, Robert Gooding and F. T. Sun.
The I/O arguments for each routine are identical. Here is the
format for the Battin function.
function [vi, vf] = lambert_battin(mu, r1, r2, dt, ot)
% this function contains the battin lambert solution method
% inputs
% mu = gravitational constant (kilometers^3/seconds^2)
% r1 = initial position vector (kilometers)
% r2 = final position vector (kilometers)
% dt = transfer time (seconds)
% ot = orbit type (1 = prograde, 2 = retrograde)
% outputs
% vi = initial velocity vector of transfer orbit (kilometers/second)
% vf = final velocity vector of transfer orbit (kilometers/second)
These functions attempt to solve Lambert's problem for the transfer orbit that completes less than one complete revolution of the central body. The direction of the transfer orbit can prograde or retrograde.
Cite As
David Eagle (2026). MATLAB functions for solving Lambert's problem (https://www.mathworks.com/matlabcentral/fileexchange/158221-matlab-functions-for-solving-lambert-s-problem), MATLAB Central File Exchange. Retrieved .
General Information
- Version 1.0.0 (565 KB)
MATLAB Release Compatibility
- Compatible with any release
Platform Compatibility
- Windows
- macOS
- Linux
| Version | Published | Release Notes | Action |
|---|---|---|---|
| 1.0.0 |
