大家好,我是北海。
刚开始参与数学建模的同学,往往会面临一个问题:做数模离不开编程,而matlab和python都挺适合做数模的,究竟是学matlab还是python?
本文就给大家分析一下matlab和python的特点,以及参加数学建模竞赛时如何选择。
先说结论:都学。先学matlab,有余力的情况下再学python。
1.matlab和python各自特点
matlab是收费软件,强大的功能带来高效
matlab可不便宜,动辄就几千几万。
贵就贵在强大的内建函数和各种工具箱。
这背后,是顶尖的数学家、程序员和专业领域专家几十年的心血,当然功能强大;研发成本巨大,自然卖得贵。
强大的功能带来的是高效。数学建模竞赛只有三四天的时间,所以效率很重要。
有些人在参加数学建模竞赛用python或其他语言编程,当别人使用matlab现成的工具箱几秒钟出答案时,他们还在遥遥无期地debug。
matlab的高效体现在以下几点:
1、自带齐全的工具包。安装matlab时就已经装好了工具箱。而用python的话,还需自行安装和设置各种工具包,中间可能遇到各种出错
2、使用工具箱简单操作就能得到结果,而用python自己写程序可能要大半天
3、可解决专业性问题。例如信号处理工具箱包含专业领域内的算法,这些算法都是顶尖专家写出来的,一般人根本写不出来的
但收费也带来弊端:壁垒高、使用者少。这也就导致没人用matlab开源自己的程序,毕竟不是谁都能买得起的。
python是免费开源语言,共享社区带来的是便捷
免费开源,意味着共享,人人都可以用,并开源自己写的程序。因此不断地有人参与进来,分享自己用python写的代码、解决的问题。
共享带来的是便捷,在python这个圈子内,任何问题你都能找到答案。
python的便捷体现在以下几点:
1、源源不断的新idea,而matlab则是固定的抽象工具。GitHub上分享的开源代码有很多python的,但matlab编写的就少很多
2、入门难度低,在各种网站上python的入门课程、经验贴很多,适合0基础小白入门编程
3、交流性强,懂python的人比懂matlab的人要多,交流起来更方便
近两年就有竞赛题目是关于新冠疫情的,因为数学建模是解决实际问题,有时会紧跟时事。而matlab虽然有解决病毒传播问题的工具,但相关的经验贴较少;而网上用python解决新冠病毒传播的帖子更多一些。
2.该学哪个呢?
前面说了两者的特点,那么究竟该学哪种呢?
建议两者都学。先学matlab,有余力的情况下再学python;最好队伍中一个人懂matlab另一个人会python。
原因有以下几点:
1、数学建模本质是用数学来解决问题,而matlab就是个商用数学软件
2、近些年数模竞赛难度明显增大,强大的工具包不可或缺
3、小白的编程能力有限,先学python的话,一开始参加竞赛期时往往写不出来程序,打击自信
4、掌握matlab后再学python,解决问题时,可以读懂python的帖子再用matlab实现,既用到了python的便捷又用到了matlab的强大
最主要的原因,还是前文所说的matlab的高效。这一点在数模竞赛中极其重要,不然别人论文都写的差不多了,你们还在熬夜喝红牛debug……
而python本身能够查阅的资料较多,且不仅可以用于数学建模,也可以用在Web、自动化测试、软件等等方面。在做数模的过程中学会的python,又其他比赛或项目中用到自然是最好的。
当然,如果比较懒的话……单学matlab也足够解决数模问题了。如果队伍中一个人懂matlab,另一个人会python是最好不过的了。
收藏的时候顺便点个赞哦~祝点赞本文的大家国赛都拿一等奖~~~