问题标签 [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 投票
1 回答
855 浏览

scipy - 使用 SciPy 的四边形通过积分到奇点正下方和正上方来获得积分的主值

我正在尝试计算 [Ecut, inf] 上 1/((s - q02)*(s - q2)) 的积分(超过 s)的主值,其中 q02 < Ecut < q2。用手(或 Mathematica)做 Principle 值,得到一般结果

ln((q2-Ecut)/(Ecut-q02)) / (q02 -q2)

在下面的具体示例中,结果为 -1.58637*10^-11。通过将积分一分为二,积分到 q2 - eps 然后从 q2 + eps 开始,然后将两个结果相加(应该消除分歧),也应该能够得到相同的结果。通过使 eps 越来越小,应该可以恢复上述结果。当我使用 quad 在 scipi 中实现这一点时,我的结果会收敛到错误的结果 6.04685e-11,正如我在 eps 与我所包含的积分结果的图中所示。
为什么quad会这样做?即使我有 eps = 0 它给了我这个错误的结果,当我希望它在事情爆炸时给我一个错误......

每股收益与积分结果

0 投票
0 回答
398 浏览

python - 非线性磁模型拟合 - 使用 scipy.integrate.quad 和 lmfit

我想使用包括朗之万函数和对分布函数 [ 1 ]的磁模型来拟合具有超顺磁行为的磁滞曲线。为了适应这个方程,我必须求解一个定积分。我试图为此目的使用 scipy.integrate.quad 和 lmfit 的功能,但我没有得到 - 至少 - 来模拟合理的曲线(参见下面的代码)。可以用来模拟这个方程的一些实际物理参数是:Dm = 3.2E-9 m,w = 0.26,NT = 1.7E12,kB=1.38E-23 J/K 和 T=300K。使用此值进行模拟必须产生超顺磁曲线,如下面的链接中包含的那样。我将不胜感激任何使此代码工作并改进它的建议。

朗之万方程与 PDF

www.dropbox.com/pri/get/superpara.dat?_subject_uid=197016565&w=AADkHqW1w-gE9pQkG0oLoE7tNG1J-rWxN0lcIM9ioXWiLA

0 投票
0 回答
109 浏览

python - 为什么我的代码在 Mathematica 中运行良好,但在翻译成 python 时却不起作用?

我正在尝试模拟一个非常用于分析磁性材料的模型。最初,我用python写了这段代码,但没有得到结果;然后,我决定使用 Mathematica 进行相同的模拟 [ 1 ] 并且它似乎工作正常,至少它显示了与预期相似的曲线,但是当它被转换为 python 时(使用 lmfit 包和 scipy.integrate.quad)它只显示一条线。我还应该考虑什么才能让它在 python 中正常工作?

数学代码

这是我所拥有的:

任何帮助,将不胜感激。谢谢!

0 投票
1 回答
2957 浏览

python - 使用 scipy 的 quad 例程将函数与奇点集成

我正在使用quad函数 fromscipy.integrate v0.19.1在积分区间的每一端对具有平方根的奇异点进行积分,例如

(我使用sqrt来自 的函数numpy v1.12.0)立即产生正确的结果 pi:

根据quad函数的文档,该关键字points应用于指示被积函数的奇异点或不连续点的位置,但如果我指出[1, -1]上述被积函数为奇异点的点,我会收到警告,nan结果是:

有人可以澄清一下,如果指定了被积函数的奇点,为什么quad会产生这些问题,如果没有指出这些点就可以正常运行?

编辑: 我想我找到了解决这个问题的正确方法。对于其他人遇到类似问题的情况,我很快想分享我的发现:

我想将形式的函数与f(x)*g(x)平滑函数积分,并且积分限制在哪里,并且在这些限制处具有奇异性,如果,那么您应该只使用作为加权函数进行积分。对于例程,这可以使用和参数。通过这些参数,您还可以处理不同种类的奇点和有问题的振荡行为。上面定义的加权函数可以通过设置和使用来指定 中的指数。f(x)g(x) = (x-a)**alpha * (b-x)**betaabg(x)alpha, beta < 0f(x)g(x)quadweightwvarg(x)weight='alg'wvar=(alpha, beta)g(x)

因为1/sqrt(1-x**2) = (x+1)**(-1/2) * (1-x)**(-1/2)我现在可以按如下方式处理积分:

pi无论我是否使用参数,它都会以非常高的准确性产生正确的答案points=(-1, 1)(据我所知,只有在无法通过选择适当的加权函数来处理奇点/不连续性时才应该使用该参数) )。

