数学竟然可以这样学,用Python魔法突破数学结界!

Posted turingbooks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学竟然可以这样学,用Python魔法突破数学结界!相关的知识,希望对你有一定的参考价值。

今年的高考刚刚过去, 在数学考完的当天,“高考数学”又一次荣登微博热搜榜榜首。

对于这场数学考试,可谓几家欢喜几家愁,图灵君浏览着微博上读者的留言深有感触。

(选自微博账号@四川校园君)

对于部分参加高考的同学来说,这场数学考试可能意味着他们与数学的缘分到此为止;然而,对于更多的小伙伴,这场数学考试只是大家与数学的一场短暂告别。人生的路很长,数学总会与你不期而遇。大部分小伙伴也终将在高考之后的人生里,对数学的认识越来越深刻——数学的重要性,数学与生活的千丝万缕之关联,超出了大部分中学生的认知。不信,请咱们公众号的读者们,尤其是正在读大学,或者已经步入工作岗位的朋友们,敞开聊一聊:后来,你到底如何看待数学?高考数学是你的“数学人生”巅峰时刻吗?

记得图灵君上学的时候,数学简直就是我的噩梦,当时数学老师会在黑板上列一堆公式或者概念,配上无聊枯燥的说明文字和老师极具催眠效果的声线——完全听不下去!

我小时候的配图也没存下,来看看国外的数学教学(见图1)。

(图 1 学校数学教学法)

图1 这段文本解释了如何找到三角形的重心(或形心),涉及定义、命题和证明。阅读量很大,还包含很多奇怪的符号。你可能很难想到这和几何图形有关。这样的传统教学方法并不会提起我们寻找三角形重心的兴趣。

嗨,真的是,天下乌鸦一般黑呢!这就是传统的学校数学教学法。

那如果换成下面的图2 来讲解这个问题呢?

(图2 Python 数学教学法)

图2 是一张由约 100 个旋转的三角形组成的动态草图——你一定很好奇这是如何实现的?这是个很有挑战性的编程项目,如果你想让三角形旋转得当(而且转得好看),就必须找到它的重心。

只需要一点三角形背后的数学知识(比如重心)就能很容易地运用编程创造出艺术品——对的,这时候数学成为了我们解决有趣问题的必备知识,而不是亦步亦趋找寻一个不知道是什么意义的答案。这种场景下,你怎么可能因为看到几个平方根或一两个三角函数就被吓跑?你在创造,在设计,你要搞明白几何学从而为你“华丽丽”的大项目服务,而不是为了做习题而做习题。

这就是学校数学和真实数学之间的区别。

下面用一张图来总结一下这种区别。

再来看个例子:分分钟搞定函数问题。

下面的练习展示了教科书中的典型数学问题,它要求学生定义函数 f(x),并就大量的 x 对它求值。  

(图3 教授函数的传统方式) 

后面还有 18 个同样形式的问题!这种习题对 Python 这样的编程语言来说是小菜一碟。我们只要定义函数 f(x),然后反复从 x 值的列表中取出一个值代入即可:


import math

def f(x):

      return math.sqrt(x+3)-x+1 

#要带入的值的列表 

for x in [0,1,math.sqrt(2),math.sqrt(2)-1]:

       print("f({:.3f})={:.3f}".format(x,f(x)))


最后一行是为了让输出更好看,将答案保留至三位小数: 


f(0.000)=2.732

f(1.000)=2.000

f(1.414)=1.687

f(0.414)=2.434 


在 Python、javascript 和 Java 等语言中,函数是转换数和其他对象(甚至其他函数)的重要工具!你可以给 Python 里的函数命名,让人更容易明白它是做什么的。举个例子,可以将一个计算矩形面积的函数命名为calculateArea():


def calculateArea(width,height): 


再来看个例子,数学中无比华丽的一个图形。

伯努瓦·芒德布罗(Benoit Mandelbrot)在为 IBM 工作期间首次在计算机上生成了以他命名的著名分形。数十年后,一本于 21 世纪出版的数学教科书展示了一张芒德布罗集的图像,并对这一发现大加赞扬。那本书将图4 所示的芒德布罗集描述为“一个从复数中衍生出的迷人的数学对象,它的边界混乱而又美丽”。 

(图4  芒德布罗集)

接着,那本教科书带领读者进行了一次痛苦的“探索”,教学生如何变换复数平面内的一个点。糟糕的是,它只教了如何用计算器变换。这意味着在相当长的时间内只能变换两个点(每个点的变换一般包含 7 次迭代计算)。对,只有两个点。

