Scipy中的integrate模块提供了很多数值积分方法,例如,一重积分、二重积分、三重积分、多重积分、高斯积分等等。

下面介绍几种常用的积分函数。

一重积分

SciPy积分模块中,quad函数是一个重要函数,用于求一重积分。例如,在给定的a到b范围内,对函数f(x)求一重积分。

$$\int_a^bf(x)dx$$

quad的一般形式是scipy.integrate.quad(f, a, b),其中f是求积分的函数名称,ab分别是下限和上限。

示例

让我们看一个高斯函数的例子,求0到5范围内的积分。

首先需要定义函数$→f(x)=e^{-x2}$,这可以使用lambda表达式来表示,然后使用quad方法对其求一重积分。

import scipy.integrate
from numpy import exp
f = lambda x:exp(-x**2)
i = scipy.integrate.quad(f, 0, 5)
print(i)

输出

(0.8862269254513955, 2.3183115159980698e-14)

quad函数返回两个值,第一个值是积分的值,第二个值是对积分值的绝对误差估计。

示例

如果积分的函数f带系数参数,即:

$$I(a,b) = \int_01(ax2+b)dx$$

那么a和b可以通过args传入quad函数:

from scipy.integrate import quad

def f(x, a, b):
return a * (x ** 2) + b ret = quad(f, 0, 1, args=(3, 1))
print (ret)

输出

(2.0, 2.220446049250313e-14)

重积分

要计算二重积分、三重积分、多重积分,可使用dblquad、tplquad和nquad函数。

二重积分

dblquad的一般形式是scipy.integrate.dblquad(func, a, b, gfun, hfun),其中,func是待积分函数的名称,ab是x变量的上下限,gfunhfun为定义y变量上下限的函数名称。

示例

求二重积分:

$$\int_0{\frac{1}{2}}dy\int_0{\sqrt[]{1-4y^2}}19xydx$$

我们使用lambda表达式定义函数fgh。注意,在很多情况下gh可能是常数,但是即使gh是常数,也必须被定义为函数。

import scipy.integrate
from numpy import exp
from math import sqrt
f = lambda x, y : 19*x*y
g = lambda x : 0
h = lambda y : sqrt(1-4*y**2)
i = scipy.integrate.dblquad(f, 0, 0.5, g, h)
print (i)

输出

(0.59375, 2.029716563995638e-14)

除了上面介绍的方法外,Scipy的integrate模块中还有许多其他积分方法,例如nquad,用于求多重积分。不过,大部分场景quad和dblquad就够用了。

SciPy 积分的更多相关文章

  1. scipy积分 integral

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/24 15:03 # @Author : zhang chao # @Fi ...

  2. python Scipy积分运算大全(integrate模块——一重、二重及三重积分)

    python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...

  3. 数据分析之scipy常用方法(五)

    1 Scipy简介 Scipy依赖于Numpy Scipy提供了真正的矩阵 Scipy包含的功能:最优化.线性代数.积分.插值.拟合.特殊函数.快速傅里叶变换.信号处理.图像处理.常微分方程求解器等 ...

  4. SciPy 信号处理

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  5. SciPy 统计

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  6. SciPy 线性代数

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  7. SciPy 图像处理

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  8. SciPy 优化

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  9. SciPy 插值

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

随机推荐

  1. locust --hellp

    1. Locust简介 Locust是使用Python语言编写实现的开源性能测试工具,简洁.轻量.高效,并发机制基于gevent协程,可以实现单机模拟生成较高的并发压力. 官网:https://loc ...

  2. cross_val_score 交叉验证与 K折交叉验证,嗯都是抄来的,自己作个参考

    因为sklearn cross_val_score 交叉验证,这个函数没有洗牌功能,添加K 折交叉验证,可以用来选择模型,也可以用来选择特征 sklearn.model_selection.cross ...

  3. word2vec生成后缀名model文件处理

    引入from gensim.models import word2vec 读取test02.model里面的词· model = word2vec.Word2Vec.load('test02.mode ...

  4. hadoop启动报错处理

    1.      hadoop启动报错 1.1.    问题1 util.NativeCodeLoader: Unable to load native-hadoop library for your ...

  5. IVM sdk command

    1.load sdk shell ./auto_load_user.sh 2.查看all端口状态 IVM:0>ifcs show devport 3.查看个别端口状态 IVM:0>ifcs ...

  6. 3 JavaScript正则表达式

    正则表达式:Regular(有规则的) Expression 正则表达式是由一个字符序列形成的搜索模式,可用于文本搜索和文本替换 常见于字符串的search和replace方法 var str = & ...

  7. Servlet 学习(六)

    会话 1.定义 一般意义会话:指两人以上的对话(多用于学习别种语言或方言时) 计算机中的会话:客户端和服务器的通讯 web客户端 A ------>Tomcat web客户端 B ------& ...

  8. Python数据类型-8 集合set

    集合set set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素.集合使用大括号({})框定元素,并以逗号进行分隔.但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ...

  9. 【PAT甲级】1009 Product of Polynomials (25 分)

    题意: 给出两个多项式,计算两个多项式的积,并以指数从大到小输出多项式的指数个数,指数和系数. trick: 这道题数据未知,导致测试的时候发现不了问题所在. 用set统计非零项时,通过set.siz ...

  10. 学习不一样的Vue1:环境搭建

    学习不一样的Vue1:环境搭建  发表于 2017-05-31 |  分类于 web前端|  |  阅读次数 11677 首先 首发博客: 我的博客 项目源码: 源码 项目预览: 预览 因为个人的喜好 ...