问题标签 [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 - 有没有更快的方法将包含 mpf(mpmath 浮点数)的函数与 numpy 数组结合起来?
我遇到了 Python 中浮点数的准确性问题。我需要高精度,因为我想使用显式编写的球形贝塞尔函数 J_n (x),如果numpy
使用浮点数(15 个精确数字),它会在低 x 值时偏离它们的理论值(尤其是对于 n>5)。
为了保持更精确的数字,我尝试了许多选项,尤其是从mpmath
and 。在将函数内部sympy
的准确性与数组相结合时,我遇到了问题,直到我知道有函数。最后我得到了解决我最初问题的方法:mpmath
numpy
numpy.vectorize
The problem I have now is that just for plotting the explicit, accurate ones, it takes quite a long time (about 31 times slower than the scipy function for mp.dps=100
). Smaller dps
do not make these processes much faster, even with mp.dps=15
, they are still 26 times slower. Is there a way to make this faster?
python - 将具有虚幂的 sympy poly 转换为 mpmath mpc
我有一个 sympy poly,它看起来像:
我正在使用以下代码转换为 mpc:
两个问题。
a
假设我的 mpc 和 sympy 类型具有相同的精度(例如 100 dps),使用这种从to的转换是否存在精度损失d
?- 有没有更好的转换方法?
旁白: sympy 似乎在这里把我当作一个符号来对待。我如何获得同情来简化这个多项式?
编辑:我还注意到以下内容代替了a
上述内容:
scala - 为 scala/spark 寻找相当于 python 的 mpmath
有没有类似于mpmath
scala 的东西?
更准确地说,mpmath
我使用的唯一功能是阶乘(这比factorial
python更快,math
并且适用于大数字)和二项式系数计算和设置精度。
先感谢您。
python - SymPy中任意精度的概率值
我试图在 Sympy 中计算一些简单的概率,但我不断收到数字错误。如何更改此代码以在 mpmath 中使用任意精度?
python - 具有复杂积分界限的 Python scipy.integrate.quad
我正在使用 Python 计算上不完全伽马函数mpmath.gammainc
:
它是 mpmath 文档中定义的一维积分。我想myfun
使用 scipy 的quad
函数来比较这个结果:
但是,我不认为quad
接受关于积分上限/下限的复杂论点。我不知道是否可以将问题分成实部/虚部。有任何想法吗?
python - 评估 mpmath gammainc 函数的困难
我正在使用 python 库 mpmath,特别是评估不完整的 gamma 函数。这是寻根例程的一部分,但对于复值参数的某些组合,它的评估非常慢。
这里函数的评估mpmath.gammainc
卡住了:
另一方面,Mathematica 几乎立即返回结果:
在其他情况下,对于不同的参数mpmath
并Mathematica
返回相同的输出:
数学
Python mpmath
您对这种行为的原因有一些了解吗?这可以被认为mpmath
是一个正交问题还是一个数学问题?不幸的是scipy
,它没有提供gamma
复杂参数的函数实现,所以它不是一个选项。
python - 带有 mpmath 的 Numpy 使用单线程进行矩阵乘法
我正在研究一个代表一些networkx图的邻接矩阵的numpy矩阵adj 。当我按如下方式构造adj时:
adj = sparse.csr_matrix(nx.adjacency_matrix(graph), dtype='longdouble').todense()
然后运行adj = adj ** 2
,然后我可以看到htop
numpy 使用了所有可用的线程。
然而,由于精度损失,我试图mpmath
在两者之间进行整合。
我是这样做的:
生成的adj看起来像这样
这是我所期望的。
计算包括两个步骤:第一个是平方adj,第二个是实际计算。从结果中,我可以看到精度要高得多,但htop
由于某种原因,平方步骤仅在一个线程上运行。
当我运行 np.show_config() 时,我得到:
python - 使用 mpmath.nsum() 和 scipy.special.gamma() 时如何修复 TypeError?
我在 Python 中实现一些数学公式,使用时出现以下错误mpmath.nsum()
TypeError: 输入类型不支持 ufunc 'gamma',并且根据转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型
主文件
函数文件
当我使用下面的 for 循环时,我得到了我想要的答案。
请问有什么帮助吗?(注意:我是 Python 的绝对初学者,所以我不知道如何解决这个问题)