def obter_integral(a, b, funcao, nit = 10, n = 4, erro = 10 ** -16): integrais = simpson.obter_integral(a, b, funcao, nit, n) n = len(integrais) - 1 for i in range(n): erro_int = composicao_generica.calcular_erro(integrais[i], integrais[i + 1]) if erro_int < erro: return integrais[i] return integrais[n/2]
import funcoes from integracao.newtonianos import trapezio from integracao.newtonianos import simpson from integracao.newtonianos import simpson_composto from integracao.newtonianos import trapezio_melhorado print 'Testando integrador usando metodo de newton com a funcao lnx no intervalo 1-2' res = trapezio.obter_integral(1.0, 2.0, funcoes.lnx) i = 1 for r in res: print 'Integral', i, ': ', r i += 1 print 'Testando integrador usando metodo de simpson com a funcao lnx no intervalo 1-2' res = simpson.obter_integral(1.0, 2.0, funcoes.lnx) i = 1 for r in res: print 'Integral', i, ': ', r i += 1 print 'Testando integrador usando metodo de newton com a funcao 1/ xlnx no intervalo 2-4' res = trapezio.obter_integral(2.0, 4.0, funcoes.inverso_x_lnx) i = 1 for r in res: print 'Integral', i, ': ', r i += 1