为什么你学不好数学?这本书彻底颠覆了“学校数学”的学习方式!

9bb14dd8ad37a3ee901c8455c211398c.png

55227e498e293af8b9348eafda7692d6.jpeg

来源 | 《用Python学数学》

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

译者:严开

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

1a8ceb387cc2d1e869e3ab212831cd82.jpeg

图 0-1 两种教授重心的方式

右边则是一张由约 100 个旋转的三角形组成的动态草图。这是个有挑战性的编程项目,如果你想让三角形旋转得当(而且转得好看),就必须找到它的重心。在很多情况下,不了解几何图形背后的数学原理就画不出精美的图形。你将在本书中看到,我们只需要一点三角形背后的数学知识(比如重心)就能很容易地创造出艺术品。懂数学且会设计的学生更有可能去钻研几何学,不会看到几个平方根或一两个三角函数就被吓跑。然而,只做教科书上的习题却看不到任何结果的学生,恐怕不会有学习几何学的动力。

我做了 8 年数学老师和 3 年计算机科学老师,根据我的经验,喜欢视觉教学法的学生远远多于喜欢学术教学法的学生。在创造有意思的东西的过程中,你会发现数学绝不仅是遵循步骤去解方程。运用编程探索数学能让你发现很多解决有趣问题的方法。你虽然可能会遇到许多始料未及的错误,但这也是提升自己的机会。

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

“学校数学”的问题

究竟什么是“学校数学”?在 19 世纪 60 年代的美国,学校数学是为成为记账员所做的准备,就是手动将一列列数字加起来。现在的工作与以往不同,这些岗位的准备工作也要随之而变。

实践是学习的最好方式。但学校并不经常让学生实践,而是更多地让学生被动学习。英语课和历史课上的实践可能是写论文和做演讲,科学课上的实践就是做实验,那数学课呢?以前,数学课上的实践就是解解方程、分解分解因式、画画函数图像。但是现在,计算机可以为我们完成大部分的计算工作,这些实践已经不够了。

学习如何自动化解方程、分解因式和画函数图像并非我们的终极目的。学习自动化某个流程的目的是让学生比以前更深入地研究这个主题。

图 0-2 展示了教科书中的典型数学问题,它要求学生定义函数 a6dbb84a678775d093d6ce6ad84cc2dd.png,并就大量的 438a9e2492100dace8afb9c3e18bb854.png 对它求值。

7bde30a8fd247b3f7b3f9837230b6b26.jpeg

图 0-2 教授函数的传统方式

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

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 世纪出版的数学教科书展示了一张芒德布罗集的图像,并对这一发现大加赞扬。那本书将图 0-3 所示的芒德布罗集描述为“一个从复数中衍生出的迷人的数学对象,它的边界混乱而又美丽”。

2ec262b05d9e558590d608d8ac729a98.jpeg

图 0-3 芒德布罗集

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

在本书中,你将学到如何用 Python 程序自动变换几十万个点,甚至画出上面的芒德布罗集图像!

  推荐阅读

cdb60ba9a539634ed4194ff3501d1656.png

《用Python学数学》

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

译者:严开

1.用Python体验“全新”的数学不为解题,不记公式,彻底摆脱枯燥——纯粹好玩,自由发挥想象,自己动手制作趣味数学 

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

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

4.各种让人欲罢不能的案例,编程与数学强强联合本书以趣味探险路线展示案例,让你真正领略数学的实用性与编程的趣味性 

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

60e8bed35e6cf2154114f603ffe3b195.jpeg

《程序员数学 用Python学透线性代数和微积分》

作者:保罗·奥兰德(Paul Orland)

译者:百度KFive

数学拥有无穷的力量。它既帮助游戏开发工程师建模物理世界,也帮助量化金融分析师赚取利润,还帮助音频处理工程师制作音乐。在数据科学和机器学习领域,数学知识更是不可或缺的。

代码和数学是相知相惜的好伙伴,它们基于共同的理性思维,数学公式的推导可以自然地在编写代码的过程中展开。

500余幅图片,本书以图文结合的方式帮助你用Python代码解决程序设计中的数学问题。300余个练习,通过边学边练,你会发现线性代数和微积分的重要概念跃然纸上、印在脑中。

60fcbfe67f809d43f805e5e538398abc.jpeg

《程序员的数学》(全四册)

作者:保罗·奥兰德(Paul Orland)

译者:百度KFive

包含数学基础、概率统计、线性代数、图论入门

没有晦涩的公式,只有好玩的数学题:帮你掌握编程所需的“数学思维”

阐述编程需要的基础数学知识和数学思维

穿插大量有趣的例题和图表、无须精通数学与编程也可理解、启发思维,探索数学与编程的本质

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值