那么如何用 Python 程序自动变换几十万个点,甚至画出上面的芒德布罗集图像呢?

在今天为大家介绍的这本书里你一定能找到答案!

作者:[美]彼得·法雷尔(Peter Farrell)

译者:严开

不论你是学生,还是老师,不论你是编程新手,还是数学爱好者,都可以通过本书体会编程与数学的魔法!

接下来,我们来隆重介绍一下这本书的特别之处。通过 Python,你见识到的是一个全新的数学世界!

Python + 数学——全新的世界

1. 用 Python 体验“全新”的数学

不为解题,不记公式,彻底摆脱枯燥——纯粹好玩,自由发挥想象,自己动手制作趣味数学

2. 用 Python 让数学活起来

看得见动起来充满立体感的“活”数学,像魔法一样解决常见数学问题

3. 涵盖中学数学重要主题,如代数学、几何学、三角学和微积分

4. 各种让人欲罢不能的案例,编程与数学强强联合

书以趣味探险路线展示案例,让你真正领略数学的实用性与编程的趣味性

5. Python 3 案例,充分展示 Python 特色与 Python 可视化的强大

我们可以像探险一样学习这本书

每章都是一段美好的旅程

本书向读者展示如何利用编程来让数学学习变得有意义并且充满乐趣。读者在探索代数学、几何学、三角学、矩阵和元胞自动机等领域的关键数学概念时,将学会在 Python 语言的帮助下使用代码可视化一系列数学问题的解决方案。读完本书,读者还可以编写自己的程序来快速解方程,自动完成一些烦琐的任务,以及编写函数来绘制和操作形状,等等。下面是探险路线图。

作译者都是行家里手

彼得·法雷尔(Peter Farrell)

数学和计算机科学教师,热衷于“定制”数学和技术教学。他开设了一门名为 Hacking Math 的课程,利用编程技术让学生见识“活生生”的数学,广受欢迎。本书是他近十年教学实践的结晶,手把手带你让数学“活”起来,真正体会数学之美。 

严开 

本科就读于英国格拉斯哥大学,研究生即将入读中科院计算所。对于数学与编程的交叉领域兴趣浓厚,毕业设计项目:Coding a Modesolver in Python(实现了一个解电磁微分方程的程序)。

数学大佬和普通读者都喜欢

“在当今时代,学习 Python 与掌握数学分析技能同样重要。因此,本书对于学生和老师而言都必不可少。”

——Gabrielle Birkman,数学家、作家

“彼得·法雷尔颠覆了传统数学教科书的结构,采取以‘让学生创造和发现’为中心的方法,引导学生走上了一条数学的发现之路。”

——Tien Chih博士,美国蒙大拿州立大学比林斯分校数学教授

“如果你是想学习计算机编程的数学高手或者是想看代码和数学能擦出何种火花的计算机高手,那么本书再适合你阅读不过了。”

——Jenny Bristol,GeekDad 

Amazon 读者 

“对于学习 Python 和数学而言都是一本难得的好书,强烈推荐!”

“如果你也像我一样喜欢 Python 及可视化,这可真是一本珍宝级图书。书中的数学题案例相当有趣,我在上面磕了不少时间。”

“任何年龄的学生都能通过本书快速上手 Python,当然,它也会带你踏上探索数学的奇妙之旅!”


更多好评

还有精美探险书签相赠

编程思维与数学思维强强联合

开启数学与 Python 的奇幻之旅

赠 书 福 利

你年少时的数学成绩如何?后来,你用编程解决过什么数学问题?聊一聊当时的感受。

评论区挑选 3 位用户, 每人送出《用Python学数学》1 本。

活动截止时间:2021 年 6 月 16 日 12:00 

图 灵 社 群


喜欢这篇文章?点个“在看”吧~▼

以上是关于数学竟然可以这样学,用Python魔法突破数学结界!的主要内容,如果未能解决你的问题,请参考以下文章

数论重大突破:120年后,希尔伯特的第12个数学难题获得解决

Hihocoder #1075 : 开锁魔法III (组合数学+动态规划)

OpenCV竟然可以这样学!成神之路终将不远(二十九)

THUWC2017 在美妙的数学王国中畅游

Python数据分析要学啥数学

Nature最新封面:两大数学难题被AI突破!DeepMind YYDS