scipy5.0-integrate-数值积分quad,dblquad,nquad

"""
scipy6.0:integrate积分
马玉华   2019.11.5
2020.5.16复制
"""

import numpy as np
from scipy import integrate

def main():
    #  quad一维积分 ,dblquad二维积分(double quad),nquad 多维积分

    result1 = integrate.quad(lambda x: np.exp(-x), a=0, b=np.inf)  # quad(func,a,b),对函数func从a到b积分。np.inf表示无穷大
    print(result1, type(result1))  # 返回结果为:元组(积分值,误差值)。 因为电脑算的数值积分不同于定积分不定积分,会有一个误差值

    result2 = integrate.dblquad(lambda y, x: x * y ** 3, a=0, b=5, gfun=lambda x: 0,hfun=lambda x: 6)  # ∫_0^6【∫_0^5〖xy^3 ⅆx〗】 ⅆy
    # integral of func(y,x) from x=a..b ,and y=gfun(x)..hfun(x)
    print('积分值,误差值:', result2)

    def f(x, y):  # 积分函数
        return x * y

    def bound_x(y):  # 积分内容边界
        return [0, 1 - 2 * y]

    def bound_y():  # 积分内容边界
        return [0, 0.5]

    result3 = integrate.nquad(f, [bound_x, bound_y])  # nquad(积分函数,积分边界)。 ∫_0^0.5【∫_0^(1-2y)【xyⅆx】】ⅆy
    # 这其中被调用的函数f(x,y)、bound_x(y)均不写括号(),因为我们没有要传入的实参,写了反而会因为没有传入参数而出现错误。bound_y()可写可不写,因为定义的函数中就不需要接收参数
    print(result3)

    """

你可能感兴趣的:(科学计算matplotlib,scipy,sympy)