Python小白的数学建模课-01.新手必读

Posted youcans

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python小白的数学建模课-01.新手必读相关的知识,希望对你有一定的参考价值。


Python 完全可以满足数学建模的需要。

Python 是数学建模的最佳选择之一,而且在其它工作中也无所不能。

『Python小白的数学建模课 @ Youcans』 带你从数模小白成为国赛达人。



1. 数学建模新手入门

『Python小白的数学建模课 @ Youcans』系列 是专门为学习数学建模、准备数模竞赛的小白准备的系列教程。

【Python小白的数学建模课-01.新手必读】 主要讨论小白刚刚接触数学建模的几个困惑:

  • 学习数学建模难不难?应该怎么学?
  • 学习数学建模选择什么计算机语言最好?我要学 Matlab 吗?
  • 用 Python 能做数学建模吗?
  • 用 Python 做数学建模好不好用,好不好学?

欢迎关注 『Python小白的数学建模课 @ Youcans』 系列,持续更新
Python小白的数学建模课-A1.国赛赛题类型分析
Python小白的数学建模课-A2.2021年数维杯C题探讨
Python小白的数学建模课-01.新手必读
Python小白的数学建模课-02.数据导入
Python小白的数学建模课-03.线性规划
Python小白的数学建模课-04.整数规划
Python小白的数学建模课-05.0-1规划
Python数模笔记-PuLP库
Python数模笔记-StatsModels统计回归
Python数模笔记-Sklearn
Python数模笔记-NetworkX
Python数模笔记-模拟退火算法



2. 学习数学建模难不难?应该怎么学?

进入大学以后,很多同学都会听老师和师兄师姐说起“数学建模”、“数模竞赛”,充满兴趣的同时也会有很多困惑:数学建模到底是什么?要不要学,好不好学,怎么学?

“数学建模”是用数学模型的方法,分析和解决实际应用问题的方法。

中学数学的应用题,就是典型的数学建模问题:基于简化的应用问题,给出一些已知条件,需要求解一些问题。应用题的解题过程,通常是先分析问题,判断用什么方法解题,然后根据已知条件一步步推导、计算,最后得出求解问题的答案。这就是典型的数学建模的方法和步骤,”数学建模“就是加强版的应用题。

大学里经常说的“数学建模”往往与”数模竞赛“联系在一起,这时又特指通过计算机程序来求解问题。这是因为,既然”数学建模“是加强版的应用题,”加强“体现在问题的求解计算过程比中学数学复杂,如果不通过计算机编程往往难以快速高效地计算出答案。另一方面,这也是为了鼓励大家学习使用计算机,学习通过计算机编程解决问题。

”数学建模“的学习过程并不困难,并不一定需要很好的数学基础,也不需要有很高的计算机编程水平——数学基础好,编程基础强,学习数学建模肯定会更加容易。但是,数学成绩不好,计算机小白,也完全可以学习数学建模、学好数学建模,并会在学习过程中锻炼数理思维逻辑,提高计算机编程水平——这才是最重要的收获。

小白要学习数学建模,youcans 建议:

  • 首先听一两节数模培训的公开课或分享会,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 数学建模的同学可以关注收藏本系列。

最后,其实我(youcans@xupt)也是一名 Python 小白。



版权说明:

欢迎关注『Python小白的数学建模课 @ Youcans』 原创作品

原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/117295222)

Copyright 2021 Youcans, XUPT

Crated:2021-05-26


欢迎关注『Python小白的数学建模课 @ Youcans』系列,每周持续更新
Python小白的数学建模课-A1.国赛赛题类型分析
Python小白的数学建模课-A2.2021年数维杯C题探讨
Python小白的数学建模课-01.新手必读
Python小白的数学建模课-02.数据导入
Python小白的数学建模课-03.线性规划
Python小白的数学建模课-04.整数规划
Python小白的数学建模课-05.0-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数模笔记-NetworkX(1)图的操作
Python数模笔记-NetworkX(2)最短路径
Python数模笔记-NetworkX(3)条件最短路径
Python数模笔记-NetworkX(4)最小生成树
Python数模笔记-NetworkX(5)关键路径法
Python数模笔记-模拟退火算法(1)多变量函数优化
Python数模笔记-模拟退火算法(2)约束条件的处理
Python数模笔记-模拟退火算法(3)整数规划问题
Python数模笔记-模拟退火算法(4)旅行商问题


以上是关于Python小白的数学建模课-01.新手必读的主要内容,如果未能解决你的问题,请参考以下文章

Python小白的数学建模课-A4.2021年全国数学建模竞赛 A题分析

Python小白的数学建模课-A6.2021年全国数学建模竞赛 C题分析

Python小白的数学建模课-A5.2021年全国数学建模竞赛 B题分析

Python小白的数学建模课-03.线性规划

Python小白的数学建模课-03.线性规划

Python小白的数学建模课-03.线性规划