Lambert Solver¶
lambert(r1, r2, tof, mu=None, prograde=None)
¶
Solve Lambert's problem using Izzo's algorithm (2015).
Given two position vectors and a time of flight, find the velocity vectors for transfer orbits connecting them.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
r1
|
NDArray[float64]
|
3-element numpy array — departure position (meters) |
required |
r2
|
NDArray[float64]
|
3-element numpy array — arrival position (meters) |
required |
tof
|
float
|
Time of flight in seconds (must be positive) |
required |
mu
|
float | None
|
Gravitational parameter in m³/s² (default: Earth µ = 3.986e14) |
None
|
prograde
|
bool | None
|
If True (default), prograde transfer; if False, retrograde |
None
|
Returns:
| Type | Description |
|---|---|
list[tuple[NDArray[float64], NDArray[float64]]]
|
List of (v1, v2) tuples. Each v1 and v2 is a 3-element numpy array |
list[tuple[NDArray[float64], NDArray[float64]]]
|
in m/s. The first element is the zero-revolution solution; additional |
list[tuple[NDArray[float64], NDArray[float64]]]
|
elements are multi-revolution solutions if they exist. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If inputs are invalid (negative tof, zero position, etc.) |