コード例 #1
0
        public DistributionCalculator(BinomialTree model, QSpace qSpace, double q0, double rMin,
                                      double rMax, int nbStepsR, double sigmaMin, double sigmaMax, int nbStepsSigma)
        {
            m_model        = model;
            m_qSpace       = qSpace;
            m_q0           = q0;
            m_nbStepsR     = nbStepsR;
            m_nbStepsSigma = nbStepsSigma;

            m_configurationSpace = new Tuple <double, double> [nbStepsR][];

            var deltaR     = (rMax - rMin) / m_nbStepsR;
            var deltaSigma = (sigmaMax - sigmaMin) / m_nbStepsSigma;

            for (int iR = 0; iR < m_nbStepsR; iR++)
            {
                m_configurationSpace[iR] = new Tuple <double, double> [m_nbStepsSigma];

                for (int jSigma = 0; jSigma < m_nbStepsSigma; jSigma++)
                {
                    m_configurationSpace[iR][jSigma] = new Tuple <double, double>(rMin + iR * deltaR, sigmaMin + jSigma * deltaSigma);
                }
            }

            m_results = new Tuple <double, double> [m_nbStepsR][];

            for (int iR = 0; iR < m_nbStepsR; iR++)
            {
                m_results[iR] = new Tuple <double, double> [m_nbStepsSigma];
            }
        }
コード例 #2
0
        public OptimalController(IStochModel model, QSpace qSpace)
        {
            m_model = model;

            m_qSpace   = qSpace;
            m_QMax     = qSpace.QMax;
            m_QMin     = qSpace.QMin;
            m_qMax     = qSpace.DeltaQMax;
            m_qMin     = qSpace.DeltaQMin;
            m_dQ       = qSpace.Dq;
            m_nbStepsQ = qSpace.NbStepsQ;
        }
コード例 #3
0
 public DistributionCalculator(BinomialTree model, QSpace qSpace, double q0)
 {
     new DistributionCalculator(model, qSpace, q0, model.R, model.R, 1, model.Sigma, model.Sigma, 1);
 }