コード例 #1
0
        public static double[,] Run()
        {
            Stock          capital    = new Stock("Capital (K)", 1000, GlobalDimensions.get("k"));
            Stock          technology = new Stock("Technology (A)", 4, GlobalDimensions.get("a"));
            RandomVariable shock      = new RandomVariable("Shock (epsilon)", .9, 1.1, Dimensionless.Instance);

            TemporalVariable production = new Function("Production (Y)", x => x[0] * Math.Pow(x[1], x[2]) * x[3],
                                                       GlobalDimensions.get("k"), technology, capital, new Constant("Preference (alpha)", .3, Dimensionless.Instance), shock);
            Constant savingsRate = new Constant("Savings Rate (s)", .1, GlobalDimensions.Time.RaisedTo(-1));

            capital.IncreasesBy(production * savingsRate
                                - (capital * (new Constant("Depreciation Rate (delta)", .1, GlobalDimensions.Time.RaisedTo(-1)))));

            double[,] result = new double[100, 2];
            for (int tt = 0; tt < 100; tt++)
            {
                result[tt, 0] = capital.Evaluate(tt);
                result[tt, 1] = (1 - savingsRate.Evaluate(tt)) * production.Evaluate(tt);
            }

            return(result);
        }