Esta es una gran tarea. La parte clave del problema es construir un árbol de sintaxis abstracta para la ecuación. Esto utiliza una estructura de árbol donde cada nodo es un operador, número o variable. Una vez que haya construido dicho árbol, puede aplicar varias reglas de álgebra para llegar a la respuesta.
Hay varios niveles de dificultad en la tarea. Lo más fácil serían los problemas de nivel escolar inferior cuando todas las ecuaciones aparecen en una sola línea. Algo como lo que es
2 \ veces 3 – 4?
Allí puede tomar la salida de un programa de texto OCR y alimentarlo a un analizador. Cuando permite subíndices y superíndices, las cosas se vuelven más difíciles, ya que necesita descubrir la disposición 2D de los símbolos. Agregar raíces y fracciones lo hace mucho más complicado.
- ¿Cómo cambian las raíces de ‘x ^ 2 + bx + c’ cuando b se mantiene constante y c cambia?
- Si dejo caer una pelota que pesa 0.5 kg y la dejo caer en un pozo de 126.5 metros, ¿qué ecuación debo usar?
- ¿Cuál es la forma más rápida de resolver un sistema de ecuaciones?
- ¿Por qué la ecuación de bernouli no es aplicable al cierre de un grifo (grifo de agua)?
- ¿Ha disminuido el valor que deriva de Facebook con el tiempo?
Suponiendo que logra reconocer la entrada, hay muchas opciones. Existen muchos sistemas y bibliotecas de álgebra computacional diferentes que pueden hacer álgebra. Algunos le permiten vincular otros programas a ellos.
He trabajado en una biblioteca de análisis / evaluación matemática Jep (Java Expression Parser) que puede hacer álgebra limitada. Hay un Jep 2.4.1 de código abierto y versiones comerciales Jep 3.4 disponibles.
Vale la pena mirar el photomath https://photomath.net/en/faq/ y https://photomath.net/en/examples para ver el alcance de lo que puede hacer. Por ejemplo, no puede hacer frente a la escritura a mano y se limita principalmente a las matemáticas de la escuela intermedia.