【发布时间】:2012-04-03 03:18:17
【问题描述】:
我需要将大量方程式和数学公式存储到数据库中以进行模拟实验,我认为最好使用一些 mathML 或乳胶字符串...但是...
我提出了一些谷歌搜索请求,我很惊讶,因为我在 java 或 scala 中找不到任何 eval 库来将字符串乳胶或字符串 mathML 表达式转换为 java / scala 中的方程。 我不想用求解器 eval() 非常复杂的方程,我的目标是“真正”将简单的方程(多项式、线性)存储并转换为 scala/java 语言。
你有什么建议可以帮助我理解在用 java 或 scala 语言进行字符串评估后是否有其他解决方案可以轻松存储和解析方程或数学公式?
更新 1:
最后我找到了一些读取 et eval() 字符串公式的 java 库......如果你找到任何东西,我可以用你的建议完成这个列表。
无需解析 MathML/Latex :
-
https://github.com/darius/expr(开源,年轻的图书馆?)
-
http://jeval.sourceforge.net/(开源,非常旧的版本)
-
http://projects.congrace.de/exp4j/index.html(开源,2011 年最后一个版本,maven 存储库,由@fas 开发)
-
https://github.com/MarkyVasconcelos/Towel/wiki/Expression(开源,由@marcos-vasconcelos开发)
-
math expression parser 来自我的Symja project => 参见 stackOverflow 上的这篇文章 (Java Math(s) Parsing API)
借助 MathML 的实验性解析
-
jscl-meditor - depository on github Java 符号计算库和数学编辑器(开源,2011 年最后一个版本,很棒的前端和编辑器,mathML 输入/输出 (see tutorial here),很棒可能性:多项式系统求解、向量和矩阵、因式分解、导数、积分(有理函数)、布尔代数、简化、java 代码生成、几何代数)
-
JScience 看起来对引入的 MathML 有一些实验性的支持。 (参考这些帖子:Parsing mathml document using JScience 和 MathML and Java)
在这里上课: http://jscience.org/experimental/javadoc/org/w3c/dom/mathml/package-tree.html
谢谢
【问题讨论】:
-
等等。您想评估
LaTeX字符串吗?到一个号码? -
乳胶或其他规范化语言来存储/描述复杂的公式......为什么不呢,当您必须在模型中描述一些复杂的动力学时,这是一种流实践。我的问题是,我如何使用实际工具来做到这一点,因为我认为存储方程以便稍后在模型中注入是很有趣的。为什么 ?因为我们可以在多个复杂方程之间进行选择来仅描述一种真实机制,例如城市增长?
-
您应该意识到您的要求很多。这将有助于将您的公式限制为像多项式这样的特殊类。
-
是的@ziggystar,我不想解方程,如果我可以存储简单的函数,那就太好了。我更新了我的问题。
-
多项式可以很容易地用它们的系数向量来表示。多维线性函数可以用矩阵表示。你能更具体地说明你的要求吗?不仅仅是“简单”。
标签: java parsing scala math latex