我在秋季上一门数值分析课,主要是应用/编程倾向。我有一个马马虎虎的编程背景(上过几门课并在实习中从事过 Java 编程),但我想在开始这门课之前提高我的技能。所以我的问题是,哪些编程技能对数值分析有用?
数据结构、OOP、算法很重要吗?你有什么资源可以推荐我在上课前翻阅吗?
我在秋季上一门数值分析课,主要是应用/编程倾向。我有一个马马虎虎的编程背景(上过几门课并在实习中从事过 Java 编程),但我想在开始这门课之前提高我的技能。所以我的问题是,哪些编程技能对数值分析有用?
数据结构、OOP、算法很重要吗?你有什么资源可以推荐我在上课前翻阅吗?
算法和数据结构。没有那么多面向对象。在我上大学的数值分析课程中,我们用 python 和 Matlab 做了很多算法编程。
如果您想进行数值分析快速原型设计,最好使用 numpy 和/或 scipy。python 2.7 或版本 3 的 python 教程长约 120 页,可从 docs.python.org 获得,一天之内很容易上手。numpy 和 scipy 需要一些学习。
使用 OOP 的收益可能很大,但需要大量的技能。如果我使用 C++,我会使用 Brian H. Flowers 的书,它可以让你快速介绍应用工程,前 5 章将让你能够编写好的 C++ OOP 类,大约需要 8 个小时的工作,包括编写测试脚本。现在的问题是许多 OOP 包都在标准模板库中。许多人最终重新发明轮子,因为他们不知道什么是可用的。这就是为什么你最好只使用 Python numpy 或 scipy 或者如上所述,只使用 Matlab,因为大多数东西都是预定义的。两种语言都适用于快速原型设计,但如果您想做一些非常复杂的事情,例如生成有限元/有限差分网格,则需要访问 Dongarra 的 BLAS 库。