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); }
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); }
public void TestarBalancoDeMassaAdam2012() { autoQuad = new AutoQuad2(10, x0, xf, precisaoRequerida, 10); kMax = 2.64; alfa = 0.35; x0 = 0.0; xf = kMax; double xlinha = 1.64; CalcularS0(xlinha); Integral.Funcao funcao = delegate(double x) { double valor = FuncaofpAdam2012(x, xlinha) * D(x); return valor; }; autoQuad.LimiteInferior = 0.0; autoQuad.LimiteSuperior = xlinha; double valorAutoquad; double valorComPrecisaoAutoquad; double precisaoAutoquad; if (!autoQuad.Calcular(funcao, out valorAutoquad, out valorComPrecisaoAutoquad, out precisaoAutoquad)) throw new Exception("Erro no cálculo da AutoQuad"); if (precisaoAutoquad > precisaoRequerida) Trace.Write("Precisão não foi atingida na AutoQuad"); Assert.AreEqual(1.0, valorAutoquad, 0.00000001); }
public void AtribuirCampos() { metodoDeCoeficientes = MomentosBase.MetodoCoeficientesDosMomentos.Wheeler; funcaoDeMomentoInicial = FuncaoDeMomentoInicial; autoQuad = new AutoQuad(10, 0.0, 1.0, precisaoRequerida, 10); autoQuadS0 = new AutoQuad2(10,0.0,1.0,precisaoRequerida,10); numeroDePontos = 5; deltaN = 2; numeroDePontosInicial = 5; deltaNInicial = 2; //Parâmetros da distribuição inicial x0 = 6.0; aP = 99.7373819939209; alfaGama = 2.11974361925893; beta = 8.60867323342265; Lmin = 6.0; Lmax = 69.5; limiteInferiorDistribuicao = Lmin; limiteSuperiorDistribuicao = Lmax; //Parâmetros do Hidrocraqueamento //Valores dos parâmetros para T = 324 C alfa = 0.5; // alfa = 0.35; kMax = 2.64; //1/hora; a0 = 8.14; a1 = 4.68; delta = 7.05e-07; //Valores dos parâmetros para T = 342 C //alfa = 0.40; //kMax = 8.08; //1/hora; //a0 = 6.00; //a1 = 3.80; //delta = 9.05e-07; //Valores dos parâmetros para T = 354 C //alfa = 0.314; //kMax = 32.08; //1/hora; //a0 = 5.82; //a1 = 3.60; //delta = 9.05e-07; funcaoEVezesPolinomio = FuncaoEVezesPolinomio; }