无论是三大数学软件Matlab(通信、控制等工程例外)、Maple、Mathematica,还是三大统计软件Spass、Stata、SAS,这些可视化的软件本身就是编程的一个体现,它们在一定程度上降低了我们使用数学的门槛,但另一方面它们背后的功能是可以被编程取代的,而Python在数学和数据科学领域的流行,也是逐渐取代这些软件的一个过程。
在职业方面,精算师、金融工程、商业分析、数据分析师、数据挖掘、数据建模、量化工程师、算法工程师、数据产品经理、数据运营、数字营销、大数据、游戏开发、人工智能等诸多职业岗位都对数学有要求,但是我们会发现这些岗位对数学的应用都需要使用到数学软件以及需要与编程结合,可以说我们要应用数学,天然就应该与编程有机结合起来。而在数学、数据领域,由于Python编程语言的胶水性质以及极为丰富的第三方库,Python渐已成为学数学最值得推荐的编程语言。
用Python学数学技术专栏就尝试如何将数学与编程有机结合起来,让数学的学习回归到基础概念的理解和实际应用之中去。(当然专栏的目的主要是为数据科学和机器学习等的基础服务)
为什么数学那么难学且无用?
所谓将数学与编程有机结合,一是在数学学习的方向上就以数学的实际应用为重心;二是数学在符号上、图形上等的表现形式应该与编程语言无缝结合。
在我们学生时代的数学教学存在着诸多弊端:
- 一是以往的教育过于强调具体的计算能力,很多数学学得好的,不过是解题高手,一些极其复杂的微分方程、矩阵等还停留在笔算技巧和笔算能力上,而且对数学的应用需要死记硬背大量复杂的数学公式,这无疑加大了数学学习的难度,也偏离了数学原本的方向;在专栏的代数符号运算里面,我们就提到过可以借助于Sympy这种CAS工具来进行复杂的数学运算,从此数学公式的记忆与笔算不再是学习的重点;
- 二是真正好的数学教学是应该要复杂的数学理论知识简化,国内大学教程相比于国外存在很多不足之处,所以接下来我们也会推荐一些比较好的数学教程。很多人数学学不好、学不会在很大程度上也与教程对数学概念的讲解有一定的关系;
- 三是结合Python编程是可以对一些数学的问题进行建模的,通过编程来进行数学建模在前面我们提到的那么多职业,他们对数学的要求基础大多是微积分、概率统计、线性代数相关的知识,只是在以往的学习里,我们看不到数学是如何应用到这些职业里的;
四是结合Python以及一些数学软件,我们可以做出一些动态图形,加深大家对数学公式的理解
精选数学教程
到了大学之后,线性代数、概率统计、微积分等数学知识的难度较中学时代更高,整个数学的画风变化过大,很多概念开始变得难以理解,不知道怎么突然就冒出来了,也不知道学了有什么用。关于这些,其实有一部分是我们教材的原因,国内大学教材的编写者没有产品经理思维,没有切实站在学生的角度、没有以学生为中心来写教材。这里推荐一些公认比较好的教材:
线性代数
关于线性代数这里我们推荐两个教程,一个是William Gilbert Strang(威廉·吉尔伯特·斯特朗)的视频教程麻省理工公开课:线性代数,这个视频教程有配套的教材线性代数导论,价格有点性感,不过不看书也是OK的。Strang是麻省理工MIT的教授,写过很多经典的数学教材。他亲自传授的这个线性代数课程也是享有盛誉。我们还可以在MIT的开放课程里查看更多关于课程的信息:MIT线性代数课程官网。这个课程还有配套的习题课,在网易云课堂上也可以看到MIT线性代数习题课
二是3Blue1Brown的线性代数的本质。3Blue1Brown是斯坦福大学毕业的一个小哥创办的Youtube频道,擅长用直观的方法来阐述难以理解的概念,非常推荐。
微积分
微积分的课程我们也同样是推荐MIT和3Blue1Brown的课程。微积分在MIT分为单变量微积分和多变量微积分,而且都有配套的习题视频,在网易云课堂都可以看到。
单变量微积分、单变量微积分习题课、多变量微积分、多变量微积分习题课。如果想看更多视频内容也可以去MIT官网上了解一下,单变量微积分官网、多变量微积分官网。
3Blue1Brown的微积分的本质讲的也是一如既往的好,可以在学习MIT课程前先看。
统计学
统计学是一门非常重要的知识,这里我们推荐Khan Academy可汗学院的统计学教程,虽然也有MIT统计学教程,可惜的是没有字幕,如果你听不懂,可以去Youtube上借助AI字幕来看,也可以去MIT统计学基础官网上获取更多资料。还有一个斯坦福大学的统计学习入门(英文字幕)相当不错。
以上教程可能有的使用的R或MATLAB,这些都是可以用Python来代替的。
数学公式与图像展示
有趣的数学图形
为了加深我们对数学公式的理解,我们通常都需要辅之以一些图形,比如函数的图形、几何图形、空间图形等。以往我们作图都是通过在纸上手绘一些图形,不仅麻烦,而且非常不精确,更无法让图形根据变量取值的变化来直观的调整图形。
比如下面这个公式:
y = x 2 3 + 0.9 3.3 − x 2 sin ( π x ) y=x^{\frac{2}{3}}+0.9\sqrt{3.3-x^2}\sin\left(\pi x\right) y=x32