2022年 11月 9日

python怎么算积分_python求积分

1.符号积分:#通过integrate()功能(facility),SymPy对基本和特殊函数定与不定积分有卓越的支持。

#该功能使用有力的扩展Risch-Norman算法,启发算法和模式匹配:

from sympy import integrate, exp, sin, log, oo, pi,symbols

x, y = symbols(‘x,y’)#定义符号变量x,y

#求不定积分

integrate(6*x**5, x)

integrate(log(x), x)

#求定积分

integrate(x**3, (x, -1, 1))

#反常积分

integrate(exp(-x), (x, 0, oo))

#运行结果:x**6,x*log(x) – x,0,1

2.数值积分:

#符号积分与数值积分各有优劣,下面介绍数值积分

from scipy import integrate#导入数值积分模块

import numpy as np

#读者可以dir(integrate)来查看里面有哪些数值积分函数并help他们的用法

#quad命令(该命令使用了Fortran library QUADPACK)

f=lambda x:x**3#注意这里匿名函数的用法,不懂请百度

integrate.quad(f,-1,1) #(0.0, 5.551208455924673e-15)后面那个超小的是浮点运算产生的误差

#fixed_quad命令(使用fixed-order Gaussian quadrature)

f=lambda x:np.exp(-x)

integrate.fixed_quad(f,0,1) #(0.63212055882831653, None)

#trapz(复化梯形求积分)

f=lambda x:np.exp(-x)

x=np.linspace(0,1,10)

integrate.trapz(f(x),x) #0.63277075484819789

#simps(抛物线求积公式)

def f(x):

return

np.exp(-x)

x=np.linspace(0,1,10)

integrate.simps(f(x),x) #0.63219734897921753

#romberg(龙贝格求积)

f=lambda x:np.exp(-x)

integrate.romberg(f,0,1) #0.63212055882856977