예제 #1
0
 public OdeIntegrationFct(List <double?> points,
                          List <double?> betas,
                          double tol)
 {
     rk_     = new AdaptiveRungeKutta(tol);
     points_ = points;
     betas_  = betas;
 }
예제 #2
0
        public void step(ref object a, double t, double theta = 1.0)
        {
            Utils.QL_REQUIRE(t - dt_ > -1e-8, () => "a step towards negative time given");
            List <double> v = new AdaptiveRungeKutta(eps_, relInitStepSize_ * dt_.Value).value(this.apply, a as Vector, t, Math.Max(0.0, t - dt_.Value));
            Vector        y = new Vector(v);

            bcSet_.applyAfterSolving(y);
            a = y;
        }