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) ouh(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
verbosefor 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
Noneem 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
Noneem 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)
Links rápidos
Teste de integração relacionado:
tests/test_inputs_calcnum.py::test_calcnum_inputs_basicTestes unitários (arquivo):
tests/test_integracoes.pyPágina de testes (docs): Testes: test_integracoes