Exemplo n.º 1
0
        public void Adam2012Teste()
        {
            N = 70;

            double passo = 0.1;
            int npassos = Convert.ToInt32(2.0 / passo + 1);
            npassos = 5;

            kMax = 2.64;
            alfa = 0.35;
            Lmax = 69.5;
            Lmin = 1.0;

            x0 = 0.0;
            xf = kMax;

            Integral.Funcao bf = FuncaoBfAdam2012;
            Integral.Funcao an = FuncaoAnAdam2012;
            FixedPoint.FuncaoDupla fp = FuncaofpAdam2012;
            Integral.Funcao D = FuncaoDAdam2012;
            Integral.Funcao klinha = FuncaoklinhaAdam2012;
            Integral.Funcao funcaoIncial = FuncaoInicialAdam2012;

            autoQuad = new AutoQuad2(10, x0, xf, precisaoRequerida, 10);

            FixedPoint fixedPoint = new FixedPoint(N, x0, xf, bf, an, fp, D, funcaoIncial);

            //fixedPoint.PrepararFp = CalcularS0;

            CalcularS0(kMax);

            Stopwatch stopwatch = new Stopwatch();

            List<double[]> concentracao = new List<double[]>();

            stopwatch.Start();

            concentracao = fixedPoint.Calcular(npassos, passo);

            Trace.WriteLine(stopwatch.ElapsedMilliseconds);

            stopwatch.Stop();

            var fator = 1;

            CriarScripParaMatlabConcentracao(@"LaxminaraAdam2012\concentracao", fixedPoint.tempo,fixedPoint.x, concentracao, fator);
        }
Exemplo n.º 2
0
        public void McCoyTeste()
        {
            N = 100;
            int npassos = 101;
            double passo = 0.1;

            x0 = 125.0;
            xf = 1200.0;

            Integral.Funcao bf = FuncaoBfMcCoy;
            Integral.Funcao an = FuncaoAnMcCoy;
            FixedPoint.FuncaoDupla fp = FuncaofpMcCoy;
            Integral.Funcao D = FuncaoDMcCoy;
            Integral.Funcao funcaoIncial = FuncaoMcCoy;

            FixedPoint fixedPoint = new FixedPoint(N, x0, xf, bf, an, fp, D, funcaoIncial);

            Stopwatch stopwatch = new Stopwatch();

            List<double[]> concentracao = new List<double[]>();

            stopwatch.Start();

            concentracao = fixedPoint.Calcular(npassos, passo);

            Trace.WriteLine(stopwatch.ElapsedMilliseconds);

            stopwatch.Stop();

            autoQuad = new AutoQuad2(10, x0, xf, precisaoRequerida, 15);

            int numeroDePontos = 6;
            var fator = Convert.ToInt32(1.0/passo);
            //var fator = 1;

            var momentosNumericos = new List<double[]>();

            var listaTempo = new List<double>();

            int contador = 0;

            var momentosIniciais = CalcularMomentosIniciaisMcCoy(numeroDePontos, FuncaoMcCoy);

            momentosNumericos.Add(momentosIniciais);

            for (int i = 1; i < fixedPoint.tempo.Length; i += fator)
            {
                contador++;

                var momentos = CalcularMomentos(numeroDePontos, concentracao[i], fixedPoint.x);

                momentosNumericos.Add(momentos);

                listaTempo.Add(contador);

            }

            List<double[]> momentosAnaliticos = CalcularMomentosAnaliticosMcCoy(fixedPoint.tempo, numeroDePontos, momentosIniciais, fator);

            CriarScripParaMatlabConcentracao(@"LaxminaraMcCoy\concentracao", fixedPoint.tempo,fixedPoint.x, concentracao, fator);
            CriarScripParaMatlabMomentos(@"LaxminaraMcCoy\momentos", "A", listaTempo.ToArray(), momentosAnaliticos, momentosNumericos, 1);
        }