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』带你从数模小白成为国赛达人. 前文讲到几种典型 ...
随机推荐
- 解决Linux无法读写U盘中的NTFS问题
1 问题描述 由于笔者因为某些需要把Windows装在了U盘上面(在这里建议一下如果有需要请使用固态U盘),在Linux下挂载时,能读取但并不能写. 2 尝试的解决方案 2.1 remount 一开始 ...
- IDEA通过Maven打包JavaFX工程(OpenJFX11)
1 概述 最近研究JFX,写出来了但是打包不了,这...尴尬... IDEA的文档说只支持Java8打成jar包: 尝试过直接使用Maven插件的package,不行,也尝试过Build Artifa ...
- etcd简介及集群安装部署使用
目录 1. 简介 2. Linux下载安装 3. 单机模式启动 4. 指定各集群成员的方式配置集群 5. 使用discovery service的方式配置集群 6. 集群模式下客户端命令行 7. et ...
- matlab帮助文档
matlab的纯文本帮助命令有多种,help.lookfor.which.doc.get.type等 help命令 help命令用来查询一个函数的使用方式. help fun %fun是函数名称 ...
- JAVAEE_Servlet_19_重定向可以解决页面刷新问题(sendRedirect)
重定向可以解决页面刷新问题(sendRedirect) 在向数据库中添加数据的时候,如果使用转发(getRequestDispatcher),数据插入成功后,转发到提示插入成功页面,在数据插入成功页面 ...
- Day01_11_Java方法
Java - 方法 什么是java中的方法? - 方法就是一段代码片段,并且这段代码可以完成某个特定的功能.动作.是可以被重复的使用. - 方法就是类的一个动作. - 方法在C语言中也叫做函数 或 f ...
- Ubuntu 20.04 简述环境配置&美化
不敢说是最好的,基本上是最全面的了~ 修改系统软件源 一开始是国外的源比较慢,建议换成国内的源,常用的有清华源.阿里源等. 清华源地址 Ubuntu 的软件源配置文件是 /etc/apt/source ...
- HTTP 基础(特性、请求方法、状态码、字段)
1. HTTP 简介(含义.特性.缺点) 2. HTTP 报文 3. GET 和 POST 4. 状态码 5. HTTP 头字段 1. HTTP 简介 HTTP 的含义 HTTP (HyperText ...
- table边框完全去掉的方法
表格中边框的显示 只显示上边框 <table frame=above> 只显示下边框 <table frame=below> 只显示左.右边框 <table frame= ...
- hdu4784 不错的搜索( 买卖盐,要求整钱最多)
题意: 给你一个有向图,每个节点上都有一个盐价,然后给你k个空间,么个空间上节点与节点的距离不变,但盐价不同,对于每一个节点,有三种操作,卖一袋盐,买一袋盐 ,不交易,每一个节点可以跳掉( ...