Aplicación de escritorio para calcular derivadas de funciones matemáticas, con derivación simbólica exacta (SymPy), método numérico por cociente de Fermat (NumPy) y visualización de fórmulas en LaTeX renderizado mediante matplotlib. Construida con Flet 0.85 sobre Python.
- Derivación simbólica — obtiene la derivada exacta analítica usando SymPy, detecta la regla aplicada (potencia, producto, cadena, etc.) y muestra los pasos intermedios.
- Cociente de Fermat numérico — estima f′(x₀) por diferencia central y adelantada con h = 10⁻⁷, calcula el error absoluto contra el valor simbólico exacto.
- Render LaTeX — cada expresión matemática se convierte en imagen PNG con matplotlib
mathtext(sin LaTeX instalado) y se embebe en la UI como data URI. - Referencia lateral — panel fijo con la heurística de Fermat y tabla de derivadas inmediatas.
- Ejemplos preestablecidos — chips clicables para cargar funciones de muestra.
La derivada se calcula por dos vías independientes:
Simbólica (exacta)
f'(x) = lim_{Δx→0} [f(x + Δx) − f(x)] / Δx
SymPy resuelve este límite de forma algebraica y simplifica el resultado.
Numérica (Cociente de Fermat — diferencia central)
f'(x₀) ≈ [f(x₀ + h) − f(x₀ − h)] / (2h), h = 10⁻⁷
El error de truncamiento de la diferencia central es O(h²), frente a O(h) de la diferencia adelantada. Ambos valores se muestran para comparación.
- Python 3.10 o superior
- pip
git clone https://github.com/tu-usuario/calculadora-derivadas-flet.git
cd calculadora-derivadas-fletpython -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activatepip install -r requirements.txtpython calculadora_derivadas.py| Operación | Sintaxis aceptada | Ejemplo |
|---|---|---|
| Potencia | x**n o x^n |
x**3, x^3 |
| Multiplicación | * o implícita con coef. |
2*x, 2x |
| División | / |
sin(x)/x |
| Raíz cuadrada | sqrt(x) |
sqrt(x**2 + 1) |
| Logaritmo nat. | log(x) o ln(x) |
log(x**2 + 1) |
| Exponencial | exp(x) o e (constante) |
exp(-x**2) |
| Trigonométricas | sin, cos, tan, cot, ... |
sin(x**2) * cos(x) |
| Inversas trig. | asin, acos, atan, acot |
atan(x) + asin(x) |
| Hiperbólicas | sinh, cosh, tanh, ... |
sinh(x) * cosh(2*x) |
| Constantes | pi, e |
e**x * sin(pi*x) |
Entrada: sin(x**2) * exp(-x)
f(x) = sin(x²) · e^(−x)
f′(x) = 2x·cos(x²)·e^(−x) − sin(x²)·e^(−x)
= e^(−x)·(2x·cos(x²) − sin(x²))
Fermat numérico en x₀ = 1.0:
f′(1.0) ≈ 0.05872567 (diferencia central)
Exacto = 0.05872567
Error = 3.47e-13
| Componente | Versión mínima | Rol |
|---|---|---|
| Python | 3.10 | Lenguaje base |
| Flet | 0.85 | Framework UI de escritorio (Flutter/Python) |
| SymPy | 1.12 | Motor de derivación simbólica |
| NumPy | 1.24 | Evaluación numérica (diferencia central) |
| matplotlib | 3.7 | Render de fórmulas LaTeX → PNG embebido |
Nota: El render LaTeX usa
matplotlib.mathtext(usetex=False), por lo que no se requiere una instalación de LaTeX en el sistema.
⚠️ En desarrollo activo. La funcionalidad base está operativa. Se trabaja en:
- Desglose pedagógico completo con identificación de
uyu′por cada regla- Soporte de constantes simbólicas (
a,b,k,n)- Derivadas de orden
n- Tabla de referencia completa con 24 tipos
- Correcciones de compatibilidad con Flet 0.85 en Windows
calculadora-derivadas-flet/
├── calculadora_derivadas.py # Aplicación principal (UI + motor)
├── requirements.txt # Dependencias Python
├── .gitignore
└── README.md
Estructura de módulos planificada para versiones futuras:
src/ ├── engine/ │ ├── parser.py # Parseo y normalización de expresiones │ ├── symbolic.py # Derivación simbólica + detección de reglas │ └── numeric.py # Cociente de Fermat numérico ├── ui/ │ ├── components.py # Widgets reutilizables │ ├── sidebar.py # Panel lateral (Fermat + referencia) │ └── cards.py # Tarjetas de resultado ├── render/ │ └── latex.py # Render matplotlib → data URI PNG └── main.py
Wilbert Miguel Nahuatlato
Ingeniero Mecatrónico
GitHub: @Wilbert83
MIT © 2025 Wilbert Miguel Nahuatlato