问题标签 [quad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
246 浏览

python - 使用 scipy.integrate.quad 并行计算矩阵元素

我必须使用具有数值积分的函数(scipy.integrate.quad)来评估矩阵的每个元素。矩阵的元素是 5202x3465 灰度图像的像素。
我可以使用 GPU,我想并行评估尽可能多的元素,因为现在,使用线性编程,整个计算需要超过 24 小时。
这是示例代码:

我尝试像这样使用多处理(作为 mp):

或使用 img = pool.map(myFunc(constant_args), (arows, acolumns))
但它给了我:
TypeError: myFunc() missing 2 required positional arguments: 'j' 和 'i'

我不了解其他示例的工作原理,也不知道文档中使用的术语。
我只想将该嵌套循环划分为子线程,如果有人提出不同的方法,我会全力以赴。
附言。我尝试使用 numba,但在与一些 Scipy 库交互时会出错

预先感谢您的帮助!

0 投票
2 回答
672 浏览

python - (如何)Scipy 可以有效地将函数与数组值参数集成(没有循环)?

我想使用有效的(矢量化/并行化)方法集成一个采用数组参数的函数。

我可以在代码中使用不需要的循环来获得所需的输出,如下面的(降低复杂性)示例所示:

但是,我的实际函数需要处理更大的数组输入,这会导致计算持续时间过长。

我尝试了以下变化,并获得了知识(如对此问题的评论中所述),vec_func=True选项scipy.integrate.quadrature实际上并不能将向量值参数作为参数传递到正在集成的函数中。[旁白:这使得它与 MATLABintegral函数完全不同,该选项ArrayValued, true确实启用了该功能,这导致对积分进行更快、明显并行化的评估。]

如何使用 Scipy 集成数组参数函数而不使用循环?

0 投票
1 回答
111 浏览

python - python中的无效语法错误,编写f(x)= 6x *(1-x)的正确方法是什么?

所以我对 Python 很陌生,我还不习惯这种语法。这可能是一个简单的问题,但话说回来,我是新手,所以我不知道写这个的正确方法是什么。我应该将 f(x)= 6x*(1-x) 与区间 [0,1] 集成,但是在编写代码时出现语法错误。我尝试更改括号,但仍然出现相同的错误。同样,我知道这可能非常简单,但我仍在尝试习惯 Python,因此非常感谢您的帮助。

0 投票
1 回答
34 浏览

scipy - Scipy.quad 的问题

我一直在尝试使用需要在 sigma 中集成的 Python 代码来处理我的项目。我收到以下错误,尽管尝试了多种方法,但我无法解决它。您可以在下面找到我的代码的较短版本,用于错误重复。

如果积分的下限为零或正数,则代码可以毫无问题地运行。如果它是否定的代码给出错误...

0 投票
2 回答
463 浏览

python - 将多变量函数的积分定义为第二个函数python

将多变量函数的积分定义为第二个函数python

我正在使用 python 仅对一个变量集成一个多变量函数(它是 x 和 theta 的函数,我正在对从 0 到 2*pi 的 theta 进行积分,因此结果是 x 的函数)。我尝试了以下方法:

我收到以下错误:

我认为这是因为四元积分器的结果是一个包含两个元素的数组,而 python 不喜欢基于索引数组定义函数?不过,这是对问题的完整猜测。如果有人知道我如何解决这个问题并可以让我知道,那就太好了:)


第二次尝试

我已经成功地使用以下代码获得了积分图:

积分图

但这并没有给出 A(x) 作为函数,由于我定义它的方式,它需要一个数组形式的输入。我需要该函数与 aIntegrand 具有相同的形式,其中当给定参数返回单个值时,该函数可以重复集成。

0 投票
1 回答
78 浏览

python - 将 linspace 向量发送到函数会使向量在函数开始之前全为零

我一直在研究一种用于在并行处理中反转拉普拉斯变换的算法(即同时集成 s 空间中的多个拉普拉斯函数),但我知道并行处理不是问题,因为这种方法为解决问题而实施。但是问题仍然存在,基本上我的代码一遍又一遍地吐出这个:

以及各种域错误。我指出了问题所在。基本上是这样的:

u当被传递给我想要集成的任何函数时,变为全零。不确定它是否是集成功能:

或拉普拉斯函数f_p本身,但我已经尝试了所有方法,我不能浪费更多时间旋转我的轮子。我会很感激我能得到的任何帮助。这是运行第一个拉普拉斯反演所需的代码:

0 投票
1 回答
149 浏览

python - 带有“quad”和“args”的积分 - 杨氏双缝干涉仪

我必须使用 Python 中的“quad”和“args”积分来解决“Fringes of Young”问题

在此处输入图像描述

对于源大小 R,屏幕上 M(X,Y) 的强度公式如下:

在此处输入图像描述

源点 S 的坐标(xs=0,ys)-R/2<=ys<=R/2

我需要创建一个函数来I(X,Y,R)使用“quad”的“args”计算强度。然后,绘制I(0,Y,10e-6)介于 -0.01 和 0.01 之间的 Y,还有I(0,Y,0.002),I(0,Y,0.003),I(0,Y,0.004). 知道我的错在哪里吗?

我的代码:

结果 :

在此处输入图像描述

预期的 :

在此处输入图像描述

我还想绘制(使用带有参数的imshow:cmp(gray),vmin,vmax)对应于I(X,Y,1e-06)的2D图像。(X 在 -10 到 10 之间)。

0 投票
0 回答
37 浏览

model - 具有四边形和可变边界的最小二乘

对于我的硕士论文,我正在尝试实现一个代码来评估时间和温度的测量数据,然后用最小二乘法计算变量。问题是 Python 似乎没有改变积分边界中的变量。该模型基于热响应测试的移动线源,如果有人熟悉的话。代码如下所示:

所以我需要为coeffs[0]and获得一个很好的价值coeffs[1]。问题是 Python 只更改了coeffs[1]. 是否有更好的方法来实现模型女巫改变每个时间步长的积分边界?我想,我对四边形和/或最小二乘的工作方式有误。

0 投票
1 回答
155 浏览

arrays - 为什么我定义的函数不接受数组作为输入?

我正在使用双积分,并且内部积分具有可变界限。我编写了一个函数,使用 SciPy 的四元积分,它允许我评估这个积分。但是,我想要的只是评估内部积分,这样我剩下的就是一个关于某个变量的单个、未评估的积分。然后我想绘制这个“中途”评估的双积分与该变量的范围,以便我可以看到一些趋势。但是,当我输入该变量的数组时(它只是 0-10000,但增量为 1,它会提供以下错误消息:

“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”

在此之前我已经定义了函数,允许我输入一个数组(它在数组中的许多点输出该函数),所以我不确定为什么现在会弹出这个消息。我认为这与我在定义函数时使用 SciPy 的“quad”集成有关。我该如何解决这个问题以便我可以输入一个数组?

附件是完整错误消息的图片

0 投票
1 回答
1058 浏览

python - 使用 quadpy 集成的问题

我正在尝试使用quadpy,因为我想对 2D 积分进行 2D 数值矢量积分。为了了解工作速度有多快quadpy,我想对其进行测试并将其与scipy一维矢量积分进行比较。于是我写了一个简单的代码:

没有使用 quadpy 的经验,我收到以下错误: