diff --git a/src/Numerics/OdeSolvers/AdamsBashforth.cs b/src/Numerics/OdeSolvers/AdamsBashforth.cs
index aae22131..66ddeb38 100644
--- a/src/Numerics/OdeSolvers/AdamsBashforth.cs
+++ b/src/Numerics/OdeSolvers/AdamsBashforth.cs
@@ -59,7 +59,6 @@ namespace MathNet.Numerics.OdeSolvers
/// Second Order AB Method(Require two initial guesses)
///
/// Initial value 1
- /// Initial value 2
/// Start Time
/// End Time
/// Number of subintervals
@@ -70,12 +69,13 @@ namespace MathNet.Numerics.OdeSolvers
double dt = (end - start) / (N - 1);
double t = start;
double[] y = new double[N];
- double k1 = f(t, y0);
- double k2 = f(t + dt, y0 + dt * k1);
- double y1 = y0 + 0.5 * dt * (k1 + k2);
+ double fold = f(t, y0);
+ double ytilde = y0 + (2*dt/3) * fold;
+ double y1 = y0 + (dt/4) * fold + (3*dt/4) * f(t + (2*dt/3), ytilde );
y[0] = y0;
t += dt;
y[1] = y1;
+
for (int i = 2; i < N; i++)
{
y[i] = y1 + dt * (1.5 * f(t + dt, y1) - 0.5 * f(t, y0));