0 投票
1 回答
139 浏览

python - 如何反转 scipy quad 函数以传入弧长并接收 (t) 的值?

如果我要运行类似于下面的代码,其中我将椭圆的次弧和主弧传递为 3.05 和 2.23,弧形成 50 度角,我如何能够将 2.531432761012828 的输出作为弧长度并将其传回以求解 t? 谢谢!

最后一个的输出是:(2.531432761012828, 2.810454936566873e-14)

0 投票
2 回答
655 浏览

python - 使用python最小化函数进行数据拟合

我有如下功能

我有上述方程的实验答案,一旦我必须将一些数据放入上述函数并求解下面的方程

zerr并且q_exp在数据文件(2.txt)中。现在我必须选择一个范围o_m (0.2 to 0.4)并在什么中找到o_m,该chi功能将被最小化。

我的代码是:

n[1], n[2], n[3],n[4]z1, z2,q_experr, 分别在数据文件中。和是积分范围z1z2我需要您的帮助,感谢您的时间和关注。请不要评价负值。我需要你的答案。

0 投票
1 回答
1256 浏览

python - IndexError:元组索引超出范围,尝试整合函数时出错

我正在尝试计算 function 的值f_integ,这是 functionf从 0 到x_v.

当我运行它时,我收到以下错误:

我知道quad()返回一个元组,但我不知道如何将一个数字作为参数放在积分结果中。我是Python新手,请帮忙。

0 投票
1 回答
234 浏览

scipy - 使用 mpmath 函数执行 scipy.integrate 的四元积分方法时出现“TypeError”消息

我正在尝试使用计算两个积分scipy.integrate.quad.但是,由于第一个参数为负的gamma函数未在 中定义,我必须从 中选择版本。运行以下代码后,scipympmath

这是我不知道如何处理并需要帮助的错误消息:

回溯(最后一次调用):文件“test.py”,第 19 行,在 Integral1 = quad(Integrand1, low, threshold, args=(low, up, threshold, alpha, beta)) 文件“/home/username/ anaconda3/lib/python3.6/site-packages/mpmath/calculus/quadrature.py”,第 748 行,四点 [0],prec,epsilon,m,详细)文件“/home/username/anaconda3/lib/ python3.6/site-packages/mpmath/calculus/quadrature.py",第 215 行,对于 i in xrange(len(points)-1) 的总和:TypeError:'float' 类型的对象没有 len()

我只能猜测原因可能是quad函数与使用定义的积分不兼容mpmath.

0 投票
1 回答
1875 浏览

python - python中高度振荡的一维被积函数(包含贝塞尔函数)的数值积分

我正在尝试对由多个 Bessel 函数(第一类和第二类)组成的实值被积函数进行数值评估。被积函数是振荡衰减的,需要在 0 到 +∞ 之间求值。到目前为止,我使用 scipy.integrate 子包(quad 和 fixed_quad)的尝试都没有成功。当实际上它应该是平滑的时,评估值会跳跃。对于某些参数值集,我还会收到警告:“IntegrationWarning:积分可能发散或缓慢收敛。” (已知是收敛的)或“IntegrationWarning:已达到最大细分数(50)。”

方程式来自:http ://dx.doi.org/10.1029/WR003i001p00241

它也可以在这里找到:http ://www.aqtesolv.com/papadopu.htm

感谢您在 python 中繁琐函数的数值集成方面提供的任何帮助...

代码示例

0 投票
0 回答
112 浏览

python-3.x - 数值积分方法'四'导数误差

我在下面定义了一系列函数,其中fA插入了 end 函数以进行数值积分。积分是针对一个变量的,因此其他参数作为数字传递,以便积分方法 ( quad) 可以继续

我现在想将最后一个功能集成ktsq如下,

问题是我试图通过为每个其他参数指定数值来从这个集成中得到一个数字。错误是

ValueError: Can't calculate 1st derivative wrt 989.426138911118.

我对此的唯一解释是该方法无法处理函数的复杂性(尽管我认为它在结构上相对简单),因为我没有定义更多的导数,当然也没有定义这个值。有简单的解决方案吗?实际上,我希望使用该函数integrated_f在优化问题中使用最佳拟合参数a,b,NN。会像

scipy.optimize.minimize(integrated_f, x0, method='Nelder-Mead', options={'max\ iter': 1000})x0对于初始猜测数组的多变量函数没问题。谢谢!