Python学习-Scipy库求积分函数、微分函数
积分integrate 面积:通用积分函数quad();体积:通用双积分函数dblquad()
目录
1、通用积分函数quad(),求半圆面积 x2+y2=r^2
2、通用双积分函数dblquad(),求球体体积
3、复合梯形积分 integrate.trapz()
4、求解常微分方程 solve_ivp()
导入库
from scipy import integrate
import matplotlib.pyplot as plt
import numpy as np
1、通用积分函数quad(),求半圆面积 x2+y2=r**2
参数介绍: func: 指定被积函数 a,b: 积分上下限 args: 指定传递给func函数的参数,元组 full_output: 设置非0,返回积分操作相关信息,默认为0 … 返回值: y: 积分的结果值 abserr: 估计结果中的绝对误差 message: 收敛信息 explain: 仅附加’cos’和’sin’加权和无限积分限制的相关解释信息
# 1、通用积分函数quad()
"""
参数介绍:
func: 指定被积函数
a,b: 积分上下限
args: 指定传递给func函数的参数,元组
full_output: 设置非0,返回积分操作相关信息,默认为0
...
返回值:
y: 积分的结果值
abserr: 估计结果中的绝对误差
message: 收敛信息
explain: 仅附加'cos'和'sin'加权和无限积分限制的相关解释信息
"""
# 求半圆面积 x^2+y^2=r^2
a = -2 # 积分下限
b = 2 # 积分上限
def m_circle(x, r):
return np.sqrt(r**2 - x**2)
area1, _ = integrate.quad(m_circle, a, b, 2)
print(area1)
plt.figure(num=1, figsize=(5, 5))
plt.rc('font', family='simhei', size=15) # 设置中文显示,字体大小
plt.rc('axes', unicode_minus=False) # 该参数解决负号显示的问题
x = np.linspace(-2, 2, 180)
y = np.sqrt(4-x**2)
plt.plot(x, y, 'm', lw=2)
plt.fill(x, y, color='m', alpha=0.7)
plt.title('单位半圆面积为'+'{:.2f}'.format(area1))
plt.show()
输出
6.283185307179593
2、通用双积分函数dblquad(),求球体体积
参数介绍: func: 含两个变量的被两重积分函数,第一参数y,第二参数x a,b: 指定x中的积分限制a |