不同区域的数值积分、求积

quadp的Python项目详细描述


quadpy

您在python中进行数字集成的一站式服务。

< < > >

circlecicodecov代码样式:blackawesomepypi versiondoigithub starspypi downloads/P>

1500多种数值积分格式 线段圆圈磁盘三角形四边形球体四面体六面体楔子金字塔n-spheresn-ballsn-cubesn-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规则

所有方案都有

scheme.pointsscheme.weightsscheme.degreescheme.citationscheme.show()scheme.integrate(# ...)

很多人有

scheme.points_symbolicscheme.weights_symbolic

quadpy是完全矢量化的,所以如果你想计算一个函数在许多 域,您可以一次提供它们在一个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])]

更多示例请参见test/examples\test.py

阅读有关输入/输出数组维度的更多信息 维基

高级主题:

方案

线段

  • 切比雪夫高斯(两个变量,任意度数)
  • 克伦肖柯蒂斯(后 沃尔德沃格尔,任意学位)
  • 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

示例:

importquadpyscheme=quadpy.e1r2.gauss_hermite(5)scheme.show()val=scheme.integrate(lambdax:x**2)

圆圈

  • krylov(1959年,任意度数)

示例:

pip3 install quadpy --user
0

三角形

除了经典的质心、顶点和七点格式外,我们还有

示例:

pip3 install quadpy --user
1

磁盘

示例:

pip3 install quadpy --user
2

四边形

示例:

pip3 install quadpy --user
3

在形状数组(2,2,…)中指定点,以便arr[0][0] 是左下角,arr[1][1]右上角。如果你的四边形 它的边与坐标轴对齐,可以使用 函数

pip3 install quadpy --user
4

生成数组。

具有权重函数exp(-r)

的二维空间

示例:

pip3 install quadpy --user
5

具有权重函数exp的二维空间(-r2

示例:

pip3 install quadpy --user
6

球体

示例:

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

四面体

示例:

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

六面体

示例:

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

棱锥体

示例:

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

楔块

示例:

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)

的三维空间

示例:

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

示例:

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-单工

示例:

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空间

示例:

scheme.pointsscheme.weightsscheme.degreescheme.citationscheme.show()scheme.integrate(# ...)
0

具有权重函数exp的nd空间(-r2

示例:

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在麻省理工学院许可证下发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Square类   java Android RecyclerView内部视图寻呼机   java类变量:公共访问只读,但私有访问r/w   java不兼容ClassChangeError java8   安卓java on on参数,如参数iNIT.C++C++   java如何在下面的代码中根据我的喜好设置JTextArea和JTextField的大小?   java使用CustomAdapter更改ListView的显示方式   jakarta ee什么是Java Servlet?   传递给Javasocket程序的参数   java为什么我的计划任务在这两者之间有很长的延迟   Java“迭代器”关键字   java获取数据库SQLite Android中插入行的行ID   网络如何在Java应用程序中设置H2嵌入式数据库,以便在小型网络中使用?   数组Java:写出所有包含K1的Nbit序列   java返回随机字符串键的整数值   在java中解析到日期的字符串时保留时区   java如何修复“运行配置错误:[在SDK中找不到Rails]”?   Java包装器OutofMemory