Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Numerical Methods in Python / Cálculo Numérico em Python


English

A comprehensive suite of numerical methods implemented in pure Python for solving foundational applied mathematics and computational engineering problems.

The scripts are built for CLI interactivity and data visualization, allowing users to input mathematical functions f(x), integration boundaries, linear systems, and discrete datasets at runtime.

Key Features

  • Dynamic Input Parsing: Parse mathematical function strings at runtime (e.g., math.sin(x) + x**2 or exp(x)).
  • Symbolic Differentiation: Automated derivative computations via sympy for methods like Newton-Raphson and truncation error evaluations.
  • Data Visualization: Convergence plots, root locations, and regression curves rendered with matplotlib.
  • Performance Profiling: Execution time tracking and iteration counters across iterative solvers.

Technology Stack and Dependencies

  • Language: Python 3.x
  • Standard Library: math, time
  • External Dependencies: numpy, matplotlib, sympy

Project Structure and Implementations

1. Number Representation and Error Theory

  • Conversão Binario-Decimal.py: Radix base conversions.
  • Ponto flutuante.py: Floating-point representable domain analysis.
  • Truncamento.py: Lagrange remainder and truncation error evaluation via symbolic calculus.

2. Root-Finding Algorithms

Visual plotting of functions, computed roots, and runtime metrics included.

  • Método de Bisseção.py: Bisection method via successive interval bisection.
  • Metodo baseado em tangente - Método de Newton.py: Newton-Raphson method with automated symbolic differentiation.
  • Método baseado em secante.py: Secant method.

3. Linear Systems

  • Sistemas Lineares.py: Interactive solver suite:
    • Gaussian Elimination (Standard and Partial Pivoting).
    • LU Decomposition (Standard and Partial Pivoting).
  • Eliminação de gauss.py: Standalone modular elimination routine.

4. Interpolation and Curve Fitting

  • Polynomial Interpolation: Lagrange.py, Dispositivo pratico de lagrange.py, Metodo de Newton.py (Divided Differences), Gregory Newton.py.
  • Least Squares Method (LSM): Minimos quadrados.py (Linear regression with scatter and line plotting).
  • Goodness of Fit Analysis: Qualidade do ajuste.py (Coefficient of determination R^2, residual variance sigma^2, and residual distribution plots).

5. Numerical Integration

Interactive modules supporting both continuous string functions and discrete data tables.

  • Trapezoidal Rules: Método do Trapézio.py (Standard), Regra trapézio composta.py (Composite).
  • Simpson's 1/3 Rules: Método do terço de Simpson.py (Standard), Regra terço de Sympson Composta.py (Composite).
  • Simpson's 3/8 Rules: Método 3 oitavas de Sympson.py (Standard), Regra 3 oitavas de Sympson composta.py (Composite).

6. Ordinary Differential Equations (ODEs)

  • Método de Euler EDO.py: Initial value problem solver via Euler's method.
  • Método de Runge-Kutta.py: Integrated solver featuring RK2 and RK4 routines.
  • Error Analysis Modules: ERRO EDO.py, Erro Exata-Numerica EDO.py.

Setup and Execution

It is recommended to run the scripts within an isolated Python virtual environment (venv).

Step 1: Clone the Repository

git clone https://github.com/JoV1206/CalculoNumerico cd CalculoNumerico

Step 2: Create and Activate Virtual Environment

  • On Windows: python -m venv venv venv\Scripts\activate

  • On Linux / macOS: python3 -m venv venv source venv/bin/activate

Step 3: Install Dependencies

pip install numpy matplotlib sympy

Step 4: Run Scripts

Execute any script directly via the CLI: python "Minimos quadrados.py"

To deactivate the virtual environment when finished: deactivate

Author

João Vitor Almeida Teodoro
B.S. in Computer Engineering, Instituto Federal Fluminense (IFF).


Português

Este repositório contém uma coleção completa de algoritmos implementados 100% em Python para a resolução de problemas matemáticos utilizando métodos numéricos.

Os scripts foram desenvolvidos com foco na interatividade e visualização, oferecendo menus via linha de comando (CLI) que permitem ao usuário inserir funções matemáticas f(x), limites de integração, matrizes e conjuntos de pontos em tempo de execução.

Principais Funcionalidades

  • Entrada Dinâmica: Inserção de funções matemáticas em formato de texto (ex: math.sin(x) + x**2 ou exp(x)).
  • Derivação Simbólica: Uso da biblioteca sympy para calcular derivadas automaticamente em métodos como Newton-Raphson e no cálculo do erro de truncamento.
  • Visualização Gráfica: Geração de gráficos para visualização de raízes de funções e linhas de regressão (ajuste de curvas) utilizando matplotlib.
  • Análise de Desempenho: Medição do tempo de execução e contagem de iterações nos métodos de busca de raízes e equações diferenciais.

Tecnologias e Bibliotecas Utilizadas

  • Linguagem: Python 3.x
  • Bibliotecas Nativas: math, time
  • Bibliotecas Externas: numpy, matplotlib, sympy

Estrutura do Projeto e Métodos Implementados

1. Representação Numérica e Teoria dos Erros

  • Conversão Binario-Decimal.py: Conversão de bases numéricas.
  • Ponto flutuante.py: Cálculo do total de números representáveis em um sistema de ponto flutuante.
  • Truncamento.py: Avaliação do termo de erro de truncamento (Resto de Lagrange) com derivação simbólica.

2. Zeros de Funções (Raízes)

Módulos com plotagem gráfica da função e da raiz encontrada, além de tempo de execução.

  • Método de Bisseção.py: Busca de raízes por divisão sucessiva de intervalos.
  • Metodo baseado em tangente - Método de Newton.py: Método de Newton-Raphson com derivação automática.
  • Método baseado em secante.py: Método da Secante.

3. Resolução de Sistemas Lineares

  • Sistemas Lineares.py: Módulo interativo completo contendo:
    • Eliminação de Gauss (Simples e com Pivotação Parcial).
    • Decomposição LU (Simples e com Pivotação Parcial).
  • Eliminação de gauss.py: Implementação modular isolada.

4. Interpolação e Ajuste de Curvas

  • Interpolação: Lagrange.py, Dispositivo pratico de lagrange.py, Metodo de Newton.py (Diferenças Divididas), Gregory Newton.py.
  • Mínimos Quadrados (MMQ): Minimos quadrados.py (Ajuste linear com geração de diagrama de dispersão e reta de regressão).
  • Análise de Erro: Qualidade do ajuste.py (Cálculo do coeficiente de determinação R^2, variância residual sigma^2 e plotagem dos resíduos).

5. Integração Numérica

Módulos interativos que aceitam tanto a função expressa em texto quanto tabelas de pontos discretos.

  • Regras do Trapézio: Método do Trapézio.py (Simples), Regra trapézio composta.py (Composta).
  • Regras de Simpson (1/3): Método do terço de Simpson.py (Simples), Regra terço de Sympson Composta.py (Composta).
  • Regras de Simpson (3/8): Método 3 oitavas de Sympson.py (Simples), Regra 3 oitavas de Sympson composta.py (Composta).

6. Equações Diferenciais Ordinárias (EDOs)

  • Método de Euler EDO.py: Solução de EDOs via método de passo inicial.
  • Método de Runge-Kutta.py: Script integrado contendo RK2 e RK4.
  • Módulos de Verificação de Erro: ERRO EDO.py, Erro Exata-Numerica EDO.py.

Como Configurar e Executar

Para garantir que todas as bibliotecas externas funcionem corretamente sem interferir nos pacotes globais da sua máquina, é recomendado utilizar um ambiente virtual (venv).

Passo 1: Clonar o repositório

git clone https://github.com/JoV1206/CalculoNumerico cd CalculoNumerico

Passo 2: Criar e ativar o ambiente virtual

  • No Windows: python -m venv venv venv\Scripts\activate

  • No Linux / macOS: python3 -m venv venv source venv/bin/activate

Passo 3: Instalar as dependências

pip install numpy matplotlib sympy

Passo 4: Executar os algoritmos

Execute qualquer script diretamente pelo terminal: python "Minimos quadrados.py"

Para desativar o ambiente virtual quando terminar de usar: deactivate

Autor

João Vitor Almeida Teodoro
Estudante do Bacharelado em Engenharia de Computação no Instituto Federal Fluminense (IFF).

About

Algoritmos de Cálculo Numérico em Python. Resolva EDOs, integrais e sistemas lineares de forma interativa direto pelo terminal, com geração de gráficos e análise de erros.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages