问题标签 [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.
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 它给了我这个错误的结果,当我希望它在事情爆炸时给我一个错误......
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。使用此值进行模拟必须产生超顺磁曲线,如下面的链接中包含的那样。我将不胜感激任何使此代码工作并改进它的建议。
www.dropbox.com/pri/get/superpara.dat?_subject_uid=197016565&w=AADkHqW1w-gE9pQkG0oLoE7tNG1J-rWxN0lcIM9ioXWiLA
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)**beta
a
b
g(x)
alpha, beta < 0
f(x)
g(x)
quad
weight
wvar
g(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)
(据我所知,只有在无法通过选择适当的加权函数来处理奇点/不连续性时才应该使用该参数) )。
python - 如何反转 scipy quad 函数以传入弧长并接收 (t) 的值?
如果我要运行类似于下面的代码,其中我将椭圆的次弧和主弧传递为 3.05 和 2.23,弧形成 50 度角,我如何能够将 2.531432761012828 的输出作为弧长度并将其传回以求解 t? 谢谢!
最后一个的输出是:(2.531432761012828, 2.810454936566873e-14)
python - 使用python最小化函数进行数据拟合
我有如下功能
我有上述方程的实验答案,一旦我必须将一些数据放入上述函数并求解下面的方程
z
,err
并且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_exp
和err
, 分别在数据文件中。和是积分范围z1
。z2
我需要您的帮助,感谢您的时间和关注。请不要评价负值。我需要你的答案。
python - IndexError:元组索引超出范围,尝试整合函数时出错
我正在尝试计算 function 的值f_integ
,这是 functionf
从 0 到x_v
.
当我运行它时,我收到以下错误:
我知道quad()
返回一个元组,但我不知道如何将一个数字作为参数放在积分结果中。我是Python新手,请帮忙。
scipy - 使用 mpmath 函数执行 scipy.integrate 的四元积分方法时出现“TypeError”消息
我正在尝试使用计算两个积分scipy.integrate.quad.
但是,由于第一个参数为负的gamma函数未在 中定义,我必须从 中选择版本。运行以下代码后,scipy
mpmath
这是我不知道如何处理并需要帮助的错误消息:
回溯(最后一次调用):文件“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.
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 中繁琐函数的数值集成方面提供的任何帮助...
代码示例
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
对于初始猜测数组的多变量函数没问题。谢谢!