Python 完全可以满足数学建模的需要。
Python 是数学建模的最佳选择之一,而且在其它工作中也无所不能。
『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人。
1. 数学建模新手入门
『Python 数学建模 @ Youcans』系列 是专门为学习数学建模、准备数模竞赛的小白准备的系列教程。
【Python数学建模-01.新手必读】 主要讨论小白刚刚接触数学建模的几个困惑:
- 学习数学建模难不难?应该怎么学?
- 学习数学建模选择什么计算机语言最好?我要学 Matlab 吗?
- 用 Python 能做数学建模吗?
- 用 Python 做数学建模好不好用,好不好学?
欢迎关注『Python 数学建模 @ Youcans』 系列,持续更新
Python数学建模-01.新手必读
Python数学建模-02.数据导入
Python数模笔记-PuLP库
Python数模笔记-StatsModels统计回归
Python数模笔记-Sklearn
Python数模笔记-NetworkX
Python数模笔记-模拟退火算法
2. 学习数学建模难不难?应该怎么学?
进入大学以后,很多同学都会听老师和师兄师姐说起“数学建模”、“数模竞赛”,充满兴趣的同时也会有很多困惑:数学建模到底是什么?要不要学,好不好学,怎么学?
“数学建模”是用数学模型的方法,分析和解决实际应用问题的方法。
中学数学的应用题,就是典型的数学建模问题:基于简化的应用问题,给出一些已知条件,需要求解一些问题。应用题的解题过程,通常是先分析问题,判断用什么方法解题,然后根据已知条件一步步推导、计算,最后得出求解问题的答案。这就是典型的数学建模的方法和步骤,”数学建模“就是加强版的应用题。
大学里经常说的“数学建模”往往与”数模竞赛“联系在一起,这时又特指通过计算机程序来求解问题。这是因为,既然”数学建模“是加强版的应用题,”加强“体现在问题的求解计算过程比中学数学复杂,如果不通过计算机编程往往难以快速高效地计算出答案。另一方面,这也是为了鼓励大家学习使用计算机,学习通过计算机编程解决问题。
”数学建模“的学习过程并不困难,并不一定需要很好的数学基础,也不需要有很高的计算机编程水平——数学基础好,编程基础强,学习数学建模肯定会更加容易。但是,数学成绩不好,计算机小白,也完全可以学习数学建模、学好数学建模,并会在学习过程中锻炼数理思维逻辑,提高计算机编程水平——这才是最重要的收获。
小白要学习数学建模,建议:
- 首先听一两节数模培训的公开课或分享会,B站上有很多,大概明白数学建模是怎么回事就行。
- 其次要选择一门计算机程序语言进行学习,掌握基本的编程操作。
- 然后要系统学习各种类型的数学模型和算法,这是比较漫长的学习过程。
- 最后是实战练习,大学的数模协会都会安排练习赛、校内赛之类的训练和竞赛。
3. Python 能不能满足数学建模的需要?
答案很明确:Python 完全可以满足数学建模的需要。
首先,几乎所有的计算机语言,都可以满足常用的数学建模问题的需要。例如 C、Python、C++、C#、VB、R、Go,当然还有数模竞赛中最流行的 Matlab,解决各种数学建模问题都毫无问题。
需要注意的是,数模学习过程中经常听到的 Lingo、SPSS,严格地说并不是计算机语言,只是解决某些类型问题的专用软件,并不适用于其它类型的问题。
如果你学过其中一种计算机语言,而且(1)该计算机语言已经达到非常熟练的水平,(2)以提高编程水平为目的,而不仅是为了参加数模竞赛,那么你也可以使用学过的计算机语言学习数学建模和参赛。否则,就应该选择 Matlab 语言或者 Python 语言,其原因嘛,看完本文就清楚了。
4. Python 数学建模好不好用?
答案也很明确:Python 用于数学建模,很好用。
换个角度谈这个问题,就是学习数学建模、参加数模竞赛最好要选择什么计算机语言?答案就是 Matlab 语言或者 Python 语言。
为什么这么说呢?因为数学建模涉及的问题类型很多,算法更加繁多。对于普通本科学生来说,如果学习各种算法以后都要自己从零开始编程,对本科学生是非常非常困难,几乎不可能实现的。实际上,并不是真的要让同学们自己按照算法步骤从头编程,能够清楚每一类问题有哪些常用算法,学会使用现有的算法程序就可以了。
现有的算法程序从哪里来呢?一是来自计算机语言的各种算法工具包,以数学建模所涉及的算法来说,Matlab 语言或者 Python 语言的工具包都非常丰富,程序质量高、接口规范、文档和例程比较完整。二是来自先前的老师和同学积累的算法例程,但要系统全面地搜集这种算法例程也很困难,而且搜集到的例程质量参差不齐、接口五花八门,新手要进行消化吸收的难度也很大。
为什么选择 Python 语言,而不是选择 Matlab 语言呢?首先,Matlab语言来做数学建模完全可以,也是很好的选择。但是,学习任何一门计算机语言都是需要时间和精力的,我们学习编程语言用于数学建模,但最好并不只是为了数学建模,而是做其它工作时也能用。
从这个角度来说,Python 语言的优势就非常明显了。Matlab 是商业数学软件,主要应用于与数值计算相关的科研领域,在编程语言中排名 19、占比 1%。Python 语言是一种通用的高级编程语言,简单易学、免费开源,应用领域几乎无所不能,是最流行的编程语言,占比 12%。总结来说,在计算研究领域 Matlab 语言的性能更强,但在其它领域 Python 语言则是王者。
5. Python 数学建模好不好学?
综合来看,Python 比较容易学,也值得学。
大神觉得简单的问题,小白总会感到困难的。比较而言,Python 是比较简单、易学易用的程序语言,比 C 语言容易学、好掌握。不过,零基础学习 Matlab 会更容易上手,要精通也不容易;而 Python 大约还是需要一个月的基础学习,才能较好地学习和使用数学建模的算法。
既然这样,为什么大家一说起数学建模就会想到 Matlab 语言,数模培训中也都在用 Matlab 语言呢?首先,Matlab 语言在数学建模中也是很好的选择;其次,十几年前开始搞数模竞赛时,Python 语言还没有现在这么强大和流行;第三,Matlab 语言对于从事教学科研的老师是最熟悉、最常用的;最后,是由于多年的积累和惯性。
如果大学课程开设过计算机语言,通常是 C语言,在此基础上自学 Python 很容易,可以直接结合数学建模的内容学习 Python ;如果还没有开设计算机语言课程,自学 Python 语言也是较好的选择,特别是对于数学建模之外的需求也能胜任。
6. 『Python 数学建模 @ Youcans』系列计划
近年来,学习 Python 语言的人越来越多,使用 Python语言学习数学建模、参加数模竞赛的同学也越来越多。但是,关于 Python 语言数学建模的书籍、教程仍然比较少,并且与小白的需求存在差距:老师讲的很精彩,我听的很激动,下来还是不会用。
这正是本系列『Python 数学建模 @ Youcans』写作的初衷:
- 面向数模小白 & Python 小白,从零开始,按照 Matlab 数学建模培训的框架体系,系统讲解 Python 语言的实现方案;
- 着重讲算法的使用过程,例程尽量直接选用 Matlab 培训教程中的例题;
- 讲算法思想,不讲算法内容;讲算法应用条件,不讲算法实现过程;
- 开源工具包能实现的算法,不要自己造轮子;
- 尽量用最简单易懂的程序结构,哪怕有些笨拙;
- 所有例程都是调试运行通过,带有不厌其烦的详细注释、说明和运行结果。
本系列『Python 数学建模 @ Youcans』计划 50篇,系统解决数学建模学习所需的技术和算法。
此前写过一些专题的『Python 数模笔记』,就不再更新了,部分内容将根据本系列的章节重新整理。
感谢大家的支持,希望学习 Python 数学建模的同学可以关注收藏本系列。
最后,其实我也是一名 Python 小白。
版权说明:
欢迎关注『Python 数学建模 @ Youcans』 原创作品
原创作品,转载必须标注原文链接。
Copyright 2021 Youcans, XUPT
Crated:2021-05-26
欢迎关注『Python 数学建模 @ Youcans』系列,每周持续更新
Python数学建模-01.新手必读
Python数学建模-02.数据导入
Python数模笔记-PuLP库(1)线性规划入门
Python数模笔记-PuLP库(2)线性规划进阶
Python数模笔记-PuLP库(3)线性规划实例
Python数模笔记-Scipy库(1)线性规划问题
Python数模笔记-StatsModels 统计回归(1)简介
Python数模笔记-StatsModels 统计回归(2)线性回归
Python数模笔记-StatsModels 统计回归(3)模型数据的准备
Python数模笔记-StatsModels 统计回归(4)可视化
Python数模笔记-Sklearn (1)介绍
Python数模笔记-Sklearn (2)聚类分析
Python数模笔记-Sklearn (3)主成分分析
Python数模笔记-Sklearn (4)线性回归
Python数模笔记-Sklearn (5)支持向量机
Python数模笔记-模拟退火算法(1)多变量函数优化
Python数模笔记-模拟退火算法(2)约束条件的处理
Python数模笔记-模拟退火算法(3)整数规划问题
Python数模笔记-模拟退火算法(4)旅行商问题
Python数模笔记-NetworkX(1)图的操作
Python数模笔记-NetworkX(2)最短路径
Python数模笔记-NetworkX(3)条件最短路径
Python数模笔记-NetworkX(4)最小生成树
Python数模笔记-NetworkX(5)关键路径法
网友评论