python 二重积分_Python机器学习(五十七)SciPy 积分

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

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

一重积分

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

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

示例

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

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

importscipy.integratefrom numpy importexp

f= lambda x:exp(-x**2)

i= scipy.integrate.quad(f, 0, 5)print(i)

输出

(0.8862269254513955, 2.3183115159980698e-14)

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

示例

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

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

from scipy.integrate importquaddeff(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是待积分函数的名称,a、b是x变量的上下限,gfun、hfun为定义y变量上下限的函数名称。

示例

求二重积分:

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

importscipy.integratefrom numpy importexpfrom math importsqrt

f= lambda x, y : 19*x*y

g= lambdax : 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就够用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值