用C符号计算++(symbolic computation in C++)

2019-07-30 06:24发布

我需要做的分析整合在C ++。 例如,我要结合这样的表达式: exp[I(xy)]I是虚数。

我怎样才能做到这一点在C ++?

我试图GiNaC但它可以只合并多项式。 我也试过SymbolicC ++ 。 它可以整合像功能sinecosineexp(x)ln(x) ,但它是不是很厉害。 例如,它不能整合x*ln(x)其可通过使用数学的或由部分积分而容易地获得。

是否有任何其他工具或能够做符号计算像在C ++分析集成库?

Answer 1:

如果你需要做象征性的整合,那么你很可能不会得到任何东西比数学或最大运行速度更快 - 他们已经写在(像)C ++。 所以,除非你的公式有一个非常具体的公式,你可以在一个方式是利用数学或千里马不能那么你很可能出于运气 - 而且最起码你不会得到那种定制操纵从关闭的,现成的库。

您可以编写自己的代码,如果你需要做的数值解得到提升速度是合理的。 (我知道我为产生数值解偏微分方程)。



Answer 2:

其他C ++库我知道做符号计算的是

  • SymEngine( https://github.com/symengine/symengine )
  • 食人鱼( https://github.com/bluescarni/piranha )

如果我没有记错的话,SymEngine还不支持整合; 然而,食人鱼一样。 该文件对食人鱼是目前比较有限的和正在开发中,但可以看到的整合功能在这里 。 需要注意的是第二个链接使用语法的Python包装食人鱼。 然而,食人鱼“是稀疏多元多项式等密切相关的标志性物体(如泊松系列)的符号操作的计算机代数库”,所以我不认为它可以整合的具体功能中,你可能有兴趣。

虽然它不是C ++,你也可能有兴趣在SymPy对于Python,它可以执行一些更复杂的符号积分,你可能有兴趣在的。对于SymPy的集成文档是在这里 。



文章来源: symbolic computation in C++