符号计算与数值计算

计算科学 符号计算
2021-12-18 17:41:45

我很好奇符号计算的当前状态以及未来前景。以下是我想提出的一些问题:

  1. 符号计算的当前前景如何?
  2. 它会在不久的将来取代数值计算(甚至有可能)吗?
  3. 符号计算能胜过数值计算吗?
  4. 符号计算比数值计算有什么优势,反之亦然?
  5. 符号计算是否用于任何重要的计算项目(关于规模和重要性)?
2个回答

我想我不能回答所有这些,但我可以根据我所看到的给你一些想法。

我认为符号计算是一个很棒的工具,但它显然对具有分析解决方案和形式的问题最有用。然而,并不是每个问题都以这种方式真正体现出来。所以这就是数值计算可能会被证明是一个更好的选择的地方。

我也不确定您将什么定义为优于数值计算。但是符号算术应该比数字慢,所以它在效率方面并不优于。但是,当您将值替换为符号结果而不是数字结果时,它可能会更准确。

在使用符号数学方面,我们在工作中使用它(我从事导弹算法、模拟、机器学习等工作)。我们通常使用它来预先计算一些密集的代数量,例如 4x4 矩阵的特征向量和特征值,并直接对结果进行编码以加快计算速度(这有助于我们的代码在嵌入式系统上运行)。我们经常用它来做这类事情。但在嵌入式代码之外,我们并没有太多使用它。

在回答太多之前,我想指出一个非常重要的问题,这个问题听起来应该涉及到:数字计算没有符号部分就毫无意义。

除非它是一个非常非常简单的问题,否则您不能只是将您的问题转储到数值求解器上并让它突飞猛进(即便如此,有人花了很多时间在黑板上设计 CPU 中将两个数字相加的部分)。通常,你必须尽可能清楚地提出你的问题,经常使用铅笔,然后让它发酵。你能简化它吗?什么是重要的?有什么会影响准确性的吗?它甚至摆对了吗?如果这是为了工作,值得你花时间吗?有人做过吗?你能做得更好吗?

然后你选择一种方法来解决它。也许你第一次去你会使用一个固定的算法。也许它还有一些不足之处,你开始专攻。也许你的问题在稍微有点尴尬的情况下效果更好,比如约束,然后你必须扩展你的罐头解决方案。

通常,几乎所有的艰苦工作都是由一个拿着铅笔、纸和键盘的人完成的。相比之下,计算机的劳动实际上使它成为现实是值得的。如果不是,那么要么计算非常成功,要么工作很糟糕,要么真的没有太多空间可以做很多象征性的工作(比如机器学习)。

你可能会认为随着计算机的进步,这变得不那么真实了,但我不同意。随着计算机变得越来越强大,我们向它们抛出了更难的问题,这些更难的问题甚至需要更多的人工努力才能尝试解决。这种手动工作是编程的混合,是的,符号操作。

回答:

  1. 我认为没有人怀疑符号计算的前景,除非人们正在寻找非线性问题的精确解决方案。如今,我不会太尊重一个试图象征性地解决钟摆运动的人,除非是为了学校。
  2. 不,符号计算不能代替数字。想想看,像让图片更亮这样简单的事情实际上是一个数字计算。即使它只是将数百万个数字乘以一个常数,也没有人能做到。
  3. 是的。不过要小心,仅仅因为你有一个精确的解决方案并不意味着它更好。有时它们太长或不准确(就在前几天,我用数字替换了精确积分并获得了更好的准确性)。
  4. 这个真的没法回答。太不一样了,又太纠结了。
  5. 是的,我会说任何有价值的东西。阅读几乎所有关于任何计算的论文。