python用quad、dblquad实现一维二维积分的实例详解


Posted in Python onNovember 20, 2019

背景:

python函数库scipy的quad、dblquad实现一维二维积分的范例。需要注意dblquad的积分顺序问题。

代码:

import numpy as np
from scipy import integrate
 
 
def half_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)
 
 
"""
多重定积分:注意积分顺序
"""
def half_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 = V x in [0,2] :V y in [-g(x),h(x)]
"""
V3,err = integrate.dblquad(half_sphere,0,2,lambda x:-half_circle(x),lambda x:half_circle(x))
print("========%s==========="%"dblquad")
print("体积:%f"%V3)

结果:

========
=========梯形法==========
面积:1.570638
=========quad==========
面积:1.570796
========dblquad===========
体积:2.094395

以上这篇python用quad、dblquad实现一维二维积分的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python命令行参数sys.argv使用示例
Jan 28 Python
python抓取网页时字符集转换问题处理方案分享
Jun 19 Python
深入解析Python中的线程同步方法
Jun 14 Python
Python变量类型知识点总结
Feb 18 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
pandas to_excel 添加颜色操作
Jul 14 Python
运行Python编写的程序方法实例
Oct 21 Python
python中time tzset()函数实例用法
Feb 18 Python
一行Python命令实现批量加水印
Apr 07 Python
利用python实现AR教程
Nov 20 #Python
使用python实现画AR模型时序图
Nov 20 #Python
Python笔记之工厂模式
Nov 20 #Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 #Python
将python2.7添加进64位系统的注册表方式
Nov 20 #Python
10个Python面试常问的问题(小结)
Nov 20 #Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 #Python
You might like
php简单实现快速排序的方法
2015/04/04 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP数组操作类实例
2015/07/11 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
python批量下载图片的三种方法
2013/04/22 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python应用库大全总结
2018/05/30 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
django中media媒体路径设置的步骤
2019/11/15 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
30岁生日感言
2014/01/25 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
设计师求职信
2014/07/01 职场文书
党性分析材料格式
2014/12/19 职场文书
优秀团员事迹材料
2014/12/25 职场文书
2016党校培训心得体会
2016/01/07 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers