"""
Módulo principal do projeto de Cálculo Numérico.
Este módulo fornece uma interface interativa unificada para todos os
algoritmos implementados: conversões de bases, sistemas lineares,
interpolação, ajuste de curvas, integração e EDOs.
Author: Pedro Henrique Rocha de Andrade
Date: Dezembro 2025
"""
import numpy as np
from sympy import symbols, integrate, sympify
from sympy import sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, sqrt, log, Abs, pi, E
from .constants import SYMPY_LOCALS
"""
Projeto de Cálculo Numérico:
Autor: Pedro Henrique Rocha de Andrade
Orientador: Rodrigo Lacerda da Silva
Ano Início: 2025.2
Ideia: Reunir os códigos em um pacote, tornar público para o instituto e auxiliar os alunos a melhor compreender a lógica de programação resolvendo problemas de cálculo, álgebra e computação.
Apresentar ao instituto futuramente.
Github: https://github.com/pedroiff0/CalculoNumerico
Paper:
Documentação:
Tutoriais:
% pip3 install calculonumiff
"""
"""
Sistema de Conversão de Bases - Parte 0 (Teórica)
Funções:
- binario_para_decimal(s)
- decimal_para_binario(n)
- decimal_para_hexadecimal(n)
- hexadecimal_para_decimal(s)
- binario_para_hexadecimal(s)
- hexadecimal_para_binario(s)
"""
from codigos.bases import (
dados as dados_bases,
binario_para_decimal,
decimal_para_binario,
decimal_para_hexadecimal,
hexadecimal_para_decimal,
binario_para_hexadecimal,
hexadecimal_para_binario,
)
"""
Sistemas Lineares - Parte 1
Funções:
- eliminacao_gauss_sem_pivotamento(A, b)
- eliminacao_gauss_com_pivotamento(A, b)
- lu_sem_pivot(A,b)
- lu_com_pivot(A,b)
- forward_solve(L, b)
- backward_solve(U, y)
- calcular_residuo(A, x, b)
Funções Auxiliares:
- imprimir_sistema_linear()
- montar_sistema_valores() # (pedir dados ao usuario)
- exibir_residuo_detalhado(A, x, b)
- matriz_zeros_manual(n) # opcional
- multiplicar_matrizes(A, B) # opcional
- matriz_identidade(n) # opcional
"""
from codigos.sistemaslineares import (
eliminacao_gauss_sem_pivotamento,
eliminacao_gauss_com_pivotamento,
lu_sem_pivot,
lu_com_pivot,
montar_sistema_valores,
forward_solve,
backward_solve,
calcular_residuo,
exibir_residuo_detalhado,
)
"""
Interpolações - Parte 2
Funções:
- newton_dif_divididas(x, tabela, xp, max_grau=None)
- gregory_newton_progressivo(x, y, xp, max_grau=None)
- lagrange_interpol(x, y, xp, max_grau=None)
- dispositivo_pratico_lagrange(x, y, xp, max_grau=None)
- calcular_erro(func_str, x_vals, x_interp, grau, valor_interpolado)
Funções Auxiliares:
- dados_interpolacao()
- obter_max_grau(n):
- verifica_espaçamento_uniforme(x, tol=1e-15)
- tabela_diferencas_divididas(x, y)
- imprimir_tabela_diferencas_divididas(tabela)
- tabela_diferencas_finitas(y)
- imprimir_tabela_diferencas_finitas(tabela)
- perguntar_erro(x_vals, x_interp, grau, valor_interpolado)
"""
from codigos.interpolacoes import (
newton_dif_divididas,
gregory_newton_progressivo,
lagrange_interpol,
dispositivo_pratico_lagrange,
dados_interpolacao,
obter_max_grau,
verifica_espaçamento_uniforme,
tabela_diferencas_divididas,
)
"""
Ajustes de Curvas - Parte 3
Funções:
- regressaolinear(x, y) # opcional!
- regressaolinear_intervalo(x, y) # opcional!
- minquadrados(x, y)
- minquadrados_ordem_n_manual(x, y, ordem=1, tabela=True, grafico=True)
- calcula_chi_e_r2(x, y, b0, b1, n_params=2)
Funções Auxiliares:
- log_output(message, logfile='log_resultados.txt') # opcional
- dados() # especificamente (pode ser para Interpolações e Ajustes de Curvas)
- tabela_interpolador(x, y, p1x) # opcional
- tabela_minimos_quadrados(x, y) # opcional
"""
from codigos.ajustecurvas import (
regressaolinear,
regressaolinear_intervalo,
minquadrados,
minquadrados_ordem_n,
dados as dados_ajustes,
)
"""
Ajustes de Curvas - Parte 3
Funções:
- regressaolinear(x, y) # opcional!
- regressaolinear_intervalo(x, y) # opcional!
- minquadrados(x, y)
- minquadrados_ordem_n_manual(x, y, ordem=1, tabela=True, grafico=True)
- calcula_chi_e_r2(x, y, b0, b1, n_params=2)
Funções Auxiliares:
- log_output(message, logfile='log_resultados.txt') # opcional
- dados() # especificamente (pode ser para Interpolações e Ajustes de Curvas)
- tabela_interpolador(x, y, p1x) # opcional
- tabela_minimos_quadrados(x, y) # opcional
"""
from codigos.integracoes import (
pedir_dados_integral,
trapezio_composta,
simpson_1_3_composta,
simpson_3_8_composta,
trapezio_tabela,
simpson_1_3_tabela,
simpson_3_8_tabela,
newton_cotes,
)
"""
Ajustes de Curvas - Parte 3
Funções:
- regressaolinear(x, y) # opcional!
- regressaolinear_intervalo(x, y) # opcional!
- minquadrados(x, y)
- minquadrados_ordem_n_manual(x, y, ordem=1, tabela=True, grafico=True)
- calcula_chi_e_r2(x, y, b0, b1, n_params=2)
Funções Auxiliares:
- log_output(message, logfile='log_resultados.txt') # opcional
- dados() # especificamente (pode ser para Interpolações e Ajustes de Curvas)
- tabela_interpolador(x, y, p1x) # opcional
- tabela_minimos_quadrados(x, y) # opcional
"""
from codigos.edos import (
resolver_edo_2ordem,
executar_runge_kutta,
executar_sistema_edos,
)
"""
Ajustes de Curvas - Parte 3
Funções:
- regressaolinear(x, y) # opcional!
- regressaolinear_intervalo(x, y) # opcional!
- minquadrados(x, y)
- minquadrados_ordem_n_manual(x, y, ordem=1, tabela=True, grafico=True)
- calcula_chi_e_r2(x, y, b0, b1, n_params=2)
Funções Auxiliares:
- log_output(message, logfile='log_resultados.txt') # opcional
- dados() # especificamente (pode ser para Interpolações e Ajustes de Curvas)
- tabela_interpolador(x, y, p1x) # opcional
- tabela_minimos_quadrados(x, y) # opcional
"""
from codigos.raizes import (
plotar_funcao,
bissecao,
newton,
secante,
pedir_dados_raizes,
)
if __name__ == '__main__':
menu_principal()
[documentos]
def main():
menu_principal()