最近很多人来问我这个问题,我觉得很有代表性,这或许是初入数学建模的同学将会面对的第一个问题:“数学建模语言这么多,我到底选哪个?”
数学建模需要哪些语言?MATLAB
Python
SPSS
Lingo
C++
这是我这段时间集训所用到的工具或者是编程语言。
用一个语言实实在在的完成一个任务,是熟悉其特性的最佳方式。因此,这段时间,我对这些语言的特点也越发了解,接下来就谈谈它们在我心中的优劣。
它们各自有什么优劣?MATLAB在一些问题上有GUI可视化界面,可以非常快速出结果。而且作图非常方便。
最重要的是,MATLAB有非常多的资料可以参考,大部分的数学建模教材都是使用MATLAB作为教学语言。而且网络上也有非常多的参考资料可以查看。MATLAB也提供了详细的参考文档。因此,MATLAB非常好上手。
但是MATLAB的缺点也很明显。第一个就是臃肿,一个MATLAB将近30GB,里面有一堆这辈子都用不上的功能,而且MATLAB使用时对内存以及CPU压力较大,用起来觉得非常累赘。第二个就是丑,用过vscode写python的同学可能一下子很难适应MATLAB的操作界面:没有自动补全、缺少代码高亮……而且MATLAB的语法也不优雅,在结尾写end的操作让我梦回初中学Pascal的时光。
Python是我的主力语言,我几乎想不到Python有什么不好的地方:非常多的库让你用一句话就可以实现很多复杂的算法、简洁的语法配合高效的IDE可以快速编码、网络上也有大量的参考资料可供学习……
如果要说有什么不好,那就是Python的入门相对困难。前几天一个点让我非常自闭,同样的数据在Python中有三种以上不同的存储方式,这就导致你需要在各种类型之间转化,学习成本较高。
SPSS和Lingo可以一起说,他们不能算一门语言,想要参加数学建模单单掌握它们是完全不够的。但是它们却在各自领域发挥了不可替代的作用。SPSS可以理解为高级版的Excel,可以实现一些简单的PCA和聚类,而且直观的操作方式让任何人都能迅速上手。Lingo则专注解决优化问题,相比于MATLAB,可以解决复杂的优化问题。
至于C++,如果不是为了写DP,我也不会用它。
那我怎么选?有的时候不做选择比做出错误的选择还要糟糕
对于新手而言,就选MATLAB
如果你会C语言或其他高级语言,就选Python
这是我使用这两种语言一年时间得出的结论,仅供参考。
但这并不表示如果你掌握其中一门,就可以不学另外一门了
作为一个优秀的编程手,应该要求自己覆盖尽可能多的技术,而不是满足当下。
更重要的事情学编程最重要的不是学会一门语言,而是学会如何读懂别人的code,学习优秀的编程习惯,学会debug程序(调试程序),最好的教程就是博客知乎等上的一些优秀源码和讲解,根据自己应用需要进行场景迁移。学习一定要多动手,多动手编程序,调试程序,多看论文,在这个过程中不断反馈和校验。
学数学建模最重要的也不是学会一门语言,而是算法与思想。编程语言说到底只是零件,好的零件的确可以造出好的产品,但是设计师的设计更为重要,与其纠结语言,不如多看看算法,毕竟,算法是支撑一个建模的核心,你程序写的再好看评委也是看不到的。
预览时标签不可点收录于话题#个上一篇下一篇