许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  数学建模:Python与Matlab,谁更胜一筹?

数学建模:Python与Matlab,谁更胜一筹?

阅读数 62
点赞 0
article_banner
  1. 重要的是能找到代码!代码查找和改写的能力很重要!建模就三天的时间,纯打代码肯定是来不及的,必须要找点套路!!!
  2. 一般情况下,这两个软件都可以,不过大多数人会选择使用MATLAB ,因为用MATLAB做出来的图更加专业美观,但是近些年有的学校MATLAB被封了,可能无法再使用。
    不过没关系,Python 也是很好用的编程语言,而且学起来要比MATLAB简单一些,安装的也快(主要是MATLAB太大了 )。
    当然了,最好两个软件你都会用,可以将二者的优点结合起来。
  3. 但是我个人认为,如果你们知道了用哪个模型或算法之后,最好去网上找找有没有对应的代码,能找到哪个代码就用哪个软件,找到之后直接改写代码
    为什么要找代码,改代码呢?
    首先,你不可能掌握所有的算法代码,如果你重新学习的话,时间来不太及,毕竟只有三天的时间。
    其次,即便你学会了某某算法,你也不能保证编写的代码准确无误,一旦错误就会白白浪费时间。
    最后,既然网上都有现成的代码,你不用它干嘛!能省时间就省时间,而且大多数算法的代码都可以从网上找到。那么有的人可能会说了,既然改代码那么简单,那编程的队友是不是就没用了?
    当然不是了,虽然说有的代码可以从网上找到,但是并不是说可以直接复制粘贴,你必须要根据实际情况修改,而且你必须能读懂吧。
    另外,万一找不到代码呢?对不对,所以说编程大佬是非常重要的!
    在备赛过程中可以拿往年的试题练练手,看看能不能找到并准确改写代码,一定要掌握这种能力,很重要的!
  4. 教授:我看你这个工作是基于python的,我记得在建模这一块还有一个软件MATLAB比较常用,你为什么没有使用MATLAB呢?
    我:其实在行业认可度上,MATLAB被业内公认是一个非常优秀的建模软件,但是我们的项目使用过程中,需要涉及到云端的计算过程,使用MATLAB将会带来一系列的授权问题(我校并无MATLAB授权),而且我这个属于公益项目,前期并无资金投入,无法购买昂贵的正版授权。因此,我们采用了和MATLAB功能相似又完全免费的python语言,配合其优秀的第三方库的适配性,完成了这个工作。
    可以看出,我在这个回答中避免了一些坑,我并没有直说MATLAB跟python哪个更好(我相信他们有很多理由怼我说MATLAB更好,既然他们问了这个问题),并成功的将话题转移到了授权的问题上,并希望这帮大佬能帮忙跟学校争取到MATLAB正版授权。
    先放结论:MATLAB对于数模比赛各种尝试很方便。长远考虑Python用处大。核心功能两者差不多,都是脚本语言,都有成熟的平台和工具。
    对于数学建模来讲MATLAB用起来更容易,操作比较简单,工具箱用起来比较"傻瓜"式,有些高级算法也可能可以在比赛中现学现用,比如遗传算法工具箱 ,按要求在GUI界面填空就行。
    Python是通用编程工具,应用面广,数据处理方面的第三方的库如numpy (矩阵基础) scipy (矩阵运算) sklearn (人工智能算法) matplotlib (科学制图)也很强大,学好它们对于数学建模足够了。
    关于数模编程能力成长曲线。两个上手都不难,中期(大概就是进步到能拿国奖的水平那个阶段)matlab数据操作和算法积累进步会更快那么一点点,到后期(编程实现不再是难点时)熟练了又会没什么区别。
    因为python的适用面广,如果在技术层面有长远打算,建议学Python。
    从语言本身的发展看,MATLAB是mathwork公司自己开发维护的,提升已到瓶颈,未来用的人可能会越来越少;python是开源的,全世界一起开发维护,这几年可以颁发个进步最快奖,未来可能更万能,不会可能要再补课。
  5. 作为MATLAB党,表示,MATLAB的工具箱更为完善,函数更为稳健,毕竟收费的,Python作为胶水语言,确实有大量的库可以调用,但是可靠性就不能同日而语了,目前两个我都在用,经常相互之间调用,建议两个都学,MATLAB会少很多ITbug
  6. 先说结论:都学。先学matlab,有余力的情况下再学python。matlab是收费软件,强大的功能带来高效matlab可不便宜,动辄就几千几万。贵就贵在强大的内建函数和各种工具箱。这背后,是顶尖的数学家、程序员和专业领域专家几十年的心血,当然功能强大;研发成本巨大,自然卖得贵。强大的功能带来的是高效。数学建模竞赛只有三四天的时间,所以效率很重要。有些人在参加数学建模竞赛用python或其他语言编程,当别人使用matlab现成的工具箱几秒钟出答案时,他们还在遥遥无期地debug
  7. Python的应用方向很多的,你学不过来,而且你只是准备数学建模,那么只需要把Python数学库这一块搞好来就行了,运算,绘图之类的。我本人就是打算参加数学建模的,虽然有些时候某些东西不像matlab一样直接用某一个函数传递参数就行了,但是总体而言Python用起来是很清爽的,可以对一个算法进行非常丰富的优化,例如很方便地从代码级别加入线程提高运算速度等等。事实上,你使用Java等也是可以做的。这些计算机语言都是一个很好的工具,当然目前更多人在使用计算机语言方面选择了Python。不过你仍然会见到有很多的人使用C++进行数学建模。
  8. 长话短说。数学建模你需要Python给你提供数据分析与挖掘的能力。那些Python的高级玩法更多涉及库的制作,软件工程,数学建模用不到。
    给个学习的建议,先学完Python的基础语法并知道面向对象的编程思想,然后便是学习Python强大的第三方库。
    1. numpy和matplotlib,这是Python内部的矩阵库和可视化库。下面所有库都是基于numpy开发的。
    2. 有时间可以去看看scipy,这个库里面有许多科学计算的API。
    3. shapely 也不错,里面有很多计算几何的API,今年APMCM的A题我就用它轻松完成了孵化曲线的绘制(其中还用了一些数据结构的思想,所以有条件学一下基本的数据结构对打代码大有裨益)。
    4. 如果是和表格类型数据处理有关的题目,试试pandas ,它提供了处理表格类型数据全面便捷的API,非常方便。
    5. 如果你会一些传统机器学习算法,可以使用sklearn来快速实现它们,当然如果手头数据比较少。如果你手头数据很多,不妨试试pytorch tensorflow 或者paddlepaddle (个人推荐pytorch,比较好上手)。使用这些基于静态图或是动态图的深度学习框架,你能够快速实现一个DNN的前馈网络搭建与训练。
    玩Python第三方库的诀窍个人感觉就是善用搜索引擎与翻翻官方文档。比如你哪天想要玩SVD,那么就在网络上搜索“如何用Python实现SVD”,看那些前辈用了什么库,怎么实现的。(也就是善于调库啦,当然你首先得知道有什么库)
    如果你想进阶,那么Python的高级用法需要自学(网上系统的资料少得可怜)。比如class及其魔法方法,装饰器用法,itertools库的使用,内置函数的使用(比如map,filter),Python功能包的制作与发布(我个人打数模习惯先根据题目内容写一个工具集)。这些会让你的代码结构更加精简(比如实现一个hanming code,如果你知道这些高级用法就可以把行数从5行缩短到1行)。
    好好玩吧!(本蒟蒻去赶数据结构了)
  9. 如果你同时会几种编程语言,你就会发现每种语言都有他们独特的应用领域和特点。python更“计算机”,而MATLAB更“数学”,而他们都能解决“数学建模”这个即计算机又数学的问题。
    如果你们队伍中的编程位同学,平时代码写的不多,他可能更倾向于用MATLAB:数学运算,矩阵运算,把公式一套就能跑出个结果,一句plot就能画出图像,坏境又好配,工具包又多,太轻松了。
    可是这样好么?如果建模位出来的思路不那么数学,仿真了实际环境需要大量运算,没有过硬的数学基础,代码位同学很难把思路归化成高效的矩阵运算,三层循环嵌套下来(一般X,Y,t就有三层了)想要仿真一个结果,时间上跑不动咋办,论文写完了数据没有图出不来,PS建模?
    如果你们队伍中的编程位同学,平时就是个coding大佬,他可能更倾向于用python:首先他更熟悉,应用性的功能用python更多,更多抽象,更多封装,代码质量高得一批,版本控制一天30个commit;矩阵运算numpy,数值符号运算sympy,画图matplotlib和seaborn不比三区论文上的丑,必要的时候爬虫丢服务器上跑还怕没数据?
    可不是每个队伍都能找到这样的编程位。
    MATLAB是好用,新手入手快,结果出来的快,但是也正因为基础薄弱,平时用的少,所以天花板会比较低。
    Python是好用,思路清晰,第三方库多到爆炸,IDE齐全,出图好看,可要想做好它毕竟门槛高一些(好多人环境都配不明白)。
    所以我的建议是什么呢?都要学,可时间短,没法都学会的,就找好教程,知道教程讲什么,到时候去套代码改参数;抱好大腿,让大腿在危机时刻告诉你怎么改代码,bug出在哪儿。
  10. Matlab更适合工程师和科研人员,不仅有很多十分完备的函数和工具箱,在数模中,往往一个工具箱就可以解决大部分问题了。当然,学的话很快,学会一些基本操作,到需要专业的命令和语句时再上网查查就很好了。Python是一门正经的编程语言,不仅仅是数模,还有编程能解决的几乎所有问题,当然,在数值计算和统计上,优于其他语言,这也是能够和MATLAB相比较的原因。
    最好是都要懂,会基本操作,至少能看得懂,毕竟到了关键时刻,能复制修改的,决不从头写。。。
  11. 如果涉及到数据清洗,挖掘,预测,图像处理,模式识别,拟合等相关的问题,使用python会更好。如果涉及系统性的问题。会涉及到仿真方面,比如说电力,混沌,有限元,3D仿真等,可以考虑使用matlab
  12. 个人建议如果是纯小白且时间紧迫且仅仅是为了参加比赛,先学Matlab,上手快而且作图运算啥的个人感觉相对来说要简单点,而且还有一堆现成的图形化界面的工具箱,对新手较为友好;但如果是说为了今后各方面的发展考虑,还是建议花时间学一下python,python的泛用性更好而且应用场景比Matlab要广的多。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空