Skip to content
Abner Lourenço edited this page Sep 13, 2025 · 1 revision

Wiki da Biblioteca Reductio

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.

🚀 Visão Geral

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

📚 Navegação da Wiki

Primeiros Passos

Documentação da API

Tipos de Função

Exemplos Avançados

Recursos Adicionais

📊 Recursos da Biblioteca

Tipos de Função Suportados

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

Funcionalidades Principais

  • 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

🎯 Exemplo Rápido

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()));
}

🔗 Links Úteis

📈 Status do Projeto

  • 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!