## MATLAB functions for solving Lambert's problem

Version 1.0.0 (565 KB) by
Three MATLAB functions and a script that demonstrates how to interact with each Lambert routine.
Updated 24 Jan 2024

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)
% 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 (2024). 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 .

##### MATLAB Release Compatibility
Created with R2023b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux