Integrações Numéricas

Funções do módulo codigos.integracoes para regras compostas e auxiliares.

Documentação

Módulo para métodos de integração numérica.

Este módulo implementa algoritmos de integração numérica: Regra dos trapézios, Simpson 1/3 e suas versões repetidas.

Author: Pedro Henrique Rocha de Andrade Date: Dezembro 2025

codigos.integracoes.pedir_dados_integral()[código-fonte]

Lê interativamente a função e limites para integração.

Retorna:

func : str ou None - expressão da função a, b : float - limites do intervalo composta : bool - se deve usar regra composta Retorna (None, None, None, None) em caso de erro de parsing.

Tipo de retorno:

(func, a, b, composta)

codigos.integracoes.pedir_m_ou_h(a, b, regra)[código-fonte]

Auxiliar que solicita m (número de subintervalos) ou h (tamanho do passo).

Parâmetros:
  • a (float) – Intervalo de integração.

  • b (float) – Intervalo de integração.

  • regra (str) – Identificador da regra (‘trapezio’, ‘simpson13’, ‘simpson38’) usado para validar requisitos (paridade, múltiplos).

Retorna:

Tupla (m, h) calculada, ou (None, None) em caso de entrada inválida.

Tipo de retorno:

(int, float) or (None, None)

codigos.integracoes.erro_truncamento_composta(a, b, m, derivada_max, metodo)[código-fonte]

Estimativa do erro de truncamento para regras compostas.

Parâmetros:
  • a (float) – Intervalo de integração.

  • b (float) – Intervalo de integração.

  • m (int) – Número de subintervalos.

  • derivada_max (float) – Valor máximo estimado da derivada relevante no intervalo (ex.: segunda derivada para trapézio).

  • metodo (str) – ‘trapezio’, ‘simpson13’ ou ‘simpson38’.

Retorna:

Estimativa do erro de truncamento (pode ser negativa conforme fórmula) ou None se método desconhecido.

Tipo de retorno:

float or None

codigos.integracoes.newton_cotes(func, a, b, ordem, verbose=False, grafico=None)[código-fonte]

Newton-Cotes para integração numérica (ordens 1,2,3).

Otimizações

  • Tenta usar sympy.lambdify para avaliar a função de forma vetorizada quando possível.

Verbose & Gráficos

  • verbose=False (padrão): execução silenciosa (comportamento compatível com testes automatizados).

  • verbose=True: imprime detalhes auxiliares e, por padrão, habilita grafico=True.

Parâmetros

funcstr

Expressão da função em termos de x.

a, bfloat

Limites do intervalo de integração (números finitos, distintos).

ordemint

Ordem da regra (1, 2 ou 3).

verbosebool, optional

Habilita saídas detalhadas e gráficos (padrão: False).

graficobool or None, optional

Controla plotagem: se None e verbose for True, é habilitado; caso contrário, respeitado.

Retorno

float

Aproximação da integral.

Notas de teste

Os testes unitários que cobrem Newton-Cotes e regras compostas estão em tests/test_integracoes.py.

codigos.integracoes.trapezio_composta(func, a, b, verbose=False, grafico=None)[código-fonte]

Regra do Trapézio composta para integração numérica.

Parâmetros:
  • func (str) – Expressão da função em termos de x.

  • a (float) – Limites do intervalo de integração.

  • b (float) – Limites do intervalo de integração.

  • verbose (bool, optional) – Se True, imprime detalhes e habilita (por padrão) a plotagem e estimativa de erro.

  • grafico (bool or None, optional) – Controla plotagem: se None e verbose for True, habilita-a.

Retorna:

Aproximação da integral ou None em caso de erro/entrada inválida.

Tipo de retorno:

float or None

Notas

Testes para regras compostas estão em tests/test_integracoes.py.

codigos.integracoes.simpson_1_3_composta(func, a, b, verbose=False, grafico=None)[código-fonte]

Regra de Simpson 1/3 composta para integração numérica.

Parâmetros:
  • func (str) – Expressão da função em termos de x.

  • a (float) – Limites do intervalo de integração.

  • b (float) – Limites do intervalo de integração.

  • verbose (bool, optional) – Se True, imprime detalhes, habilita plot e estimativa de erro.

  • grafico (bool or None, optional) – Controla plotagem: se None e verbose for True, habilita-a.

Retorna:

Aproximação da integral ou None em caso de erro/entrada inválida.

Tipo de retorno:

float or None

codigos.integracoes.simpson_3_8_composta(func, a, b, verbose=False, grafico=None)[código-fonte]

Regra de Simpson 3/8 composta para integração numérica.

Parâmetros:
  • func (str) – Expressão da função em termos de x.

  • a (float) – Limites do intervalo de integração.

  • b (float) – Limites do intervalo de integração.

  • verbose (bool, optional) – Se True, imprime detalhes e habilita plot/estimativa de erro.

  • grafico (bool or None, optional) – Controla plotagem: se None e verbose for True, habilita-a.

Exemplo de Uso

1"""Exemplo: integrações numéricas simples"""
2from codigos import integracoes as ig
3
4if __name__ == '__main__':
5    # Evita prompts interativos; usa newton_cotes simples (não composta) para exemplos não interativos
6    res_trap = ig.newton_cotes('x', 0.0, 1.0, 1)
7    print('Trapézio (x) [0,1] ->', res_trap)
8    res_simp = ig.newton_cotes('x**2', 0.0, 1.0, 2)
9    print('Simpson 1/3 (x**2) [0,1] ->', res_simp)

Testes de Integração

Coberto pelos seguintes testes:

  • Teste global: pytest -q (roda todos os testes do projeto)

  • Teste de calcnum: pytest tests/test_inputs_calcnum.py::test_calcnum_inputs_basic -q (valida integração via menu principal)

  • Teste individual: pytest tests/test_integracoes.py -v (testes específicos do módulo)

Teste correspondente: tests/inputs/inputIntegracoes_calcnum.txt

Testes Unitários (visíveis)

Testes: test_integracoes