2012-08-15 23 views
1

我正在秋季进行一个数值分析课,并且大量使用/编程。我有一个马马虎虎的程序设计背景(参加过几门课程,并且在实习中从事Java编程),但是我想在开始这门课程之前先熟练掌握自己的技能。所以我的问题是,什么编程技巧对数值分析有用编程和数值分析

数据结构,OOP算法非常重要吗?在课程开始之前,我会推荐哪些资源?

+0

从理论上讲,“语言”不应该很重要。在实践中 - 看看你是否能够找出他们正在使用的语言,并且在*课程开始之前查看是否需要使用该语言。恕我直言... – paulsm4 2012-08-15 19:07:50

+0

这门课没有设定的语言,我正在考虑使用Java或C++。 – Emir 2012-08-15 19:25:37

+0

如果您选择Java或C++之间...选择Java!如果你已经熟悉Java(甚至相对表面上),那么你应该很乐意去参加你的课程。恕我直言... – paulsm4 2012-08-15 19:41:52

回答

1

算法和数据结构。没有太多的OOP。在我上大学的数值分析课程中,我们在python和Matlab中做了大量的算法编程。

1

如果你想做快速原型的数值分析,你最好使用numpy和/或scipy。 python 2.7或者version 3的python教程大约120页,可以从docs.python.org获得,并且很容易在一天内提取。 numpy和scipy需要一些学习。

使用面向对象的收益可能很大,但需要大量的精简。如果我使用的是C++,那么我会使用Brian H. Flowers这本书,它可以为您提供应用工程的快速入门知识,前5章将为您提供编写优秀的C++ OOP类的能力,包括编写测试脚本等大约8小时的工作。现在的问题是许多OOP包都在标准模板库中。许多人最终重新发明轮子,因为他们不知道可用的东西。这就是为什么你可能会更好地去Python的numpy或scipy或如上所述,只是使用Matlab,因为大多数东西都是预定义的。这两种语言都适合快速原型制作,但如果您想要完成诸如生成有限元/有限差分网格等相关事项,则需要到Dongarra的BLAS库。