【问题标题】:What is symbolic computation?什么是符号计算?
【发布时间】:2013-04-30 00:41:38
【问题描述】:

根据wiki

在数学和计算机科学中,计算机代数,也称为 符号计算或代数计算是一个科学领域 指算法和软件的研究和开发 用于操作数学表达式和其他数学 对象

符号计算是否专注于符号操作和计算? Lisp 程序以 AST 的形式编写,原子作为叶子。 Lisp 被称为符号计算语言。是不是表示在符号计算中是:

  • 关于符号的一切(符号是 Lisp 中的原子或非原子表达式)
  • 每个符号都有一个语义
  • 符号计算是一种范式,它使程序员专注于处理符号和语义(语义可以是执行某些操作的原子或表达式)以及符号之间的关系,而不是认为数据结构和代码是两个分离的实体。
  • 程序设计是基于符号组合/操作和语义分配的语言设计。

根据this question,与符号计算相反的是数值计算。这两者之间的主要区别是什么?当我使用 Octave(我正在研究它)时,我必须经常使用数字,并且必须多次猜测这些神奇数字的含义。这是数值计算的重点吗?

【问题讨论】:

标签: symbolic-math


【解决方案1】:

符号计算是一种强调术语重写而不是评估(e-value-ation,提取值)的计算。 符号(也称为表达式)是可重写的术语,表示可重写性的丧失或结束。在某种程度上,符号更抽象,价值更具体。

3/9 的答案是什么?一个象征性的答案将是(代表)1/3。一个有价值的答案是0.333333333,不管你关心多少小数。请注意这里有精度损失(因此可重写性),0.333333333 * 3 与应有的 1 不同。

计算器(评估机器)可能会在尝试评估(2^(74,207,281) − 1)/(2^(74,207,281) − 1) 时窒息,即使答案只是1。只需重写就足够了,无需在这里进行评估。

当然也有相反的情况,方程的术语重写非常棘手,只能通过数值方法来近似回答。

【讨论】:

    【解决方案2】:

    “符号计算”是带有符号表达式的计算。

    符号表达式示例:

    • 一个数学公式。例如一个积分表达式
    • 一个逻辑定理
    • 计划情况

    对于后者:

    • 道路从abbdce, ef, bf, ...李>
    • 包裹 p1ap2dp3 在 f
    • 一辆卡车 t1d
    • 一个目标

    现在的任务是制定一个很好的计划,以提取所有包裹并达到给定的目标。

    1. d领取包裹p2
    2. 将卡车 t1d 移动到 b
    3. 将卡车 t1b 移动到 a
    4. a领取包裹p1
    5. ...

    在上述示例中,符号代表地点和事物(卡车、包裹)。符号表达式描述一种情况,计划生成器将返回一系列动作 - 再次描述为符号表达式。

    【讨论】:

    • 谢谢。所以就像我想的那样,一切都以操纵符号为中心。在这个范式中,偶数应该被认为是符号:终结符号在其出现时具有字面意义(符号“1”表示 1),非终结符号由其他终结符号和非终结符号组成以形成抽象(每个抽象被表示为一个单纯的符号)。相比之下,数值计算以数字及其在特定上下文中的含义为中心。现代编程语言是符号计算的一种形式吗?
    【解决方案3】:

    符号计算正在处理非数值,这意味着符号就像在代数中一样。有一个适用于多个平台的功能强大的免费符号计算程序maxima,它可以让您使用符号简化或扩展算术表达式,对它们进行积分或微分等。试试吧 - 它既有趣又实用!

    【讨论】:

      【解决方案4】:

      符号计算总是精确的(无限精度)。在数值计算中,精度是有限的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 2022-01-16
        • 1970-01-01
        • 2017-11-01
        • 2012-12-27
        相关资源
        最近更新 更多