private void ExecucaoExemploSimpson()
        {
            FuncoesSimpson funcSimp = new FuncoesSimpson();
            ExemploFuncoes funcExemplos = new ExemploFuncoes();
            double a = 0, b = 0.8;
            int n = 4, nParImpar = 5;
            bool exercicio = false;

            Console.WriteLine("Utilizacao das funcoes para o exemplo:");
            Console.WriteLine();
            Console.WriteLine(equacaoExemplo);
            Console.WriteLine();

            Console.WriteLine("Resultado 1/3 = " + Math.Round(funcSimp.CalculaSimp13(a, b, exercicio, 12), 6)); //OK Exemplo
            Console.WriteLine();

            Console.WriteLine("Resultado 1/3 Multiplo = " + Math.Round(funcSimp.CalculaSimp13m(a, b, n, exercicio), 6));// OK Exemplo
            Console.WriteLine();

            Console.WriteLine("Resultado 3/8 = " + Math.Round(funcSimp.CalculaSimp38(a, b, exercicio), 6)); //OK Exemplo
            Console.WriteLine();

            Console.WriteLine("Resultado Regra Multipla Par e Impar = " + Math.Round(funcSimp.CalculaSimpInt(a, b, nParImpar, exercicio), 6));// OK Exemplo
            Console.WriteLine();
        }
        private void ExecucaoExercicioAV1_24_1()
        {
            FuncoesSimpson funcAv1 = new FuncoesSimpson();
            double g = 1200;
            double ti = -150, tf = 100, inc = 50;

            Console.WriteLine("Utilização da funcao do exercicio 24.1:");
            Console.WriteLine();
            Console.WriteLine(equacaoExercicioAV1_24_1);
            Console.WriteLine();
            Console.WriteLine("Resultado da utilizacao de simpson 1/3 com: ");
            Console.WriteLine("Gramas: " + g + " g");
            Console.WriteLine("Temperatura inicial: " + ti + " °C");
            Console.WriteLine("Temperatura final: " + tf + " °C");
            Console.WriteLine("Incremento: " + inc + " °C");
            Console.WriteLine();
            Console.WriteLine("Quantidade de calor " + funcAv1.CalculaSimp13mAV1_24_1(ti, tf, inc, g)+" cal");
        }
        public double CalculaIntegracao(double a, double b, int maxit, double es)
        {
            Stopwatch sw = new Stopwatch();
            tempoExecucao = TimeSpan.Zero;
            sw.Start();

            RegraDoTrapezio.RegraDoTrapezio trap = new RegraDoTrapezio.RegraDoTrapezio();
            FuncoesSimpson simp = new FuncoesSimpson();
            double[,] I = new double[maxit, maxit];
            double ea = 0;
            int n = 1;
            int j = 0;
            int iter = 0;
            double solucao = 0;
            I[1, 1] = trap.CalculaRegraEq(n, a, b);

            while (true)
            {
                iter += 1;

                n = (int)Math.Pow(2, iter);

                I[iter+1,1] = trap.CalculaRegraEq(n, a, b);

                for(int k = 2; k <= iter + 1; k++)
                {
                    j = 2 + iter - k;
                    I[j, k] = (Math.Pow(4, k - 1) * I[j + 1, k - 1] - I[j, k - 1]) / (Math.Pow(4, k - 1) - 1);
                }
                ea = Math.Abs((I[1, iter] - I[2, iter - 1]) / I[1, iter]) * 100;
                if(iter >= maxit || ea <= es)
                {
                    break;
                }
            }

            iteracoes = iter;
            solucao = Math.Round(I[1, iter + 1],6);
            sw.Stop();

            tempoExecucao = sw.Elapsed;

            return solucao;
        }
        private void ExecucaoExercicioSimpson()
        {
            FuncoesSimpson funcSimp = new FuncoesSimpson();
            ExemploFuncoes funcExemplos = new ExemploFuncoes();
            double a = 0, b = 10;
            int n = 10;
            int nEq = 256;
            bool exercicio = true;

            Console.WriteLine("Utilizacao das funcoes para o exercicio:");
            Console.WriteLine();
            Console.WriteLine(equacaoExercicio);
            Console.WriteLine();

            Console.WriteLine("Resultado 1/3 = " + Math.Round(funcSimp.CalculaSimp13(a, b, exercicio, 100), 6)); //OK Exercicio
            Console.WriteLine("O sistema levou " + funcSimp.tempoSimp13 + " para ser resolvido");
            Console.WriteLine();

            Console.WriteLine("Resultado 1/3 Multiplo = " + Math.Round(funcSimp.CalculaSimp13m(a, b, n, exercicio), 6)); //OK Exercicio
            Console.WriteLine("O sistema levou " + funcSimp.tempoSimp13m + " para ser resolvido");
            Console.WriteLine();

            Console.WriteLine("Resultado 3/8 = " + Math.Round(funcSimp.CalculaSimp38(a, b, exercicio), 6)); //OK Exercicio
            Console.WriteLine("O sistema levou " + funcSimp.tempoSimp38 + " para ser resolvido");
            Console.WriteLine();

            Console.WriteLine("Resultado Regra Multipla Par e Impar = " + Math.Round(funcSimp.CalculaSimpInt(a, b, n, exercicio), 6));// OK Exercicio
            Console.WriteLine("O sistema levou " + funcSimp.tempoSimpInt + " para ser resolvido");
            Console.WriteLine();

            //Exercicio Romberg
            Console.WriteLine("Aplicação no exemplo 21.1 como solicitado na aula 3");
            Console.WriteLine("Resultado Regra 1/3 quando a funcao e conhecida = " + Math.Round(funcSimp.CalculaSimpEq(nEq, 0, 0.8), 6));// OK Exercicio
            Console.WriteLine("O utilizando " + nEq + " segmentos");
            Console.WriteLine("O sistema levou " + funcSimp.tempoSimpInt + " para ser resolvido");

            Console.WriteLine();
        }