- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563404 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174244
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
' S) R4 [/ k1 E# }7 y! I' g' I# m" ~9 L2 a$ ~8 O% {; l
参加数学建模用 MATLAB,还是 Python?作者:薛定谔的猫
" l2 l* a% ~ h" E$ o链接:https://www.zhihu.com/question/314746916/answer/634718224
4 h8 D5 j" }6 K9 r0 Y9 f' x来源:知乎5 `- q0 t! D1 \
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# |4 G, [( a6 Z* u4 v0 z3 ^
! }9 \& S" T% P( a5 p3 B7 `在最开始引用一下我之前在挑战杯答辩上的回答吧,这个挑战杯项目实际上是一个云端求解量子力学问题的项目。是的,我就这么直白的拿着数学建模的东西去水挑战杯′∀`
4 m6 _7 t) ^2 u% L教授:我看你这个工作是基于python的,我记得在建模这一块还有一个软件MATLAB比较常用,你为什么没有使用MATLAB呢?
# X' ^0 G3 f/ p9 _3 n4 |" X我:其实在行业认可度上,MATLAB被业内公认是一个非常优秀的建模软件,但是我们的项目使用过程中,需要涉及到云端的计算过程,使用MATLAB将会带来一系列的授权问题(我校并无MATLAB授权),而且我这个属于公益项目,前期并无资金投入,无法购买昂贵的正版授权。因此,我们采用了和MATLAB功能相似又完全免费的python语言,配合其优秀的第三方库的适配性,完成了这个工作。 可以看出,我在这个回答中避免了一些坑,我并没有直说MATLAB跟python哪个更好(我相信他们有很多理由怼我说MATLAB更好,既然他们问了这个问题),并成功的将话题转移到了授权的问题上,并希望这帮大佬能帮忙跟学校争取到MATLAB正版授权。
: z/ O. P' }0 c! T- v" i! v, h" [~~~~~~~~~~~~~~~~~~~~~~~~~~~~' N3 ]( g9 n6 g6 ]3 Y' A
下面开始正文部分1.python还是MATLAB
, z! l, y1 o2 R1 X( n0 [只有小孩子才做选择,我选择全要,开个玩笑。+ }* \* Y: G. }' Y4 |
你可能在互联网上搜索python和MATLAB会有人给你分析两者的优缺点,我这里不打算阐述两者的优缺点。我觉得对于数学建模而言,两者都应该学习,这是因为关键时候两者可以及时互补。他们虽然功能相似,但是针对某一个问题,你可能只能在互联网上搜索到一个解决方案,如果你选择在一棵树上吊死,很可能你需要自己研究整个代码并且将其移植,这在有限的数模比赛时间内是极其不可取的。: ]9 @3 V( f, F( w. X& U( W
- 举个例子,不算数学建模领域的,去年就在我师兄一篇论文的修改意见是对其中的声音分析做一定修正(为什么找到我了呢,因为我们课题组是物理课题组,大部分人对于编程不太敏感,我又正好拿了几个数学建模的奖),当时在Google只搜到了相关的matlab程序,完全搜不到python程序(我当时主要就是用python,所以肯定优先用python的程序,可惜搜不到(=′口`=))于是只好拿MATLAB源程序过来修改了一下跑了一遍数据完成了工作。从此以后我电脑里的matlab从来都是最新版本。& D( r9 v& X# M( b3 Y7 I2 t
2.学习MATLAB和python的先后顺序% L) M' i0 b6 ]6 P1 r3 z; { p
以一个过来人的角度来说,我建议你先学MATLAB,这是因为它的中文教程相对于python要多很多,这对于新手是有利的。等到熟练操作MATLAB以后,只需要简单看一看python的基本操作,就能够上手像numpy这一类的科学计算的库,因为它们的操作方法是模仿MATLAB的。+ n) w- S, ^! x, a' m
3.python的推荐配置( ?& j" @: h& e/ y. c2 r
我最早学习的全是基于python的非线性物理计算,这是学校开设的本科课程。当时推荐的python发行版是Anaconda,它的好处就是预装了大量的你能用的上的库而且自带大量的编译器的支持,无需手动配置,一键启动。* u" ?4 h0 p8 X6 E+ Q
如上图就是anaconda的启动界面,其中默认提供8种编辑器,其中不乏有VS code这种大牌编辑器,你可以一个一个尝试直到找到自己喜欢的。
1 v9 Y3 }0 ]5 _3 j& [' O2 N 上图就是大名鼎鼎的VS code,来自微软,提供大量的扩展支持,只有你想不到没有他办不到,配合第三方扩展,你甚至可以用代码编辑器来听音乐和看漫画,详情见 2 w, m0 F6 r+ ~$ ^$ F" T) c
@GitHub Daily @2 i) N: A7 a6 n) C9 K0 U
3 t6 R! D* ~) ~4 h 的文章; z1 S! y" S4 r5 D. _/ L* k+ p
GitHub Daily:装上这几个 VSCode 插件后,上班划水摸鱼不是梦zhuanlan.zhihu.com 如果你不喜欢这种类型的编辑器,还有提供matlab类交互支持的编辑器——spyder,题主可自行体验。2 U) A5 n5 E) j9 f7 P: ~
4.最后一点建议- T/ b, r6 j u. H& x. @7 o# z
编程语言说到底只是零件,好的零件的确可以造出好的产品,但是设计师的设计更为重要,与其纠结语言,不如多看看算法,毕竟,算法是支撑一个建模的核心,你程序写的再好看评委也是看不到的。; K( g+ f5 q9 w/ O* N0 |( H
2 C4 ~- k3 s0 _3 l( B ^! x发布于 2019-03-28* |+ S; ?( C( H$ {7 p! f8 \
/ }" o# r0 L5 ?0 u: y: ^% B! F! M6 u+ ?5 W) G
7 [% T' I) X% {3 ~% y
. J, p, f) M* W! c" V, t3 g
0 `, s0 W% u7 c# s& n) F& k6 h' h
@realOlderDriver
2 H( m( X A6 o# d4 B5 e5 ~9 z s% g: z% C: A6 X" ~6 k
4 L" Q! i, \6 W- E3 k5 V/ N
$ A# s7 m: P3 N. G; c; _8 h( n% [ y: B9 h0 G0 S2 w$ `
64 人赞同了该回答2 B2 Y- p3 @3 ^3 a
5 N' I8 o4 x/ G8 k8 U, z数学建模比赛并不会有所谓“官方指定”的软件!
' z) G; V& W+ j* _所谓“官方指定”,可能是国赛中设有“Matlab创新奖”,让很多人误认为数学建模比赛必须使用Matlab。这其实是误解,迈斯沃克公司(Matlab母公司)是国赛赞助商,为了推广其软件,所以才在比赛中设立奖项,奖励一篇使用Matlab的优秀论文。但是,如果你通篇没有使用Matlab,除了不能参评这个奖项外,对你论文获奖没有任何影响。(Matlab创新奖每年数万个队伍中仅有一项,获奖概率可以忽略,故影响不大。)
2 F- d8 `8 @2 k) v3 f4 A6 r# W( J不过,我仍然推荐你使用Matlab,因为该软件对解决应用数学及其相关的工程问题有得天独厚的优势,并且长期以来在数模竞赛圈中得到很好的传承,相关教学资源和代码模板比较多,方便套用。/ v( J! W: v3 x
相比于Matlab,Python是近几年发展较快的一个编程语言,在编程语言排行榜上远超Matlab。但是,Python不太适合在数学建模中使用,尤其是不要过多的使用机器学习算法,除非那个算法是你自己设计的(如果你有这个能力,也没必要参加数模竞赛了)。数学建模最忌讳的就是过多的使用不能说明内在机理的人工智能算法,这样会给评委一种“套模型”的嫌疑。
, l0 d: V" p! h" f5 K2 S, H; Q
) u+ T6 t7 A1 |9 C5 \0 {/ A h4 z; @, `. e0 U2 n
2 \5 N/ b, r% p. N- I7 w) V5 M3 r: b& ^$ B7 l) q# m- X
* H4 }( O% J1 K! Q2 B7 T0 R0 P# q$ Q. K/ t1 n' T, h
, j" I, U. t+ E1 w" H5 b( T
m# |. R* c9 H- C* \$ t
0 s% @ T0 |7 x# {# i M0 W3 P, u, g7 l' U3 C9 T$ e
|
zan
|