SciPy 积分

章节



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_0^1(ax^2+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就够用了。

原文地址:https://www.cnblogs.com/jinbuqi/p/11811145.html

时间: 2024-10-19 14:06:46

SciPy 积分的相关文章

SciPy 插值

章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy 插值 SciPy 输入输出 SciPy 线性代数 SciPy 图像处理 SciPy 优化 SciPy 信号处理 SciPy 统计 插值,是依据一系列的点(xi,yi)通过一定的算法找到一个合适的函数来包含(逼近)这些点,反应出这些点的走势规律,然后根据走势规律求其他点值的过程. scipy.inte

SciPy 输入输出

章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy 插值 SciPy 输入输出 SciPy 线性代数 SciPy 图像处理 SciPy 优化 SciPy 信号处理 SciPy 统计 scipy.io(输入和输出)包用于读写各种格式的文件.scipy.io支持的格式很多,下面列出了几种常用格式: Matlab IDL Matrix Market Wav

SciPy 基础

SciPy以NumPy为基础,提供了应用更加广泛的科学计算工具. 其在以下方面有着优秀的函数库: 1.线性代数 2.数值积分 3.插值 4.优化 5.随机数生成 6.信号处理 7.其他 与NumPy一样,SciPy有着稳定,成熟,且应用广泛的数值运算库. 许多SciPy函数仅仅是给诸如LAPACK,BLAS这样的Fortran数值计算工业标准库提供了接口. 在本文中,我们仅仅讨论一些常用的函数和特性,不做深入讨论. 一·SciPy与NumPy 由于SciPy以NumPy为基础,那么import

windows下python安装matplotlib、Numpy和Scipy模块

Scikit-learn运行需要matplotlib.Numpy和Scipy等模块,python的包的资源链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/ Pip python包以前提供exe文件和wheel文件,但是最近只提供wheel文件,需要安装setuptools,安装pip,先下载两个文件 ez_setup.py和get-pip.py这两个文件,在cmd下运行. 安装pip需要在Python的官网上去下载,下载地址是:https://pypi.

数据分析(4):Scipy

科学计算 最小二乘leastsq # -*- coding: utf-8 -*- def func(x,p): # p 参数列表 A,k,theta = p; # 可以一一对应赋值 return A*np.sin(2*np.pi*k*x+theta) # 可以批量运算 def residuals(p,y,x): return y-func(x,p) x1: 实验数据 y1: 实验数据 p0: 参数初值 plsq = leastsq(residuals, p0, args=(y1,x1)) pri

windows下安装python科学计算环境,numpy scipy scikit等

背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器学习模块,包括分类.回归.聚类系列算法,主要算法有SVM.逻辑回归.朴素贝叶斯.Kmeans.DBSCAN等,目前由INRI 资助,偶尔Google也资助一点. SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化.线性代数.积分.插值.特殊函数.快速傅里叶变换.信号处理和图像处理.常微分方程求解和其他科学与工程中常用的计算.其功能与软件MA

『Python』Numpy学习指南第十章_高端科学计算库scipy入门(系列完结)

简介: scipy包包含致力于科学计算中常见问题的各个工具箱.它的不同子模块相应于不同的应用.像插值,积分,优化,图像处理,,特殊函数等等. scipy可以与其它标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算库),或者Matlab工具箱.scipy是Python中科学计算程序的核心包;它用于有效地计算numpy矩阵,来让numpy和scipy协同工作. 在实现一个程序之前,值得检查下所需的数据处理方式是否已经在scipy中存在了.作为非专业程序员,科学家总是喜欢重新发明造轮子

使用Numpy和Scipy处理图像

Image manipulation and processing using Numpy and Scipy 翻译自:http://scipy-lectures.github.com/advanced/image_processing/index.html 作者:Emmanuelle Gouillart, Ga?l Varoquaux 图像 = 2-D 数值数组 (或者 3-D: CT, MRI, 2D + 时间; 4-D, ...) 这里 图像 == Numpy数组 np.array 这个教

1.5 Scipy:高级科学计算

医药统计项目可联系 QQ:231469242 http://www.kancloud.cn/wizardforcel/scipy-lecture-notes/129867 作者:Adrien Chauve, Andre Espaze, Emmanuelle Gouillart, Ga?l Varoquaux, Ralf Gommers Scipy scipy包包含许多专注于科学计算中的常见问题的工具箱.它的子模块对应于不同的应用,比如插值.积分.优化.图像处理.统计和特殊功能等. scipy可以