【问题标题】:Which language to compute a Frechet/Gateaux derivative of an abstract function?哪种语言可以计算抽象函数的 Frechet/Gateaux 导数?
【发布时间】:2012-11-10 02:29:31
【问题描述】:

我愿意计算一个不完全明确的函数的 Frechet/Gateaux 导数,我的问题是:最有效的方法是什么?您会推荐我使用哪种语言?

确切地说,我的问题是我有一个函数,比如说 F,它是多维函数对(即从 R^n 到 R^k)的乘积之和的欧几里得范数的平方。

AFAIK,如果我使用 Maple 或 Maxima,他们会要求我明确公式中涉及的函数,而我希望保持抽象。然后,我需要计算 Frechet/Gateaux 导数,以保持表达式简单。确实,当我按照标准方式进行时,我开始将欧几里得范数的平方发展为平方和,并且有很多索引。我的目标是做一个三阶整数余数的泰勒展开式,在我看来,这个表达式在人类看来是不可行的(公式超过一页 A4 纸)。

所以我更喜欢使用 Frechet/Gateaux 导数,这样我可以保留标量积而不是总和。

由于所涉及的函数与其导数有一些相似之处(由于存在指数),因此只需了解少量规则。所以我想我可能会自己做一个这样的专用计算机代数系统。

我开始学习 LISP,因为我读到它对我的问题很有效,但我现在有点迷茫,因为这种语言非常不同,我仍然习惯于用 C/Python 来思考/Perl...

这是另一个问题:您是否有一些关于如何制作符号计算代数系统的课程或文章的链接(最好是在 LISP 中)?欢迎提出任何建议。

非常感谢您的回答。

【问题讨论】:

  • 太棒了!它似乎回答了我的大部分问题!我在这里找到了全文Structure and Interpretation of Computer Programs。虽然它处理的是 Scheme 而不是 Lisp,但原则似乎描述得很好。
  • Peter Norvig 的“人工智能编程范式”http://www.norvig.com/paip.html 也有关于符号计算的章节。那本书使用的是 Common Lisp。
  • 我设法拿到了这本书!看起来不错 !感谢您提供这些出色的参考资料!
  • 您是否偶然使用“抽象”和“显式”来代替通常的“符号”与“数字”?
  • Lisp 编程类似于 C 和汇编语言。您可以将所有值(变量、数组元素、cons 单元格“car”和“cdr”插槽……)视为机器字。这些机器字通常要么直接保存一个值(如一个小整数),要么保存一个指向动态分配对象的指针。机器字使用几个位来指示类型(动态对象使用更多位来更详细地指示它)。这些值是按值传递的,就像在 C 中一样。与 C 不同,内存是 GC'd 并且本地(“词法”)变量在其块终止后仍然存在。

标签: lisp algebra maple derivative maxima


【解决方案1】:

我的建议是使用 Maxima。 Maxima 受到 Lisp 的启发,并在 Lisp 中实现,因此使用 Maxima 将为您节省大量时间和麻烦。如果 Lisp 适合你的问题,Maxima 更适合。

Maxima 将允许您在表达式中使用未定义的术语;不必定义所有术语。

向 Maxima 邮件列表 (maxima@math.utexas.edu) 发送消息以寻求具体建议。请详细说明您要完成的工作。

【讨论】:

    猜你喜欢
    • 2014-07-29
    • 2012-06-15
    • 2012-11-04
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多