使用梯形法计算一二次函数的数值积分

$\int_{a}^{b}f(x)dx$

we can partition the integration interval $[a,b]$ into smaller subintervals,

and approximate the area under the curve for each subinterval by the area of

the trapezoid created by linearly interpolating between the two function values

at each end of the subinterval:

The blue line represents the function $f(x)$ and the red line

is the linear interpolation. By subdividing the interval $[a,b]$, the area under $f(x)$ can thus be approximated as the sum of the areas of all

the resulting trapezoids.

If we denote by $x_{i}$ ($i=0,\ldots,n,$ with $x_{0}=a$ and

$x_{n}=b$) the abscissas where the function is sampled, then

$$

\int_{a}{b}f(x)dx\approx\frac{1}{2}\sum_{i=1}{n}\left(x_{i}-x_{i-1}\right)\left(f(x_{i})+f(x_{i-1})\right).

$$

The common case of using equally spaced abscissas with spacing $h=(b-a)/n$ reads simply

$$

\int_{a}{b}f(x)dx\approx\frac{h}{2}\sum_{i=1}{n}\left(f(x_{i})+f(x_{i-1})\right).

$$

具体计算只需要这个公式

积分

道理很简单,就是把积分区间分割为很多小块,用梯形替代,其实还是局部用直线近似代替曲线的思想。这里对此一元二次函数积分,并与python模块积分制对比(精确值为4.5)用以验证。

$$

\int_a^b (x^2 - 3x + 2) dx

$$

from scipy import integrate

def f(x):

return x*x - 3*x + 2

def trape(f,a,b,n=100):

f = np.vectorize(f) # can apply on vector

h = float(b - a)/n

arr = f(np.linspace(a,b,n+1))

return (h/2.)*(2*arr.sum() - arr[0] - arr[-1])

def quad(f,a,b):

return integrate.quad(f,a,b)[0] # compare with python library result

a, b = -1, 2

print trape(f,a,b)

print quad(f,a,b)

4.50045

4.5

python求积分基于numpy_NumPy 实现梯形法积分相关推荐

  1. python怎么算积分_利用python求积分的实例

    利用python求积分的实例 python的numpy库集成了很多的函数.利用其中的函数可以很方便的解决一些数学问题.本篇介绍如何使用python的numpy来求解积分. 代码如下: # -*- co ...

  2. python做积分_利用python求积分的实例

    python的numpy库集成了很多的函数.利用其中的函数可以很方便的解决一些数学问题.本篇介绍如何使用python的numpy来求解积分. 代码如下: # -*- coding: utf-8 -*- ...

  3. 利用java求积分(定积分和无穷限积分)

    [0]README 0.1)本文部分文字描述转自或译自 https://en.wikipedia.org/wiki/Simpson%27s_rule和 https://en.wikipedia.org ...

  4. python求积分_利用python的sympy求解微积分

    前言 一般的数学算式math就可以解决了,但是涉及到极限,微积分等知识,math就不行了,程序中无法用符号表示出来. python中有一个sympy科学计算库,专门用来解决数学的运算问题. 安装 使用 ...

  5. 数值积分方法之2——梯形法与外推法求近似积分

    数值积分方法之2--梯形法与外推法求近似积分 说明 要求 Matlab实现 运行结果 梯形法与外推法对比 说明 Matlab的版本为Matlab R2019b:这篇笔记的全部内容是基于上课时老师布置的 ...

  6. python用复化梯形公式积分_复化梯形求积分——用Python进行数值计算

    用程序来求积分的方法有很多,这篇文章主要是有关牛顿-科特斯公式. 学过插值算法的同学最容易想到的就是用插值函数代替被积分函数来求积分,但实际上在大部分场景下这是行不通的. 插值函数一般是一个不超过n次 ...

  7. Java反梯形图案_梯形法求定积分(一)设计梯形法求积分的类模板,梯形法

    /*设计梯形法求积分的类模板,梯形法求积分的函数被定义为成员函数,可以求任意函数的定积分,用积分类的模板参数T引入被积函数*/ #include #include #include using nam ...

  8. 基于倒谱法和线性预测法估计基音频率(MATLAB和Python)

    基于倒谱法和线性预测法估计基音频率(MATLAB和Python) 倒谱法基音检测在python中实现 一帧信号的基音频率估计 wlen = 256 inc = 128 pitch = [] x1, F ...

  9. matlab用辛普森公式求积分_标准正态分布概率密度函数的定积分计算方法及Python实现代码...

    最近利用碎片时间在读Allen B.Downey的<贝叶斯思维:统计建模的Python学习法>,顺便用手机上的Pythonista写实例.因为Pythonista没有scipy科学计算包, ...

最新文章

  1. oracle10g cssd日志,【案例】Oracle CSSD进程HANG导致RAC节点重启原因分析笔记
  2. DevExpress右键菜单使用 zt
  3. 毕业季,拿走你急需的求职面试技巧
  4. asp.net 2.0 下的表单验证Cookieless属性
  5. 高精度计算PI值 C语言 思路,高精度计算pi
  6. 前后端整合---请求
  7. eclipse启动tomcat报错:org.apache.logging.log4j.web.Log4jServletContextListener
  8. [Codeforces 100633J]Ceizenpok’s formula
  9. JQuery Easyui/TopJUI 基本树形表格的创建
  10. linux用独显运行steam,修复在Linux系统上与Nvidia不兼容的Steam游戏
  11. 国家地表水水质自动监测站坐标每四小时数据(共1952个监测站,含省份、城市、河流、流域、断面名称、监测时间、水温、pH、DO、CODMn、TP、TN、NH3-N、浊度等)
  12. 微信支付申请相关问题
  13. linux美元符号含义
  14. SQLite实现获取本机短信数据
  15. 如何快速定位 Redis 热 key?
  16. rails--图片的使用
  17. 王者荣耀账号转服务器,王者荣耀安卓IOS怎么转换-帐号转区方法介绍
  18. 组FreeNas11.3的一点心得
  19. 服务器线路有几种分类?
  20. OPPO手机wifi信号不好怎么自动切换数据

热门文章

  1. SAP plant and location
  2. Use tcode ST01 to log authorization check
  3. 使用微软Outlook的收件Rule规则自动删除垃圾邮件
  4. 什么是Cadence call
  5. SAP CRM Opportunity订单的文档流Document Flow的一些变体variant
  6. 如何在SAP CRM Fiori My Task应用里创建task
  7. 如何从iTunes里取得移动设备的uuid
  8. 细胞计算机生命游戏,【图片】【20170108 其它內容】【转】生命游戏【三体吧】_百度贴吧...
  9. dot pairs 点_Dott入局欧洲共享单车市场 明年3月伦敦巴黎推出
  10. php 跳转到指定url_PHP想要实现页面跳转功能具体怎么操作?(函数标签示例)...