问题标签 [mpmath]

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 回答
248 浏览

python - C++ Boost Multiprecision 和 Python 的 mpmath 之间的互操作性

我有分别使用 Boost Multiprecision 和 Python 的 mpmath 的经验。

当要让两者进行通信时(例如在 C++ 中创建 Python 扩展),我的尝试总是涉及某种浪费的浮点到字符串和字符串到浮点的转换。

我的问题是:是否有可能使两者以更高效(和优雅)的方式进行通信?我的意思是,有没有办法直接让 C++ Boost Multiprecision 从 Pythonmpmath.mpf对象加载和导出,就像 C 的mppviapybind11一样?

我一直在寻找这个。我发现的唯一其他类似问题是关于使用 Boost Multiprecision 导出到 Python(通常)pybind11,而不是mpmath直接导出到对象。在那个问题中,OP 最终使用了我试图避免的相同方法(即,在与 C++ 和 Python 通信时从/到字符串转换)。

0 投票
0 回答
208 浏览

python - Python vs Mathematica 中的特殊函数定义问题

我有一个 Mathematica 代码,它计算从特定概率分布函数 (PDF) 获得的累积分布函数 (CDF) 的 95% 置信区间。PDF 很丑,因为它包含超几何 2F1 函数,我需要计算 15 个值的数据集的 2-sigma 误差线。

我想将此代码翻译成 Python,但我在值的后半部分得到了非常显着的分歧。

数学代码

results是 中的值的下限和上限 2-sigma 置信水平xdata。也就是说,xdata应该总是落在两个对应的results值之间。

Python代码

这是我的翻译:results与以前的数量相同,截断到第 7 位以增加可读性。

我得到的results值开始偏离第 7 对值,并且最后四个点xdata落在两个对应值之间。results

感谢对这个问题的评论,我发现:

  • 超几何函数在两种语言中给出不同的结果。使用相同的输入值,我得到:在 MathematicaHypergeometric2F1中给了我结果1.0588267,而在 Python 中mpmath.hyp2f1给了1.0588866. 这是网格的第二个点,差在小数点后五位。

我找不到这个特殊功能的更好定义吗?

  • 我仍然不知道这仅仅是由于超几何函数还是由于积分方法,但这绝对是一个起点。

(我对 Python 比较陌生,可能代码有点幼稚)

0 投票
2 回答
276 浏览

python - mpmath 和精度问题

mpmath.sqrt(2) 的精度不是我所期望的。我究竟做错了什么?

结果: 1.4142135623730951455

预期:(1.4142135623730950488根据此参考

0 投票
1 回答
213 浏览

python - Python:hyp2f1 与 sympy 的符号使用

在 Python 中,我想使用超几何函数 hyp2f1,同时至少保留一个符号参数。但是,有一个 TypeError

无法从 d 创建 mpf

其中 d 是超几何函数的(最后一个)参数。

有人问了类似的问题

sympy 和 mpmath 在 solveset() 中使用 erf() 函数时给出“TypeError: cannot create mpf”

在遇到与错误函数 erf 相同的问题后。建议的解决方案是使用 mpmath 库而不是 sympy 库,但是在保持参数符号化时不能使用 mpmath。

我还尝试按照 sympy 文档中的建议将 mpmath 和 sympy 一起导入:

https://docs.sympy.org/0.7.6/modules/mpmath/functions/hypergeometric.html#common-hypergeometric-series

但这不被接受,因为输出是:

ModuleNotFoundError:没有名为“sympy.mpmath”的模块

我的代码是

我希望简化为 1/(1-d)或至少希望 Python 可以“存储” hyp2f1(1,1,1,d) 以进行符号操作。

我收到一个错误

TypeError:无法从 d 创建 mpf

底线是,导入 sympy 后,Python 不能将 hyp2f1 与符号参数一起使用。

0 投票
2 回答
365 浏览

python - mpmath.nsum() 中的 lambda 有什么替代方法吗?

我正在使用mpmath's nsum()函数进行从 1 到 inf 的求和运算。像这样,但是 lambda 是一个线函数,我的方程很长,就像 ∑_(n=1)^∞▒e^(〖-n〗^2 )/(n^2+ 4〖(ab)〗</p >

对于简单的一行求和方程,它可以工作,但对于长求和如何使用它?有什么方法可以给nsum()函数给出长求和方程吗?

0 投票
1 回答
328 浏览

python - 如何对数据数组进行数值拉普拉斯逆变换?

我想使用 Python 对数据数组执行数值拉普拉斯逆变换。

我在mpmath中找到了一个名为 invertlaplace 的算法,但是它只接受 lambda 函数。

0 投票
1 回答
41 浏览

python - mpmath 函数 hyperu 的默认精度是多少?

Tricomi 合流超几何函数的计算在使用两个 1F1 函数之和时可能是病态的,因为它们的大小几乎相等但符号相反。mpmath 函数“hyperu”在内部使用任意精度,并在默认模式下生成具有 35 个有效数字的结果。这些数字中有多少是可靠的?它取决于传递的参数吗?

0 投票
0 回答
91 浏览

python - 为什么 mpmath-function "diff" 会产生错误 AttributeError: 'MPContext' object has no attribute 'difference'?

我想通过使用 mpmaths 函数 diff 来区分函数。为了尝试是否一切都适用于一个简单的示例,我使用了纪录片中描述的示例。但它抛出了错误“AttributeError:'MPContext'对象没有属性'difference'”。我使用的示例是:

在这里我也不明白,在纪录片中他们显然使用了 diff,只引入了 2 个参数 (diff(f,x)),而纪录片中的函数示意性地看起来像这样:

那么为什么他们可以忽略“ctx”(无论这个变量应该是什么),这不应该在语法上是错误的,因为您必须将所有未预设的强制参数传递给函数(就像使用 ctx 一样=“某事”)?

提前非常感谢,真的会帮助我。

亲切的问候,乔纳森

0 投票
1 回答
610 浏览

python - 在python中找到切比雪夫多项式的根

我想使用 Python 找到任意阶 Chebysev 多项式的根。我见过类似的勒让德多项式线程。但是,我使用此处定义的方法构造了多项式

我尝试使用np.roots(f4),但收到以下错误:TypeError: float() argument must be a string or a number, not 'function'。此外,似乎即使我可以,它也不适用于高阶多项式。

0 投票
1 回答
179 浏览

python - mpmath-python 中的精度上限

何时进入pythonmpmath一个人的代码以

我的问题是 - 取决于一个人的硬件 - 是否存在上限mp.dps以及如何找到这个上限。