def obter_integral_aprox(a, b, x, y, grau, nit = 10, n = 4): h = (b-a) / n fa = newton.aproximar_funcao(x, y, a, grau) fb = newton.aproximar_funcao(x, y, b, grau) ex = fa + fb; c = a; s = 0 integrais = [] for i in range(n-1): c = c+h s = s + newton.aproximar_funcao(x, y, c, grau) integrais.append( (ex + 2.0 * s) * (h/2.0) ) for k in range(1, nit): h_novo = h/2.0; c = a + h_novo s = s + newton.aproximar_funcao(x, y, c, grau) for i in range(n-1): c = c + h s = s + newton.aproximar_funcao(x, y, c, grau) integrais.append( (ex + 2.0 * s) * (h_novo / 2.0) ) h = h_novo; n = n + n return integrais
def obter_integral_aprox(a, b, x, y, grau, nit=10, n=4): hv = (b - a) / n integrais = [] fa = newton.aproximar_funcao(x, y, a, grau) fb = newton.aproximar_funcao(x, y, b, grau) ex = fa + fb sp = newton.aproximar_funcao(x, y, (a + hv), grau) + newton.aproximar_funcao(x, y, (a + 3.0 * hv), grau) si = newton.aproximar_funcao(x, y, (a + 2.0 * hv), grau) integrais.append((ex + 4.0 * sp + 2.0 * si) * (hv / 3.0)) for i in range(1, nit): si = si + sp hp = hv / 2.0 c = a + hp sp = newton.aproximar_funcao(x, y, c, grau) for k in range(n - 1): c = c + hv sp = sp + newton.aproximar_funcao(x, y, c, grau) n = n + n hv = hp integrais.append((ex + 4.0 * sp + 2.0 * si) * (hp / 3.0)) return integrais