8 n, X5 k" d' e/ J" ?! Z; @在最开始引用一下我之前在挑战杯答辩上的回答吧,这个挑战杯项目实际上是一个云端求解量子力学问题的项目。是的,我就这么直白的拿着数学建模的东西去水挑战杯′∀` 7 d n! x# Z3 O+ g
教授:我看你这个工作是基于python的,我记得在建模这一块还有一个软件MATLAB比较常用,你为什么没有使用MATLAB呢?3 B4 V1 Y! m0 a7 @7 a) e% u. a3 P
我:其实在行业认可度上,MATLAB被业内公认是一个非常优秀的建模软件,但是我们的项目使用过程中,需要涉及到云端的计算过程,使用MATLAB将会带来一系列的授权问题(我校并无MATLAB授权),而且我这个属于公益项目,前期并无资金投入,无法购买昂贵的正版授权。因此,我们采用了和MATLAB功能相似又完全免费的python语言,配合其优秀的第三方库的适配性,完成了这个工作。
可以看出,我在这个回答中避免了一些坑,我并没有直说MATLAB跟python哪个更好(我相信他们有很多理由怼我说MATLAB更好,既然他们问了这个问题),并成功的将话题转移到了授权的问题上,并希望这帮大佬能帮忙跟学校争取到MATLAB正版授权。8 J. v3 t9 l! U) B4 ~* z
~~~~~~~~~~~~~~~~~~~~~~~~~~~~6 h D* S' K+ ^( G4 G5 D 下面开始正文部分1.python还是MATLAB* e6 z4 n0 @& x% O
只有小孩子才做选择,我选择全要,开个玩笑。, ], c9 ? l& P; C& P% e4 y
你可能在互联网上搜索python和MATLAB会有人给你分析两者的优缺点,我这里不打算阐述两者的优缺点。我觉得对于数学建模而言,两者都应该学习,这是因为关键时候两者可以及时互补。他们虽然功能相似,但是针对某一个问题,你可能只能在互联网上搜索到一个解决方案,如果你选择在一棵树上吊死,很可能你需要自己研究整个代码并且将其移植,这在有限的数模比赛时间内是极其不可取的。/ L$ i" l! N7 U
举个例子,不算数学建模领域的,去年就在我师兄一篇论文的修改意见是对其中的声音分析做一定修正(为什么找到我了呢,因为我们课题组是物理课题组,大部分人对于编程不太敏感,我又正好拿了几个数学建模的奖),当时在Google只搜到了相关的matlab程序,完全搜不到python程序(我当时主要就是用python,所以肯定优先用python的程序,可惜搜不到(=′口`=))于是只好拿MATLAB源程序过来修改了一下跑了一遍数据完成了工作。从此以后我电脑里的matlab从来都是最新版本。 / r# y; Q2 p9 t8 m0 k
2.学习MATLAB和python的先后顺序 * W! Q5 b/ H k$ X9 v7 T* P% R以一个过来人的角度来说,我建议你先学MATLAB,这是因为它的中文教程相对于python要多很多,这对于新手是有利的。等到熟练操作MATLAB以后,只需要简单看一看python的基本操作,就能够上手像numpy这一类的科学计算的库,因为它们的操作方法是模仿MATLAB的。4 A! {, ]! b+ a/ X; [ 3.python的推荐配置 $ u! V5 _2 s# I6 L& z, s我最早学习的全是基于python的非线性物理计算,这是学校开设的本科课程。当时推荐的python发行版是Anaconda,它的好处就是预装了大量的你能用的上的库而且自带大量的编译器的支持,无需手动配置,一键启动。4 B) a2 ], X+ p( I: n8 O6 \. p 如上图就是anaconda的启动界面,其中默认提供8种编辑器,其中不乏有VS code这种大牌编辑器,你可以一个一个尝试直到找到自己喜欢的。 * ~, j, u4 `8 p @( d1 g6 [上图就是大名鼎鼎的VS code,来自微软,提供大量的扩展支持,只有你想不到没有他办不到,配合第三方扩展,你甚至可以用代码编辑器来听音乐和看漫画,详情见 ' S1 _6 e) d4 R
@GitHub Daily , t1 M n# Z H* U3 r5 n) | - u& n: z6 w2 M9 [* Z 的文章 , Z4 A D# v% {7 FGitHub Daily:装上这几个 VSCode 插件后,上班划水摸鱼不是梦zhuanlan.zhihu.com如果你不喜欢这种类型的编辑器,还有提供matlab类交互支持的编辑器——spyder,题主可自行体验。 . C* k4 x, j0 f" v( a& f4.最后一点建议; T* a( }4 n% z% k+ |4 b
编程语言说到底只是零件,好的零件的确可以造出好的产品,但是设计师的设计更为重要,与其纠结语言,不如多看看算法,毕竟,算法是支撑一个建模的核心,你程序写的再好看评委也是看不到的。 ( O: {1 S/ h0 K 8 `$ g5 c7 }6 D% d/ v0 _1 {3 L4 D3 m发布于 2019-03-28 7 W) d& U2 f8 a; Q% s$ A' `7 i+ y- W9 h
+ Z0 i. J+ H9 ~3 X
8 n" t2 |, V& [0 j+ a* w7 ? J- r6 i5 n/ a. F' t U1 v! K' f, v: T% b& k) k+ Z u
@realOlderDriver + T" L5 V8 \0 B( k7 Q6 D& g1 H/ `
; L' ~: _0 H& P) L( q) b: ^: ?: R
; L' f @# E4 }' @4 e' \