Python数学建模-01.新手必读
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』 原创作品
CSDN 原创作品,转载必须标注原文链接。
Copyright 2021 Youcans, XUPT
Crated:2021-05-26
欢迎关注『Python 数学建模 @ Youcans』系列,每周持续更新
Python数学建模-01.新手必读
Python数学建模-02.数据导入
Python数模笔记-PuLP库(1)线性规划入门
Python数模笔记-PuLP库(2)线性规划进阶
Python数模笔记-PuLP库(3)线性规划实例
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)关键路径法
Python数学建模-01.新手必读的更多相关文章
- Python数学建模-02.数据导入
数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...
- Python数学建模系列(一):规划问题之线性规划
@ 目录 前言 线性规划 样例1:求解下列线性规划问题 scipy库求解 样例2:求解下列线性规划问题 pulp库求解 样例3.运输问题 说明 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文 ...
- Python小白的数学建模课-05.0-1规划
0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...
- Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨
Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...
- Python小白的数学建模课-03.线性规划
线性规划是很多数模培训讲的第一个算法,算法很简单,思想很深刻. 要通过线性规划问题,理解如何学习数学建模.如何选择编程算法. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛 ...
- Python小白的数学建模课-04.整数规划
整数规划与线性规划的差别只是变量的整数约束. 问题区别一点点,难度相差千万里. 选择简单通用的编程方案,让求解器去处理吧. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达 ...
- Python小白的数学建模课-A1.国赛赛题类型分析
分析赛题类型,才能有的放矢. 评论区留下邮箱地址,送你国奖论文分析 『Python小白的数学建模课 @ Youcans』 带你从数模小白成为国赛达人. 1. 数模竞赛国赛 A题类型分析 年份 题目 要 ...
- Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评
新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...
- Python小白的数学建模课-06 固定费用问题
Python 实例介绍固定费用问题的建模与求解. 学习 PuLP工具包中处理复杂问题的快捷使用方式. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达人. 前文讲到几种典型 ...
随机推荐
- Go-06-数据类型、常量、运算符
数据类型转换 Go语言采用数据类型前置加括号的方式进行类型转换,格式如:T(表达式).T表示要转换的类型:表达式包括变量.数值.函数返回值等. var a int =100 b := float(a) ...
- 面试系列<3>——java并发
面试系列--java并发 一.使用线程 有三种使用线程的方法: 实现Runnable接口 实现Callable接口 继承Thread类 实现 Runnable 和 Callable 接口的类只能当做一 ...
- 做个开源博客学习Vite2 + Vue3 (四)实现博客功能
我们再来看一下管理类的设计. Composition API,就是组合API的意思,那么是不是应该把js代码分离出来,做成独立的管理类的形式呢? 这样代码可以更整洁一些,主要是setup里面的代码就不 ...
- JDBC_13_封装JDBC工具类
封装JDBC工具类 代码: import java.sql.*; /** * JDBC工具类,简化JDBC编程 */ public class DBUtil { //工具类中的构造方法都是私有的,因为 ...
- python进阶(17)偏函数partial
什么是偏函数partial python中提供一种对于函数固定属性的函数 偏函数的作用 把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数 偏函数的语法 使用偏函数必须先导入from ...
- 1061 Dating
Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2984akDfkkkkg ...
- CSS快速入门基础篇,让你快速上手(附带代码案例)
1.什么是CSS 学习思路 CSS是什么 怎么去用CSS(快速上手) CSS选择器(难点也是重点) 网页美化(文字,阴影,超链接,列表,渐变等) 盒子模型 浮动 定位 网页动画(特效效果) 项目格式: ...
- 【ElasticSearch】ES 读数据,写数据与搜索数据的过程
ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应 ...
- hdu4772 水模拟
题意: 给你两个矩阵,问你两个矩阵的最大相同元素个数(位置也要求相同),矩阵可以90旋转多次. 思路: 水题,直接模拟就行了,方法很多,可以直接写坐标关系,或者一层一层处理,就 ...
- POJ1094查分约束,判断关系是否唯一
题意: 给你一些a<b的关系,然后有三组询问. 1 当前这组之后如果能确定这n个数的大小关系,那么就输出关系 2 当前时候出现bug,就是和前面如果冲突,那么就不行 3 最后的答案是 ...