问题标签 [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.
python - C++ Boost Multiprecision 和 Python 的 mpmath 之间的互操作性
我有分别使用 Boost Multiprecision 和 Python 的 mpmath 的经验。
当要让两者进行通信时(例如在 C++ 中创建 Python 扩展),我的尝试总是涉及某种浪费的浮点到字符串和字符串到浮点的转换。
我的问题是:是否有可能使两者以更高效(和优雅)的方式进行通信?我的意思是,有没有办法直接让 C++ Boost Multiprecision 从 Pythonmpmath.mpf
对象加载和导出,就像 C 的mpp
viapybind11
一样?
我一直在寻找这个。我发现的唯一其他类似问题是关于使用 Boost Multiprecision 导出到 Python(通常)pybind11
,而不是mpmath
直接导出到对象。在那个问题中,OP 最终使用了我试图避免的相同方法(即,在与 C++ 和 Python 通信时从/到字符串转换)。
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
感谢对这个问题的评论,我发现:
- 超几何函数在两种语言中给出不同的结果。使用相同的输入值,我得到:在 Mathematica
Hypergeometric2F1
中给了我结果1.0588267
,而在 Python 中mpmath.hyp2f1
给了1.0588866
. 这是网格的第二个点,差在小数点后五位。
我找不到这个特殊功能的更好定义吗?
- 我仍然不知道这仅仅是由于超几何函数还是由于积分方法,但这绝对是一个起点。
(我对 Python 比较陌生,可能代码有点幼稚)
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 一起导入:
但这不被接受,因为输出是:
ModuleNotFoundError:没有名为“sympy.mpmath”的模块
我的代码是
我希望简化为 1/(1-d)或至少希望 Python 可以“存储” hyp2f1(1,1,1,d) 以进行符号操作。
我收到一个错误
TypeError:无法从 d 创建 mpf
底线是,导入 sympy 后,Python 不能将 hyp2f1 与符号参数一起使用。
python - mpmath.nsum() 中的 lambda 有什么替代方法吗?
我正在使用mpmath's nsum()
函数进行从 1 到 inf 的求和运算。像这样,但是 lambda 是一个线函数,我的方程很长,就像 ∑_(n=1)^∞▒e^(〖-n〗^2 )/(n^2+ 4〖(ab)〗</p >
对于简单的一行求和方程,它可以工作,但对于长求和如何使用它?有什么方法可以给nsum()
函数给出长求和方程吗?
python - 如何对数据数组进行数值拉普拉斯逆变换?
我想使用 Python 对数据数组执行数值拉普拉斯逆变换。
我在mpmath中找到了一个名为 invertlaplace 的算法,但是它只接受 lambda 函数。
python - mpmath 函数 hyperu 的默认精度是多少?
Tricomi 合流超几何函数的计算在使用两个 1F1 函数之和时可能是病态的,因为它们的大小几乎相等但符号相反。mpmath 函数“hyperu”在内部使用任意精度,并在默认模式下生成具有 35 个有效数字的结果。这些数字中有多少是可靠的?它取决于传递的参数吗?
python - 为什么 mpmath-function "diff" 会产生错误 AttributeError: 'MPContext' object has no attribute 'difference'?
我想通过使用 mpmaths 函数 diff 来区分函数。为了尝试是否一切都适用于一个简单的示例,我使用了纪录片中描述的示例。但它抛出了错误“AttributeError:'MPContext'对象没有属性'difference'”。我使用的示例是:
在这里我也不明白,在纪录片中他们显然使用了 diff,只引入了 2 个参数 (diff(f,x)),而纪录片中的函数示意性地看起来像这样:
那么为什么他们可以忽略“ctx”(无论这个变量应该是什么),这不应该在语法上是错误的,因为您必须将所有未预设的强制参数传递给函数(就像使用 ctx 一样=“某事”)?
提前非常感谢,真的会帮助我。
亲切的问候,乔纳森
python - mpmath-python 中的精度上限
何时进入python
,mpmath
一个人的代码以
我的问题是 - 取决于一个人的硬件 - 是否存在上限mp.dps
以及如何找到这个上限。