Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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