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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。