不同区域的数值积分、求积
quadp的Python项目详细描述
您在python中进行数字集成的一站式服务。
< < > >1500多种数值积分格式 线段, 圆圈, 磁盘, 三角形, 四边形, 球体, 球, 四面体, 六面体, 楔子, 金字塔, n-spheres, n-balls, n-cubes, n-simpleces,以及 具有权重函数exp(-r)和exp(-r2的1d/2d/3d/nd空间 用于快速集成真实的、复杂的-,和向量值函数。
例如,要对任何给定三角形上的任何函数进行数值积分,请安装 从python包索引中的quadpy使用
pip3 install quadpy --user
并执行
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)
这使用了6级的Strang规则 所有方案都有 很多人有 quadpy是完全矢量化的,所以如果你想计算一个函数在许多
域,您可以一次提供它们在一个 具有矢量化输出的函数也是如此,例如 更多示例请参见test/examples\test.py 阅读有关输入/输出数组维度的更多信息
维基scheme.pointsscheme.weightsscheme.degreescheme.citationscheme.show()scheme.integrate(# ...)
scheme.points_symbolicscheme.weights_symbolic
integrate()
调用中,例如,# shape (3, 5, 2), i.e., (corners, num_triangles, xy_coords)triangles=numpy.stack([[[0.0,0.0],[1.0,0.0],[0.0,1.0]],[[1.2,0.6],[1.3,0.7],[1.4,0.8]],[[26.0,31.0],[24.0,27.0],[33.0,28]],[[0.1,0.3],[0.4,0.4],[0.7,0.1]],[[8.6,6.0],[9.4,5.6],[7.5,7.4]]],axis=-2)
deff(x):return[numpy.sin(x[0]),numpy.sin(x[1])]
高级主题:
方案
线段
- 切比雪夫高斯(两个变量,任意度数)
- 克伦肖柯蒂斯(后 沃尔德沃格尔,任意学位)
- FEJér-type-1(之后 沃尔德沃格尔,任意学位)
- fejér-type-2(之后 沃尔德沃格尔,任意学位)
- 高斯雅可比
- Gauss Legendre(通过 numpy,任意度数)
- 高斯-洛巴托(任意度数)
- gauss kronrod(在laurie之后,任意度数)
- 高斯-帕特森(最高767度的9个嵌套方案)
- 高斯雷达(任意度数)
- 闭牛顿cotes(任意度)
- 开牛顿曲线(任意度数)
- tanh-sinh正交 (见上文)
示例:
importnumpyimportquadpyscheme=quadpy.line_segment.gauss_patterson(5)scheme.show()val=scheme.integrate(lambdax:numpy.exp(x),[0.0,1.0])
具有权重函数exp(-r)
的1d半空间- 广义gauss-laguerre
示例:
importquadpyscheme=quadpy.e1r.gauss_laguerre(5,alpha=0)scheme.show()val=scheme.integrate(lambdax:x**2)
具有重量函数exp的1d空间(-r2)
- 高斯-埃尔米特(通过 numpy,任意度数)
- genz keister(1996年,8个67级嵌套方案)
示例:
importquadpyscheme=quadpy.e1r2.gauss_hermite(5)scheme.show()val=scheme.integrate(lambdax:x**2)
圆圈
- krylov(1959年,任意度数)
示例:
pip3 install quadpy --user
0
三角形
除了经典的质心、顶点和七点格式外,我们还有
- 锤子马洛·斯特劳德 (1956年,5个方案达到5级,也出现在Hammer Stroud)
- 开放和封闭牛顿cotes方案(1970年,在西尔维斯特之后,任意度数),
- 通过stroud(1971年):
- albrecht collatz(1958年,学位3)
- 锥形积方案(7度)
- franke(1971年,2个7级课程)
- 绞合固定装置 学位7),
- lyness jespersen(1975年,21 11级以下的计划,其中两个用于triex中,
- 让她(1976,2N-2级,任意 n,不对称;在 2007年,Rathod Nagaraja Venkatesudu,
- hillion(1977年,10个方案 学位3),
- grundmann-möller(1978年,任意学位),
- 劳森·盖勒特(1978,17) 10级以下计划),
- cubtri(劳里,1982,8度),
- dunavant(1985年,20个计划 20度),
- 冷却海格曼人(1987年, 8度和11度),
- 盖茨曼(1988,7级)
- Berntsen Espelid(1990,4个13级课程,第一个是 dcutri),
- 刘维诺库(1998,13个方案 达到5级),
- Griener Schmid,(1999,2个学位方案6),
- 沃金顿 (2000年,5个方案,5级以下),
- Wandzura Xiao(2003年,6月 30度以下课程,
- Taylor Wingate BOS(2005年,5个计划 14级),
- 张翠柳(2009,3个方案 学位20),
- 肖吉布塔斯(2010年,50 50度以下的课程,
- Vioreanu Rokhlin(2014年,20 高达62度的课程,
- 威廉姆斯·舒恩·詹姆森(Williams Shunn Jameson)(2014年8月 12级以下课程,
- 威瑟顿·文森特(2015年,19月 学位以下的课程,
- 帕帕尼科洛普洛斯(2016,27 最高25级课程)。
示例:
pip3 install quadpy --user
1
磁盘
- peirce(1957,任意学位)
- 通过stroud:
- 氡(1948年,5度)
- 皮尔斯 (1956年,3个方案,11级以下)
- albrecht collatz(1958年,学位3)
- Hammer Stroud(1958年,8个方案,最高学位15)
- albrecht(1960年,8个方案,最高学位17)
- mysovskih(1964年,3个方案,最高学位15)
- Rabinowitz Richter(1969年,6个方案,15级以上)
- 让她(1971年,任意学位)
- Piessens Haegemans(1975年,1个学位方案9)
- Haegemans Piessens(1977年,9级)
- 冷却Haegemans(1985年,3个方案达到9级)
- Wissmann Becker(1986年,3个方案,最高8级)
- 冷却Kim(2000年,3个方案,最高学位21)
示例:
pip3 install quadpy --user
2
四边形
- 锤子斯特劳德(1958,3 7级以下计划)
- 通过stroud(1971年,15个方案,15级以下):
- 麦克斯韦(1890,7级)
- 伯恩赛德(1908,5度)
- irwin(1923年,3个方案,最高5级)
- 泰勒(1953年,3个方案,7级以上)
- albrecht collatz(1958年,4个方案达到5级)
- 米勒(1960,学位1)
- 梅斯特(1966年,7级)
- 菲利普斯(1967年,7级)
- Rabinowitz Richter(1969年,6个方案,15级以上)
- franke(1971年,9级以下10个计划)
- Piessens Haegemans(1975年,2个9级课程)
- Haegemans Piessens(1977年,7级)
- 施密德(1978年,3个方案,最高学位6)
- 冷却Haegemans(1985年,3个方案达到13级)
- Dunavant(1985年,11个方案,直至19级)
- Morrow Patterson(1985年,2个高达20度的方案,单精度)
- Cohen Gismalla,(1986年,2个方案达到3级,单精度)
- Wissmann Becker(1986年,6个方案,最高学位8)
- 冷却海格曼人(1988年,2个方案,最高学位13)
- waldron(1994年,3级的无限多方案)
- 威瑟顿·文森特(Witherden Vincent)(2015年,11个方案,最高学位21)
- Sommariva(2012年,55级以下的55个计划)
- 线段方案的产品
- n-立方中的所有公式
示例:
pip3 install quadpy --user
3
在形状数组(2,2,…)中指定点,以便arr[0][0]
是左下角,arr[1][1]
右上角。如果你的四边形
它的边与坐标轴对齐,可以使用
函数
pip3 install quadpy --user
4
生成数组。
具有权重函数exp(-r)
的二维空间- 通过stroud(1971年):
- Stroud Secrest(1963年,2个方案,7级以上)
- Rabinowitz Richter(1969年,4个方案,最高学位15)
- 4级方案
- Haegemans Piessens(1977年,2个9级以上的计划)
示例:
pip3 install quadpy --user
5
具有权重函数exp的二维空间(-r2)
- 通过stroud(1971年):
- stroud secrest(1963年,2个方案达到7级)
- Rabinowitz Richter(1969年,5个方案,15级以上)
- 3个方案,最高7度
- Haegemans Piessens(1977年,2个9级课程)
示例:
pip3 install quadpy --user
6
球体
- 通过stroud(1971年):
- albrecht collatz(1958年,5月 7级以下计划)
- 迈凯轮(1963年,10个方案,14级以下)
- lebedev(1976年,34 131级以下课程)
- ba_ant oh(1986年,3个方案,最高学位11)
- Heo Xu(2001,27个计划 39度,单精度)
- fliege maier(2007年,4个计划 达到4级,单精度)
示例:
pip3 install quadpy --user
7
球面上的积分也可用于定义在球面上的函数 坐标:
pip3 install quadpy --user
8
球
- Hammer Stroud(1958年,6个方案达到7级)
- 通过:stroud(1971年):
- 迪特金(1948年,3个方案,最高学位7)
- mysovskih(1964,7级)
- 2个14级方案
示例:
pip3 install quadpy --user
9
四面体
- 锤子马洛·斯特劳德 (1956年,3个方案达到3级,也出现在Hammer Stroud)
- 打开和关闭Newton Cotes(1970年,在西尔维斯特(任意度数)
- stroud(1971,7级)
- grundmann-möller(1978年,任意学位),
- yu(1984年,5个方案,最高学位6)
- keast(1986年,10个8级以上的计划)
- 贝克尔斯·海格曼(1990年,8和9级)
- gatermann(1992年,5级)
- liu vinokur(1998年,14个方案 学位5)
- 沃金顿 (2000年,6个方案EE 7)< /李>
- 张翠柳(2009,2个方案 学位14)
- 肖吉布塔斯(2010,15 15级以下课程)
- 顺恩•汉姆(2012年,6个方案 学位7)
- Vioreanu Rokhlin(2014年10月) 高达13级的计划)
- 威廉姆斯·舒恩·詹姆森(Williams Shunn Jameson)(2014年,1) 学位计划9)
- 威瑟顿·文森特(2015年,9月 10级以下计划)
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)0
六面体
- 从线段方案导出的产品方案
- 通过:stroud(1971年):
- 萨多斯基(1940年,5级)
- 泰勒(1953年,2个方案,最高学位5)
- 锤子怀莫尔(1957,7级)
- albrecht collatz(1958年,学位3)
- Hammer Stroud(1958年,6个方案达到7级)
- 芥末莱纳斯布拉特(1963年,6个方案达到5级)
- 斯特劳德(1967年,5级)
- Sarma Stroud(1969年,7级)
- n-立方中的所有公式
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)1
棱锥体
- 费利帕(9个方案,最高学位5)
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)2
楔块
- felippa(6个方案,最高学位6)
- kubatko yeager maggi(21个方案 9级以下)
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)3
具有权重函数exp(-r)
的三维空间- 通过stroud(1971年):
- Stroud Secrest(1963年,5个方案,7级以下)
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)4
具有权重函数exp的三维空间(-r2)
- 通过stroud(1971年):
- Stroud Secrest(1963年,7个方案,7级以上)
- 学位计划14
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)5
N-单工
- 通过stroud:
- grundmann-möller(1978年,任意学位)
- 沃金顿(Walkington)(2000年,5个方案,最高学位7)
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)6
n-球体
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)7
N-球
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)8
N立方体
示例:
importnumpyimportquadpydeff(x):returnnumpy.sin(x[0])*numpy.sin(x[1])triangle=numpy.array([[0.0,0.0],[1.0,0.0],[0.7,0.5]])val=quadpy.triangle.strang_fix_cowper_09().integrate(f,triangle)9
带权函数exp(-r)的nd空间
- 通过stroud(1971年):
示例:
scheme.pointsscheme.weightsscheme.degreescheme.citationscheme.show()scheme.integrate(# ...)0
具有权重函数exp的nd空间(-r2)
- 通过stroud(1971年):
- 斯特劳德·塞克雷斯特(1963年,4个方案,最高5级)
- stroud(1967年,2个5级方案)
- stroud(1967年,3个7级课程)
- stenger(1971年,6个方案达到11级,不同维度限制)
- 5个方案,最高5度
示例:
scheme.pointsscheme.weightsscheme.degreescheme.citationscheme.show()scheme.integrate(# ...)1
安装
quadpy可以从python包索引中获得,因此使用
pip3 install quadpy --user
您可以安装。
测试
要运行测试,只需签出此存储库并键入
scheme.pointsscheme.weightsscheme.degreescheme.citationscheme.show()scheme.integrate(# ...)3
许可证
Quadpy在麻省理工学院许可证下发布。