Haskell 中缺乏有限元方法实现 - 有什么具体原因吗?

问题描述 投票:0回答:1

我很好奇为什么 Haskell 或任何函数式语言中似乎缺乏有限元方法 (FEM) 实现。鉴于 Haskell 的纯函数性质,我期望找到大量数值方法的实现。

我在 GitHub 和 Google Scholar 上快速搜索并没有找到很多相关参考文献。我遇到了一个关于 Haskell 在处理大型矩阵中的应用的 Quora 问题,但没有一个答案提到稀疏矩阵或 FEM。 Haskell 社区内是否有关于缺乏 FEM 实施的具体讨论或原因?我希望对此事有见解或参考。

问题!

haskell functional-programming numerical-methods finite-element-analysis
1个回答
0
投票

大部分原因是使用数值方法的人和对 Haskell 等语言感兴趣的人几乎完全脱节。

数字社区最关心的是他们的代码运行速度快,其次是对于非程序员工程师/科学家来说它“容易”使用(有一个相当有争议的简单概念,à la Matlab)。除此之外,还有一种态度是,编程语言的选择“并不重要,因为一切都是图灵完备的”,并且无论如何,代码不包含与代码分开的纸上进行的有趣的数学推导。换句话说,在他们的思维中,计算机涉及的数学的唯一方面是数字
因此,他们倾向于使用具有数字应用程序使用记录的语言,然后可能围绕该语言添加动态语言的接口(不是为了任何抽象目的,而是为了允许脚本编写)。

函数式编程有一个完全不同的重点,就是将数学概念带入代码中,但对调整数值性能不太感兴趣。 GHC 实际上可以生成相当快的可执行文件,对于复杂的逻辑尤其快速,但对于愚蠢的数字,它无法使用像 ICC 这样的编译器来处理,ICC 可以对数字进行各种矢量化等微优化。现在,完全可以通过用 C(或 Cuda)围绕优化的低级例程编写 Haskell 包装器来解决这个问题,但这对于 FP 人员来说并不是很有趣,而数值人员则看不到其中的任何意义,因为对他们来说 Haskell 只是一种奇怪的边缘语言。

我个人认为 Haskell 对于数字来说会是优秀,但是仅仅认为是不够的......我们实际上需要投入大量的工作来实现它。

© www.soinside.com 2019 - 2024. All rights reserved.