问题标签 [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.
python - 如何故意使具有错误打印输出的 Python 代码崩溃(“IntegrationWarning”)
我有一个 python 脚本,它在一些参数空间下打印出一个错误:
在此代码中,x_b >= x_a,始终,并且 some_function(x) >= 0,始终。因此,function_integral >= 0,总是。或者它应该这样做。
代码继续运行,但是,由于我故意添加的错误(以捕获可能的错误)而崩溃后不久,在这种情况下,需要 function_integral >= 0。我用以下粗略的方法在此处崩溃了此代码:
其中,使用 ipython,然后我使用“调试”进入并探索问题。
当 x_b = x_a + gamma 时,似乎会出现“IntegrationWarning”错误的这种特殊打印输出,其中 gamma 与 x_b 和 x_a 相比非常小。代码中有 x_b = x_a 的情况,在此期间,上面的积分不是必需的,因为在这些情况下,有理由认为 function_integral 应该为零。因此,这里没有使用积分函数。
在舍入错误之后,代码似乎在 function_integral = -1e-11 附近返回一个整数值,因此,基本上为零,但是,它是负数的事实会导致问题(并且舍入错误本身会引起对准确性的关注的代码,如果它要继续运行)。
我可以通过在 x_b 基本上等于 x_a 时设置 function_integral = 0 来绕过这个问题,这对于我的目的可能已经足够了,但是,我想进一步探索这个问题,看看是什么导致它发生在第一名。
出于某种原因,当我在计算积分(以及其他一些事情)并输出/返回其值的函数中添加内置崩溃时,它不会在此处捕获错误。只是在后面的代码中,当 function_integral 用于定义另一个必须 >= 0 的参数时,会发生崩溃(我也是内置的)。
所以,问题是,当 Python 打印出诸如“IntegrationWarning”之类的内置错误之一时,如何使代码崩溃(以调试它)?
编辑:我最终采用了一种快速而肮脏的方法,即如果 x_b = x_a + gamma 则不调用 quad(),其中 gamma 与 x_b 和 x_a 相比较小。对此解决方案并不完全满意,但在这种情况下,它可能就足够了。很想听到调试这种情况的替代方法。
c - 在 OpenGL 中的 2 个 3D 向量之间绘制圆柱体的 C 代码是什么?我希望它随着它更接近观众而按比例变大
我正在尝试实现一个四元函数来绘制线条。我的目标是能够显示从一个 3D 点到另一个点的光束。但我失败了。此外,我希望能够在绘制四边形/圆柱体的函数中指定 3D 厚度参数。我需要画一个圆柱体吗?如果没有,如何设置 4 个 3D 四角坐标?我首先尝试使用四边形,但发现我真正需要的是圆柱体,请参阅我的答案中的代码,工作得很好,甚至根本不使用 GLU,原始 C。我编辑了这个问题,因为我的初始代码是令人困惑和奇怪。我的回答有效,我重复一遍。谢谢!
opengl - Opengl:我们还能使用 GL_QUADS 吗?
我正在从 obj、colladae 文件加载模型,如果在导出时所有面都是完美的四边形,则网格的各个面不会三角化以节省内存。
现在我知道这对大多数模型都不起作用,但对于某些网格来说,说一个立方体,我想让它工作的每个面都可以避免一些重复。
我有 2 个使用三角形带或 gl_quads 的选项。
三角形条带的问题是相邻面是连接的,因此它们之间不可能有一些间隙,即使对于一个简单的立方体,输出在外面看起来也是正确的,但是当我进入立方体时,即使启用了背面剔除,我也会看到一些连接立方体正面和背面的杂散三角形基本上是一团乱麻。
但是使用 gl_quads 一切正常,但文档说 quads 在 3.1 中已弃用 [即使我仍然可以使用它 gl 4.0] 所以我的问题是
我是否可以继续使用 gl_quads 从文件中加载网格而不会在将来遇到问题,或者如何在没有整个连接问题的情况下用三角形条替换它?
我发现的一个解决方案是在 for 循环中为每 4 个顶点发出一次绘制调用,但这对于大型网格的性能来说是很糟糕的。
有什么建议么?
python-3.x - Python:采用数组输入的函数的多维集成
我在使用数组输入来计算函数的多个积分时遇到了困难。我想使用scipy.integrate's nquad function
,因为我需要能够集成-np.inf to np.inf
(我正在使用概率密度函数)。问题是 nquad 期望一个函数可以这样表述:
function(x_1, x_2, ..., x_n)
我需要集成的功能采用以下形式:
function(np.array([x_1, x_2, ..., x_n]))
有没有办法改变一个接受多个参数的数组的函数?如果没有,是否有替代 nquad 的方法?我尝试使用 quadpy,但它说我的积分超过 31,而实际值为 1。
谢谢您的帮助。
scipy - scipy.optimize.curve_fit ValueError:具有多个元素的数组的真值不明确
我正在尝试使用 scipy.optimize.curve_fit 将 sigmoidal 曲线拟合到我的数据集,但出现以下错误:
我试图拟合的 sigmoidal 函数包含从负无穷大到自变量函数的积分。这是我的代码:
问题似乎来自不可或缺的部分。在其他类似的帖子中,他们的函数包含一个布尔参数,如果自变量超过一个值,则提供另一个函数。但在我的情况下不是。我很困惑...
python - 有没有办法在 Python 中以数字方式集成两个函数的乘积?
我有两个带有多个参数的函数:
我知道如果我只想整合其中一个,比如说fermi
,那么我会使用
fermi*DoS
但是我需要他们的产品相对于他们的公共变量的积分E
,我无法想象如何使用它,因为文档quad
中没有提到它。
我想我可以将另一个函数定义integrand
为他们的乘积并计算它的积分,但这听起来有些混乱,我更喜欢更简洁的方法。
python - fftn 与 nquad 结果不匹配
如果我尝试使用和比较来评估integral 0 to 2pi: (1/2pi) f(t) exp(-i*m*t) dt
(f 在 t 中是周期性的,周期为 2pi),它们会给出几乎相同的结果(1e-18 数量级的差异)。但是 3 维的类似情况不匹配。我的问题是为什么?scipy.integrate.quad
scipy.fft.fft
第一种情况:
3d案例:
integral 0 to 2pi for all t1, t2, t3: (1/2pi)^3 f(t1, t2, t3) exp(-i * (m1*t1 + m2*t2 + m3*t3)) dt1 dt2 dt3
(f 在所有三个变量中都是周期性的,周期为 2pi)。但这并不奏效,如下所示。
由于我在上面的代码中没有看到任何重大错误,我是否误解了 fftn 或 nquad 的工作原理?
scipy - 小数对 scipy.integrate.quad 的影响
将 follow 函数从2
toinf
与集成scipy.integrate.quad
。
我使用n2=22144
and n3=22145
,但得到两个完全不同的结果。实际上,这两个结果应该非常接近。
更有趣的是,当将4.11447
(在被积函数中的“返回”行)更改为4.1145
or4.1144
时,结果将接近。
哪个结果是正确的?