Java: ¿Existe una herramienta disponible que me permita ingresar, almacenar y evaluar fórmulas matemáticas?

StackOverflow https://stackoverflow.com/questions/402833

  •  03-07-2019
  •  | 
  •  

Pregunta

Incluso algo muy rudimentario está bien. Al igual que ingresar y evaluar algo como x + 1, donde x es una variable que debo especificar.

Estaba pensando en escribir mi propio uso de cadenas para cada fórmula, expresiones regulares para analizarlas, etc., pero supongamos que mi objetivo es ser lo más perezoso que pueda, y eso si hay otra opción (especialmente una formal), prefiero usar eso en lugar de eso, primero.

¿Hay algo por ahí que haga algo como esto?

¿Fue útil?

Solución

Puede pensar en utilizar scripting desde Java 6. El JDK de referencia viene con una implementación de JavaScript, y también puede conectarse en otros idiomas.

Otros consejos

Conozco las siguientes bibliotecas:

He usado JEP con éxito hace un par de años y todavía parece ser activamente desarrollado Creo que tenían una licencia más permisiva en aquellos días, pero probablemente sea más barato que codificarla tú mismo (dependiendo de tus necesidades y habilidades exactas).

He creado una biblioteca java para hacer exactamente esto como un ejemplo de aprendizaje para Lex / YACC, para mí. Se incorporó a un proyecto más grande, donde parece funcionar bien. Si volviera a comenzar el proyecto más grande, seguiría los consejos anteriores y utilizaría el motor de secuencias de comandos Java.

Puedes probar LibFormula , una biblioteca de depuración de fórmulas basada en en el estándar OpenFocula de OpenDocument.

OpenFormula se escribió para aplicaciones de hoja de cálculo y utiliza una sintaxis cercana a las fórmulas de Excel. Puede encontrar más información en Pentaho-Wiki

Muestra:

=[x]+1

puede consultar exp4j que publiqué bajo la Licencia Apache 2.0 . implementa el algoritmo de derivación de dijkstra, y funciona bien con funciones multivariables como f(x,foo)=log(foo^(x^-1))

Algunos pueden estar interesados ??en una nueva herramienta llamada formula4j .

Es comercial, por lo que no es para todos.

¿Quizás MathML ?

  

MathML es una especificación de bajo nivel para describir las matemáticas como una base para la comunicación máquina a máquina que proporciona una base muy necesaria para la inclusión de expresiones matemáticas en páginas web. También es importante en la publicación de flujos de trabajo para la ciencia y la tecnología y donde sea que las matemáticas tengan que ser manejadas por el software. La nueva versión trae, por ejemplo, mejoras para el acceso a las matemáticas y para fórmulas en idiomas escritos de derecha a izquierda. El marcado básico sigue siendo el mismo, ya que la comunidad tiene siete años de experiencia con él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top