-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Abner Lourenço edited this page Sep 13, 2025
·
1 revision
Bem-vindo à documentação completa da biblioteca Reductio - uma poderosa biblioteca Java para análise, simplificação e manipulação de expressões matemáticas com identificação automática de tipos de função.
A Reductio é uma biblioteca Java avançada que permite:
- Análise de Expressões: Converte expressões matemáticas em string para árvores sintáticas abstratas
- Simplificação Automática: Reduz expressões à sua forma mais simples
- Identificação de Funções: Detecta e classifica automaticamente tipos de função
- Análise Abrangente: Fornece propriedades matemáticas detalhadas para cada tipo de função
- API Type-Safe: Classes de função fortemente tipadas com métodos específicos
- Design Extensível: Fácil adição de novos tipos de função e operações
- Instalação - Como instalar e configurar a biblioteca
- Guia de Início Rápido - Primeiros passos com a Reductio
- Conceitos Básicos - Conceitos fundamentais da biblioteca
- Classe Parser - Análise de expressões matemáticas
- Classe Expr - Representação de expressões
- Classe Function - Identificação e análise de funções
-
Funções Polinomiais
-
Funções Lineares -
ax + b -
Funções Quadráticas -
ax² + bx + c -
Funções Cúbicas -
ax³ + bx² + cx + d
-
Funções Lineares -
-
Funções Exponenciais -
a * b^(cx + d) + e -
Funções Logarítmicas -
a * log_b(cx + d) + e -
Funções Trigonométricas -
a * trig(bx + c) + d
- Exemplos de Uso - Casos de uso práticos
- Tutoriais Avançados - Técnicas avançadas
- Casos de Estudo - Aplicações reais
- Guia de Solução de Problemas - Problemas comuns e soluções
- Perguntas Frequentes - Dúvidas mais comuns
- Guia de Contribuição - Como contribuir para o projeto
- Arquitetura da Biblioteca - Design interno e padrões utilizados
| Tipo | Padrão | Exemplo | Características |
|---|---|---|---|
| Linear | ax + b |
2x + 3 |
Inclinação, interceptos, monotonicidade |
| Quadrática | ax² + bx + c |
x^2 - 4x + 3 |
Vértice, discriminante, raízes, concavidade |
| Cúbica | ax³ + bx² + cx + d |
x^3 - 2x^2 + x + 1 |
Pontos críticos, pontos de inflexão |
| Exponencial | a * b^(cx + d) + e |
2^x, e^(2x+1)
|
Base, taxa de crescimento, assíntotas |
| Logarítmica | a * log_b(cx + d) + e |
ln(x), log(2x+1)
|
Base, restrições de domínio, assíntotas |
| Trigonométrica | a * trig(bx + c) + d |
sin(x), 2*cos(3x+1)
|
Período, amplitude, deslocamento de fase |
- ✅ Análise Sintática: Conversão de strings em árvores de expressão
- ✅ Simplificação: Redução automática de expressões
- ✅ Avaliação: Cálculo de valores numéricos
- ✅ Identificação: Reconhecimento automático de tipos de função
- ✅ Propriedades: Cálculo de características matemáticas específicas
- ✅ Extensibilidade: Arquitetura para novos tipos de função
import com.reductio.Parser;
import com.reductio.Expr;
import com.reductio.funcoes.Function;
import com.reductio.funcoes.polinomial.Quadrada;
// Analisar uma expressão matemática
Expr expr = Parser.parse("x^2 - 4x + 3");
// Simplificar a expressão
Expr simplified = expr.simplify();
// Identificar automaticamente o tipo de função
Function function = Function.identify(simplified, "x");
if (function instanceof Quadrada) {
Quadrada quadratic = (Quadrada) function;
// Obter propriedades matemáticas
System.out.println("Tipo: " + quadratic.getType());
System.out.println("Discriminante: " + quadratic.getDiscriminante());
System.out.println("Vértice: " + Arrays.toString(quadratic.getVertice()));
System.out.println("Raízes: " + Arrays.toString(quadratic.encontrarRaizes()));
}- Versão Atual: 1.0.0
- Status: Estável
- Licença: MIT
- Linguagem: Java 11+
- Testes: ✅ Passando
- Cobertura: Em desenvolvimento
Esta documentação está em constante evolução. Contribuições são bem-vindas!