计算机科学的起源是为了解决数学问题,所以,在某种程度上,可以把计算机科学归为数学的一个分支。因此,可以通过使用Python程序来学习高等数学中的知识,如积分、微分等,反之,也可以通过解决数学问题深化Python的 编程 思维。

积分的由来

在古埃及,尼罗河经常泛滥成灾,但是每当洪水退去之后,就会留下肥沃的冲积平原供人们播种。古时候的人们想知道冲积平原上可用的耕地面积,但是冲积平原的形状不是常规的矩形或者圆形,而是不规则的形状,这就为测量的工作带来了麻烦。

后来经过数学家们的不断探索,他们发现,如果把这些不规则的形状分割成一个个小的矩形,只要把矩形窄的一边切得足够小,再把这些矩形的面积加起来,矩形的面积之和就无限接近于不规则图形的实际面积,这就是积分的由来,积分的几何意义就是求函数与坐标系形成的面积。

私信小编01 获取源码学习教程!

受到启发的数学家们,在测量一块不规则的图形面积时,会把沿着河流的一侧当做横轴,就是坐标系里的x轴,把与河流呈逆时针90°方向的一侧当做纵轴,也就是坐标系里的y轴。这样,对于每一个x的值,都有一个对应y的值与之对应。在这里,我们把x的值叫做自变量,y的值叫做因变量,记作y = f(x)。对,你没看错,这就是函数的雏形。

有了函数之后好处就多了。我们把不规则形状的横向距离(假设为L)分为n等分(n->+∞),那么,横坐标是从0开始的,每一份的长度就是L/n。那么第一块矩形对应的横坐标点是1*L/n,第二块矩形对应的横坐标点是2*L/n,第三块矩形对应的横坐标点是3*L/n…以此类推,那么聪明的你肯定已经想到了,第n块矩形对应的横坐标点是就是L。

既然确定了横坐标,那么纵坐标的位置就可以通过f(x)来求出,那么第一块矩形的面积就是L/n*f(1*L/n),第二块矩形的面积就是L/n*f(2*L/n)…第n块矩形的面积就是L/n*f(L),然后把这些数加起来就得到了不规则图形的面积。

sin(x)的积分(面积)

学过高等数学的你一定还记得,sin(x)在0-2π上的面积为 4,如下:

用Python求sin(x)在0-2π上的面积

想要求一个规则图形的面积,如长方形,直接用长×宽即可,但是如果要求一个不规则的图形面积,如sin(x)在0-2π上的面积呢?

根据积分的来源和积分的含义,实际上很容易知道可以通过将曲面面积划分为一个个矩形,最后求矩形之和的方式来实现 (顺便说一句:声波的音频采样(数字化)也是类似的原理) 。如下:

那么如何用Python代码来实现呢?

首先,我们需要将sin(x)与x轴在0-2π组成的面积划分为很多个矩形,因此需要引入一个变量n,那么矩形在x轴上的宽度(width)即为2π/n。

其次,我们需要通过sin(X)函数求出每个矩形的高度(height),假设为第i个矩形,则其高度为sin(i*width)。

最后,我们还需要把所有矩形的和相加,这里需要用到for循环。

另外,还需要注意的是,由于sin(x)在π-2π之间时为负数,因此还需要使用绝对值函数。

import math

n = 100 # n是将x轴(0-2π)切段的数量

area = 0

width = 2 * math.pi / n

for i in range(1,n+1):

x = i * width

height = abs(math.sin(x))

area += width * height

print(area)

程序输出结果为:3.9986839661525218。

即,当我们将sin(x)在0-2π上划分为100个小矩形时,小矩形面积之和为3.9986839661525218。

聪明的你应该想到,如果矩形划分的越细,数量越多,矩形面积之后就应该更接近于sin(x)的真实面积。那么,如果将n设置为1000000,其结果会是怎样了。

正如你所想,程序输出结果为:3.999999999986816。Great!很明显与n=100相比,更加接近于sin(x)的真实面积(4)了。

好了,本次的Python小课,Python与高等数学之Python与积分就到这里了,下次咱们再聊聊Python与高等数学之Python与微分。

