首页 > 编程语言 >数学竟然可以这样学,用Python魔法突破数学结界!

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

时间:2023-06-25 13:34:56浏览次数:21  
标签:本书 函数 德布罗 Python 编程 数学 结界


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

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

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

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

数学竟然可以这样学,用Python魔法突破数学结界!_人工智能_03

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

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

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

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

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

数学竟然可以这样学,用Python魔法突破数学结界!_人工智能_05

(图 1 学校数学教学法)

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

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

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

数学竟然可以这样学,用Python魔法突破数学结界!_编程语言_06

(图2 Python 数学教学法)

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

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

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

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

数学竟然可以这样学,用Python魔法突破数学结界!_人工智能_07

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

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

数学竟然可以这样学,用Python魔法突破数学结界!_人工智能_08

(图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 所示的芒德布罗集描述为“一个从复数中衍生出的迷人的数学对象,它的边界混乱而又美丽”。 

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

(图4  芒德布罗集)

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

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

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

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

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

译者:严开

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

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

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

Python + 数学——全新的世界

1. 用 Python 体验“全新”的数学
不为解题,不记公式,彻底摆脱枯燥——纯粹好玩,自由发挥想象,自己动手制作趣味数学
2. 用 Python 让数学活起来
看得见动起来充满立体感的“活”数学,像魔法一样解决常见数学问题

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

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

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

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

数学竟然可以这样学,用Python魔法突破数学结界!_编程语言_12

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

每章都是一段美好的旅程

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

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

作译者都是行家里手

彼得·法雷尔(Peter Farrell)

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

严开 

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

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

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

——Gabrielle Birkman,数学家、作家

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

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

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

——Jenny Bristol,GeekDad 

Amazon 读者 

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

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

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


数学竟然可以这样学,用Python魔法突破数学结界!_人工智能_14


标签:本书,函数,德布罗,Python,编程,数学,结界
From: https://blog.51cto.com/u_15767091/6545121

相关文章

  • python操作rabbitmq
     rabbitmq安装部署   RabbitMq生产者消费者模型生产者(producter) 队列消息的产生者,复制生产消息,并将消息传入队列生产者代码:importpikaimportjsoncredentials=pika.PlainCredentials('admin','admin')#mq用户名和密码,用于认证#虚拟队列需要指定参数vir......
  • Python爬虫之数据解析技术
    Python爬虫需要数据解析的原因是,爬取到的网页内容通常是包含大量标签和结构的HTML或XML文档。这些文档中包含所需数据的信息,但是需要通过解析才能提取出来,以便后续的处理和分析。以下是一些使用数据解析的原因:数据提取:网页内容通常包含大量的无关信息和嵌套结构,数据解析可以帮助我......
  • 日系明解系列又添新成员!日本编程教育界泰斗手把手教你入门 Python
    如今,会用Python的人越来越多,Python 不仅被众多企业所采用,在教学一线也有越来越多的人将Python指定为必学编程语言。为什么 Python会受到如此重视?首先这门编程语言擅长的领域非常多,不仅包括机器学习、深度学习等人工智能(AI)领域,还包括数据分析、科学计算、Web应用程序和GUI(G......
  • 手把手教你用Python构建自己的「王二狗」
    导读在人手N部智能手机的时代,我们对聊天机器人早已不陌生。这两年很火的游戏群聊天机器人「王二狗」更是用它的机智幽默征服了很多人。今天,我们将手把手教你用Python从头开始创建一个聊天机器人,这种机器人能够理解用户的话,并给出适当的回应。闲话不多说,让我们开始从头开始做出自己......
  • Python爬虫之数据解析技术
    Python爬虫需要数据解析的原因是,爬取到的网页内容通常是包含大量标签和结构的HTML或XML文档。这些文档中包含所需数据的信息,但是需要通过解析才能提取出来,以便后续的处理和分析。以下是一些使用数据解析的原因:数据提取:网页内容通常包含大量的无关信息和嵌套结构,数据解析可以帮......
  • Python全栈工程师(11:网络基础_网络协议篇)
    操作系统基础 操作系统:(OperatingSystem,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。注:计算机(硬件)->os->应用软件二.网络通信原理2.1互联网的本质就是一系列的网络协议......
  • Python全栈工程师(7:面向对象高级进阶)
    面向对象高级语法部分类的字段、方法、属性经典类vs新式类Python2中:经典类--深度优先;新式类--广度优先Python3中:均为广度优先super()方法:抽象接口#/usr/bin/env.python#-*-coding:utf-8-*-importabcclassAlert(object):'''报警基类'''__metaclass__=abc.......
  • Python全栈工程师(5:模块)
    模块介绍第三方库一般存放在site-packages下模块的定义:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过importspam使用。在python中,模块的使用方式都是一样的,细分模块可以分为四个通用类别:1使用python编写的.py文件(自定义模块)2已......
  • Python全栈工程师(31:css)
    css属性设置方法:方式1:在标签上设置style属性;<divstyle="height:10px;width:10px"></div>方式2:放在head里添加css模式;<head><style>#i1,#i2{height:10px;width:10px;}/*id选择器*/.c1{height:10px;width:10px;}/*class选择器*/div{height:10px......
  • python模块之hashlib
    用于加密相关的操作,3.x里代替了md5(不可反解)模块和sha模块,主要提供 SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法importhashlibm=hashlib.md5()m.update(b"He......