Hi Stephen,

First of all, IOD Lambert method gives you an initial Keplerian orbit. Therefore, I recommend you to use “Initial velocity” expression when you print the results of `estimate(...)`

method:

`fprintf('NRev = 0; Posigrade; Initial Velocity:\n');`

Another point that could be useful, even if it is not relevant here, is to use SI base unit.

In order to obtain the final velocity (i.e. `v(t2)`

in your image), you can use a `KeplerianPropagator`

. Indeed, Lambert method assumes a Keplerian motion. Therefore, you can use the Keplerian propagator to obtain the final velocity.

In order to initialize the Keplerian propagator, you can directly use the `kepOrbitOut`

object built from the `estimate(...)`

method of `IODLambert`

object. Below an example:

```
% Posigrade
posigrade = true;
nRev = 0;
kepOrbitOut = iod1.estimate(inertialFrame,posigrade,nRev,pos1_km, ...
initialDate,pos2_km,finalDate);
kepPropagator = KeplerianPropagator(kepOrbitOut, mu);
vel1_km_s = kepOrbOut.getPVCoordinates().getVelocity();
vel2_km_s = kepPropagator.propagate(finalDate).getPVCoordinates().getVelocity();
```

Below the results I obtain:

For `NRev`

= 0

```
NRev = 0; Posigrade; Initial Velocity:\n
vECI (km/s): {2,0006526959; 0,3876886152; -2,6669477585}
NRev = 0; Posigrade; Final Velocity:\n
vECI (km/s): {-3,7924661872; -1,7770764054; 6,856814392}
```

For `NRev`

= 1

```
NRev = 1; Posigrade; Initial Velocity:\n
vECI (km/s): {-2,457595532; 1,1694580063; 0,431612576}
NRev = 1; Posigrade; Final Velocity:\n
vECI (km/s): {-5,5384131781; 0,0182221332; 5,4964101543}
```

The results agree with Gim Der’s document.

However, I don’t think it is possible to obtain the second solution for `NRev`

= 1. According to `IODLambert.estimate(...)`

method signature, Orekit only gives you one solution. However, I didn’t find a workaround to obtain the second solution.

Best regards,

Bryan