python积分计算高等数学_Python与高等数学之Python与积分!用Python学数学相关推荐

  1. python问题解决方案_Python安装、遇到的问题及解决方案,python,和,方法

    Python安装:先在官网下载你需要的Python版本,我这边下载的是Python3.8,下载完是一个exe文件,直接双击安装即可,注意勾选"add python 3.8 to path&q ...

  2. python卸载干净_Python卸载不干净?Mac完全卸载python方法

    如今,Pyhon越来越火,屡次超越Java.C++成为编程语言排行榜第一的语言,国内的公司和程序员们也越来越喜欢使用Python.但是Python安装之后,散落在电脑各处,删除起来比较麻烦,很多小伙伴 ...

  3. python数据分析设置_Python 数据分析系列之如何安装和设置 Python

    由于人们用 Python 所做的事情不同,所以没有一个普适的 Python 及其插件包的安装方案,接下来我将详细介绍各个操作系统上 Python 科学计算环境部署.我推荐免费的 Anaconda 安装 ...

  4. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  5. python对城市规划_Python对城市距离自动化爬取【必学小型项目】

    本地创建数据库,将 excel 数据存储到 city 表中,再取 | 湖北省 | 的所有地级市和县.县级市.区数据作为样表数据记录在样表中.利用 python 的 xlrd 包,定义 process_ ...

  6. 40天python入门教程_Python入门教程超详细1小时学会Python

    Java 和 Javascript, 不 用 1 小时你就可以用 Python 快速流畅地写有用的 Python 程序 . 为什么使用 Python 假设我们有这么一项任务 : 简单测试局域网中的电脑 ...

  7. python在线爬虫_Python爬虫偷懒神器!快速一键生成Python爬虫请求头

    今天介绍个神奇的网站!堪称爬虫偷懒的神器! 我们在写爬虫,构建网络请求的时候,不可避免地要添加请求头( headers ),以 mdn 学习区为例,我们的请求头是这样的: 一般来说,我们只要添加 us ...

  8. python局域网联机_Python Socket-获取局域网连接的服务器主机名 - python

    我正在尝试获取LAN连接的服务器的主机名,因此我可以使用主机名在这些服务器上运行查询: import socket IP_RANGE = 10 hostNamesList = [] socket.se ...

  9. python 实现网站_python 实现网站_用web.py实现python网站版hello world网页

    github源码安装 浏览器打开https://github.com/webpy/webpy,下载源码zip格式,解压出来.cmd打开,cd到解压目录,输入 python setup.py insta ...

最新文章

  1. haar 人脸检测跟踪源码整理
  2. Precog:大数据分析即服务
  3. gogs mysql 报错_docker上对gogs二次开发
  4. 797. 所有可能的路径
  5. centsos7修改主机名 [root@st152 ~]# cat /etc/hostname
  6. dom4j Document的基本操作
  7. iOS: 教你给UI控件添加Badge(消息提醒小圆点)
  8. CountDownLatch类使用api
  9. Majority Number III
  10. Docker 安装 linux版
  11. python群聊机器人_基于python-wechaty的群聊助手机器人
  12. 华为HCIP RS题库221 401-410题
  13. 锐浪报表加载List泛型数据
  14. error: Could not load host key: /etc/ssh/ssh_host_dsa_key
  15. 01背包问题的填表方法
  16. linux查看云锁密码命令,Linux安装云锁
  17. VS2015+WDK10在不同环境下的驱动配置
  18. 手机屏和大屏LCD显示面板接口(和处理器连接的接口类似12864等单片机处理器和屏接口的8086,SPI等并口串口屏以及RGB屏接口)LVDS接口常见于液晶电视中。eDP,LVDS,MIPI,HDMI
  19. python毕业设计作品基于django框架企业公司网站毕设成品(6)开题答辩PPT
  20. 专家推荐 基础JS特效代码

热门文章

  1. 怎样查询PMP成绩?
  2. 51单片机(STC89C52)在Ubuntu下的开发
  3. 4.QOpenGLWidget-对三角形进行纹理贴图、纹理叠加
  4. Java 扫描枚举类并获取属性
  5. c 语言程序复杂,你见过或写过的最复杂的 C 语言程序是?
  6. nginx中用到的kill命令
  7. AWZ爱伪装详细使用教程
  8. Python学习日志
  9. linux操作系统adsl 上网设置,Linux操作系统下ADSL拨号上网详细步骤 -电脑资料
  10. mysql离散查询_mySQL数据库数据查询操作详解