python用quad、dblquad实现一维二维积分的实例详解
背景:
python函数库scipy的quad、dblquad实现一维二维积分的范例。需要注意dblquad的积分顺序问题。
代码:
importnumpyasnp
fromscipyimportintegrate
defhalf_circle(x):
"""
原心:(1,0),半径为1
半圆函数:(x-1)^2+y^2=1
"""
return(1-(x-1)**2)**0.5
"""
梯形法求积分:半圆线和x轴包围的面积
"""
N=10000
x=np.linspace(0,2,num=N)#,endpoint=True)
dh=(2-0)/N
y=half_circle(x)
"""
梯形法求积分:(上底+下底)*高/2
"""
S=sum((y[1:]+y[:-1])*dh/2)
print("=========%s=========="%"梯形法")
print("面积:%f"%S)
"""
直接调用intergrate的积分函数quad
"""
S2,err=integrate.quad(half_circle,0,2)
print("=========%s=========="%"quad")
print("面积:%f"%S2)
"""
多重定积分:注意积分顺序
"""
defhalf_sphere(y,x):
"""
球心:(1,0,0)
半径:1
半球:(x-1)^2+y^2+z^2=1
"""
return(1-(x-1)**2-y**2)**0.5
"""
积分顺序:
v=Vxin[0,2]:Vyin[-g(x),h(x)]
"""
V3,err=integrate.dblquad(half_sphere,0,2,lambdax:-half_circle(x),lambdax:half_circle(x))
print("========%s==========="%"dblquad")
print("体积:%f"%V3)
结果:
========
=========梯形法==========
面积:1.570638
=========quad==========
面积:1.570796
========dblquad===========
体积:2.094395
以上这篇python用quad、dblquad实现一维二维积分的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。