static void Main(string[] args) { Program RegraDoTrapezio = new Program(); // RegraDoTrapezio.ExecucaoExercicioTrapezio(); RegraDoTrapezio regra = new RegraDoTrapezio(); Console.WriteLine(regra.CalculaRegraExemplo(0, 0.8, 100)); //Não é necessário, utilizado para entender o problema 24.1 //RegraDoTrapezio.ExecucaoExemploAV1_24_1(); Console.ReadLine(); }
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 ExecucaoExemploAV1_24_1() { RegraDoTrapezio exercicioAV1_24_1 = new RegraDoTrapezio(); double[] H = { 300, 150, 100, 50, 25, 10, 5, 1, 0.05 }; int[] n = { 1, 2, 3, 6, 12, 30, 60, 300, 6000 }; double ti = -100, tf = 200; Console.WriteLine("Utilizacao da regra do trapezio para calcular a equacao: "); Console.WriteLine(); Console.WriteLine(equacaoExercicioAV1_24_1); Console.WriteLine("Gramas: 1000 g"); Console.WriteLine("Temperatura inicial " + ti + " °C"); Console.WriteLine("Temperatura final " + tf + " °C"); for (int i = 0; i < n.Length; i++) { Console.WriteLine("H = " + H[i]); Console.WriteLine("s = " + exercicioAV1_24_1.CalculaExercicioAV1_24_1(ti, tf, n[i])); } }
private void ExecucaoExercicioTrapezio() { RegraDoTrapezio aplicacaoDaRegra = new RegraDoTrapezio(); int[] segmentos = { 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000 }; Console.WriteLine("Utilização da Regra do Trapezio para calcular o deslocamento do paraquedista: "); Console.WriteLine(); Console.WriteLine(equacaoExercicio); Console.WriteLine(); Stopwatch sw = new Stopwatch(); TimeSpan tempo = TimeSpan.Zero; sw.Start(); for (int i = 0; i < segmentos.Length; i++) { Console.WriteLine("I = " + aplicacaoDaRegra.CalculaRegraExercicio(0, 10, segmentos[i])); //Console.WriteLine("O sitema levou " + aplicacaoDaRegra.tempoTrapezio + " para ser resolvido"); } sw.Stop(); tempo = sw.Elapsed; Console.WriteLine(); Console.WriteLine("O sistema levou " + tempo + " com a regra do trapezio para ser resolvido"); Console.WriteLine(""); }