符号与数字数学 - 表现

时间:2017-07-14 12:08:58

标签: algorithm performance numerical-methods symbolic-math numerical-computing

与数值计算相比,符号数学计算(尤其是解决非线性多项式系统)会导致巨大的性能(计算速度)劣势吗?有没有关于此的基准/数据?

找到相关问题:https://scicomp.stackexchange.com/questions/21754/symbolic-computation-vs-numerical-computation

另一个:Computational Efficiency of Forward Mode Automatic vs Numeric vs Symbolic Differentiation

2 个答案:

答案 0 :(得分:3)

这不是问题的直接答案,而是建议的课程更正。

虽然可以用纯数字方式或纯符号方式评估数学表达式,但也可以使用混合方法。

这被称为Symbolic-numeric computation

Maple是一个具备此功能的软件包 注意:我从未使用过Maple,所以我无法添加更多。

正在搜索包

我发现通过搜索与符号数字计算相结合的包名称来搜索使用符号数值计算的数学包时,我会得到更好的结果,例如

wolfram symbolic-numeric computation

与神经网络相关的具体示例

在神经网络的世界中,必须能够计算导数,但是如果在计算之前可以简化导数,那么计算成本就会降低。由于简化导数是一次性动作,而计算成本发生数千到数百万次,所以简化是象征性的,然后以数字方式完成计算。 Theano是一个专门用于神经网络的软件包。

答案 1 :(得分:3)

我是回答你在问题中提到的Scicomp问题的人。我个人不知道为比较多项式方程组的符号与数值解的运行时性能而进行的任何经验指标。

然而,对于解决问题的大多数方面而言,象征性解决方案应该具有更多的开销,因为诸如方程式中的术语操纵符号,搜索如何简化/重新排列方程式以使它们更容易解决,搜索已知的封闭形式解决方案等。符号解算器的一个主要问题是您可能没有可以找到和使用的封闭形式解决方案,因此以数字方式解决它必须以这两种方式发生。

我可以看到符号求解器在运行时方面优于数值解的唯一方法是符号求解器能够快速地将您的问题识别为具有已知解析解的问题,或者如果它最终在数值求解器时到达解决方案从来没有(也就是它分歧)。

鉴于您可以找到一个收敛的数值解算器,我认为数值情况通常会更有效率,因为在改进解决方案方面取得进展的开销要小得多。既然你提到了求解多项式方程组的系统,我怀疑还有一些针对你的问题类型的定制算法可能优于典型的非线性方程求解方案。