15

我需要在 C++ 中进行分析集成。例如,我应该整合这样的表达式:exp[I(x-y)],I是一个虚数。

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

我尝试了GiNaC,但它只能集成多项式。我也试过SymbolicC++。它可以集成sine,cosineexp(x)和等功能ln(x),但功能不是很强大。比如不能积分x*ln(x),用 Mathematica 很容易得到,或者分部分积分。

是否有任何其他工具或库能够进行符号计算,如 C++ 中的分析集成?

4

3 回答 3

6

如果您需要进行符号集成,那么您可能不会比在mathematica 或maxima 中运行它更快——它们已经用(类似于)C++ 编写。因此,除非你的方程有一个非常具体的公式,你可以利用 Mathematica 或 Maxima 无法利用的方式,那么你可能不走运——至少你不会从现成的图书馆。

如果您需要进行数值求解,您可能有理由编写自己的代码来提高速度。(我知道我这样做是为了生成 PDE 的数值解)。

于 2012-07-05T02:30:26.627 回答
4

几天前,我正在寻找一个符号数学库,比如用于 C++ 的 SymPy,因为与 Python 或大多数其他编程语言相比,它的速度让我眼花缭乱。

我发现了Vienna Math Library,这是一个非常棒的库,具有非常现代的语法,并且据我所知,SymPy 的功能。该库还具有可用于解决您的问题的完整功能。

它足以解决 3 自由度铰接机械手的 IK(逆运动学)问题。

于 2020-05-05T19:33:42.593 回答
3

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

如果我没记错的话,SymEngine 还不支持集成;然而,食人鱼确实如此。Piranha的文档目前有些有限,正在开发中,但您可以在此处查看集成功能。请注意,第二个链接使用 Python 包装器 Piranha 的语法。但是,Piranha“是一个计算机代数库,用于对稀疏多元多项式和其他密切相关的符号对象(例如泊松级数)进行符号操作”,因此我认为它不能集成您可能感兴趣的特定函数.

虽然它不是 C++,但您可能也对 SymPy for Python 感兴趣,它可以执行您可能感兴趣的一些更复杂的符号集成。 SymPy 集成的文档在这里

于 2017-07-20T19:57:20.753 回答