File Exchange

image thumbnail

Two-dimensional, Low-thrust Earth-to-Mars Trajectory Analysis with MATLAB

version (757 KB) by David Eagle
Determines optimal, two-dimensional low-thrust Earth-to-Mars interplanetary trajectories.


Updated 08 Apr 2016

View Version History

View License

PDF document and interactive MATLAB script named ilt_opt.m that can be used to analyze and optimize two-dimensional, heliocentric low-thrust trajectories between the orbits of Earth and Mars. In this script, the heliocentric planet orbits are assumed to be circular and coplanar. The optimal steering angle for either (1) minimum transfer time or (2) maximum final mass, are modeled as piecewise-linear variations. For both options, this script attempts to minimize the accumulated delta-v required to perform the transfer. Since the propulsive thrust is constant and continuous in this script, this is equivalent to minimizing the transfer time or maximizing the final mass.

Cite As

David Eagle (2021). Two-dimensional, Low-thrust Earth-to-Mars Trajectory Analysis with MATLAB (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

Felix Richter


I have installed SNOPT and configured the directories as explained by Mick Smith:

Although runNPexamples works without problems, ilt_opt still doesn't.

The error code is:

Not enough input arguments.
Error in snopt (line 307)
userFG = checkFun(userfun,'SNOPT','userfun');
Error in ilt_opt (line 185)
[x, f, inform, xmul, fmul] = snopt(xg, xlb, xub, flow, fupp, 'ilt_shoot');

Im hoping someone can help me with that!

Best regards

jun song

omid omidi

me ( change)

1:16 PM (1 hour ago)

I would like please help me in the following problem:
I use student-version Matlab mex-files of SNOPT, and also have added the directory where the mex-file is located to the Matlab path and am working in the same directory.
Besides, mex -setup FORTRAN is Ok. And my system includes:

Matlab 2014b,
Win 7, 64bit,
Visual Studio Ultimate 2013,

But, there is this error after running my Matlab code:

Undefined function 'snopt' for input arguments of type 'double'.

Error in ilt_opt (line 179)
[x, f, inform, xmul, fmul] = snopt(xg, xlb, xub, flow, fupp, 'ilt_shoot');

Many Thanks,

sun Chong

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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!